> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ixo.world/llms.txt
> Use this file to discover all available pages before exploring further.

# Entity domains

> How entity domains work on the IXO Protocol, and where to go for concept, task, and SDK details.

An **entity domain** is the on-chain representation of a real-world organisation, project, asset, deed, or device on the IXO Protocol. Each domain is anchored by a Decentralized Identifier (DID), governed by one or more controllers, and extended with services, resources, accorded rights, linked claims, relationships, and accounts.

This page is a routing map. It does not duplicate concept, task, or SDK details — those live on the canonical pages below.

## Where each detail lives

| You want to...                                     | Read this                                                                                                                                                |
| -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Understand the data model and lifecycle            | [Domain configuration](/articles/domain-config)                                                                                                          |
| Understand the digital-twin model                  | [Digital twins](/guides/digital-twins)                                                                                                                   |
| Register a new domain end-to-end                   | [Domain registration](/guides/domain-registration)                                                                                                       |
| Configure controllers, services, resources, rights | [Configure domain settings](/guides/dev/domain-settings)                                                                                                 |
| Decide what to keep on protocol vs in IXO Matrix   | [Domain privacy patterns](/guides/dev/domain-privacy)                                                                                                    |
| Build with the SDK                                 | [IXO MultiClient SDK](/sdk-reference/multiclient-sdk) and [`@ixo/impactxclient-sdk` README](https://github.com/ixofoundation/ixo-multiclient-sdk#readme) |
| Query domains and related state                    | [Blocksync GraphQL API](/api-reference/blocksync-graphql-api)                                                                                            |
| Inspect raw entity messages and queries            | [gRPC gateway API](/api-reference/grpc-gateway-api)                                                                                                      |

## Minimal SDK reference

Composing entity messages uses the same three-step pattern as every IXO Protocol module: create a query or signing client, compose a message, sign and broadcast. The `@ixo/impactxclient-sdk` package exposes proto-derived message factories under `ixo.*`.

<Note>
  The snippet below is a structural reference. For full installation, signer setup, and broadcast patterns see the [IXO MultiClient SDK README](https://github.com/ixofoundation/ixo-multiclient-sdk#readme) and the worked examples in [Developer workflows](/guides/dev/workflows).
</Note>

```ts theme={"system"}
import { ixo, createSigningClient } from "@ixo/impactxclient-sdk";

const signingClient = await createSigningClient(RPC_ENDPOINT, offlineSigner);

const message = {
  typeUrl: "/ixo.entity.v1beta1.MsgCreateEntity",
  value: ixo.entity.v1beta1.MsgCreateEntity.fromPartial({
    // See the entity proto for the full field set:
    // https://github.com/ixofoundation/ixo-blockchain/tree/main/proto/ixo/entity/v1beta1
    ownerAddress: SIGNER_ADDRESS,
    entityType: "asset",
    context: [],
    verification: [],
    controller: [],
    service: [],
    linkedResource: [],
    accordedRight: [],
    linkedEntity: [],
    linkedClaim: [],
  }),
};

const fee = "auto";
const response = await signingClient.signAndBroadcast(SIGNER_ADDRESS, [message], fee);
```

The full set of entity messages — `MsgCreateEntity`, `MsgUpdateEntity`, `MsgUpdateEntityVerified`, `MsgTransferEntity`, `MsgCreateEntityAccount`, `MsgGrantEntityAccountAuthz`, `MsgRevokeEntityAccountAuthz` — is generated from the [`x/entity` proto definitions](https://github.com/ixofoundation/ixo-blockchain/tree/main/proto/ixo/entity/v1beta1) and exposed under `ixo.entity.v1beta1.*` on the SDK.

## Next steps

<CardGroup cols={2}>
  <Card title="Domain configuration" icon="diagram-project" href="/articles/domain-config">
    The data model behind every entity domain.
  </Card>

  <Card title="Configure domain settings" icon="sliders" href="/guides/dev/domain-settings">
    Update controllers, services, resources, and accorded rights.
  </Card>

  <Card title="Domain privacy patterns" icon="lock" href="/guides/dev/domain-privacy">
    What to keep on protocol vs in IXO Matrix.
  </Card>

  <Card title="IXO MultiClient SDK" icon="server" href="/sdk-reference/multiclient-sdk">
    The TypeScript SDK that exposes entity messages.
  </Card>
</CardGroup>
