Digital twins

How IXO models a real-world thing as a digital twin domain: the classes of twin, what a twin's record holds, how twins relate and the protocols that shape them.

A digital twin is a domain that represents a real-world thing: a device, an organisation, a project or an oracle service. On IXO, each physical or conceptual thing you need to track is represented as a digital twin domain within a graph of connected domains.

Read this page when you are deciding how to model your own system. It explains the classes of twin, what a twin's record holds, how twins relate to each other and how a protocol shapes them. Clean cooking is the example throughout. The page is about the domain as a whole. For the entity at a domain's core and its on-chain messages, see Manage entities.

Classes of twin

Each class of domain has its own configuration of properties. An organisational domain, for instance, always contains membership groups as sub-domains.

ClassWhat it represents
Physical twinsPhysical devices and sensors, for example cooking stoves, IoT monitors and tracked inventory
Cognitive twinsOrganisational structures, for example projects, funders and distribution agents
Twin systemsThe networks of relationships and interactions between real-world things
Oracle twinsAI-enabled agentic services that perform evaluations, verification and automation

What a twin's record holds

{
  "did": "did:ixo:entity/device-123",
  "type": "Device",
  "controller": "did:ixo:org/operator",
  "services": [{
    "id": "#data",
    "type": "DataIngestion",
    "endpoint": "https://api.emerging.eco/ingest"
  }],
  "verifiableCredential": [{
    "type": "Certification",
    "issuer": "did:ixo:org/certifier"
  }]
}
didstringrequired
controllerstringrequired
servicesarray
verifiableCredentialarray

How twins relate

In generalIn a clean cooking programme
Organisations implement projectsAn Organisation implements a Project
Projects generate assetsThe Project distributes cookstove Assets and fuel
Assets produce claimsAssets produce usage data based on a Protocol
Oracles verify claimsOracles verify claims according to the Protocol
Claims become credentialsCarbon credit Assets are minted with verifiable credentials

Protocols

A protocol is a template that defines the standard properties and relationships for a specific type of domain. A protocol can be customised.

Protocol structure

{
  "type": "Protocol",
  "properties": {
    "metricOne": "string",
    "metricTwo": "number",
    "measurements": "object"
  },
  "relationships": {
    "verifier": "OracleEntity",
    "operator": "OrganisationEntity"
  }
}

Create a twin from a protocol

The first sample is a generic request. The second creates a stove from a clean cooking protocol.

curl -X POST https://api.emerging.eco/v1/entities \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "type": "Device",
    "protocol": "did:ixo:protocol/template",
    "properties": {
      "metricOne": "value",
      "metricTwo": 100
    }
  }'

Next steps