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 lifecycleDomain configuration
Understand the digital-twin modelDigital twins
Register a new domain end-to-endDomain registration
Configure controllers, services, resources, rightsConfigure domain settings
Decide what to keep on protocol vs in IXO MatrixDomain privacy patterns
Build with the SDKIXO MultiClient SDK and @ixo/impactxclient-sdk README
Query domains and related stateBlocksync GraphQL API
Inspect raw entity messages and queriesgRPC 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.*.

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.

Next steps