Skip to main content
Entity Domains provide a standardized way to register and manage digital twins of real-world entities on the IXO blockchain, with built-in support for decentralized identity, verifiable credentials, and relationship management.

Overview

Create and manage decentralized identifiers (DIDs) for entities, enabling sovereign control and cryptographic verification of identity claims.
Establish and verify ownership rights through cryptographic proofs, with support for multiple controllers and delegated authority.
Define and manage service endpoints that connect digital twins to external services, APIs, and data sources.
Associate verifiable claims, documents, and other resources with entity domains to build comprehensive digital representations.
Create and visualize connections between entities to model real-world relationships and dependencies.
Manage financial accounts and transactions associated with entities, enabling economic interactions within the ecosystem.

Domain Properties

interface DomainProperties {
  did: string;              // Decentralized identifier
  controller: string[];     // Domain controllers
  type: string;            // Entity type
  status: number;          // Domain status
  credentials: VerifiableCredential[]; // Domain credentials
}
interface Service {
  id: string;              // Service identifier
  type: string;           // Service type
  serviceEndpoint: string; // Endpoint URL
  description?: string;    // Optional description
}
interface LinkedResource {
  id: string;             // Resource identifier
  type: string;          // Resource type
  path: string;          // Resource location
  proof?: string;        // Optional cryptographic proof
}
interface AccordedRight {
  type: string; // Right type
  description?: string; // Optional description
}
interface LinkedClaim {
  id: string; // Claim identifier
  type: string; // Claim type
}
interface LinkedEntity {
  id: string; // Entity identifier
}
interface DomainAccount {
  id: string; // Account identifier
}

Domain Registration

  1. Create Domain Document
    • Specify entity type and class
    • Define controllers
    • Configure services
    • Set up linked resources
  2. Submit Registration
    • Sign domain creation transaction
    • Broadcast to blockchain
    • Wait for confirmation
    • Verify registration
  3. Configure Properties
    • Add verification methods
    • Link resources
    • Set up services
    • Define relationships

Implementation

import { Entity } from '@ixo/client-sdk';

async function createEntityDomain(
  creator: string,
  entityType: string
) {
  const msg = {
    typeUrl: "/ixo.entity.v1beta1.MsgCreateEntity",
    value: {
      creator,
      entityType,
      entityStatus: 1
    }
  };

  return await Entity.broadcast(msg);
}

Domain Management

async function addDomainService(
  entityId: string,
  service: Service
) {
  const msg = {
    typeUrl: "/ixo.entity.v1beta1.MsgAddEntityService",
    value: {
      entityId,
      service
    }
  };
  
  return await Entity.broadcast(msg);
}
async function updateEntityStatus(
  entityId: string,
  status: number
) {
  const msg = {
    typeUrl: "/ixo.entity.v1beta1.MsgUpdateEntityStatus",
    value: {
      entityId,
      status
    }
  };
  
  return await Entity.broadcast(msg);
}

Best Practices

Identity Management

  • Use strong verification methods
  • Implement key rotation
  • Maintain controller list
  • Document access policies

Service Configuration

  • Validate endpoints
  • Monitor availability
  • Update stale endpoints
  • Document service types

Resource Management

  • Verify resource integrity
  • Maintain proof chains
  • Update broken links
  • Document dependencies

Security

  • Implement access control
  • Validate transactions
  • Monitor activities
  • Regular audits

Developer Resources

For technical support or questions about Entity Domains, join our Developer Community or contact our Developer Relations Team.
I