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 |
| Understand the digital-twin model | Digital twins |
| Register a new domain end-to-end | Domain registration |
| Configure controllers, services, resources, rights | Configure domain settings |
| Decide what to keep on protocol vs in IXO Matrix | Domain privacy patterns |
| Build with the SDK | IXO MultiClient SDK and @ixo/impactxclient-sdk README |
| Query domains and related state | Blocksync GraphQL API |
| Inspect raw entity messages and queries | 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.*.
The snippet below is a structural reference. For full installation, signer setup, and broadcast patterns see the IXO MultiClient SDK README and the worked examples in Developer workflows.
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 and exposed under ixo.entity.v1beta1.* on the SDK.