Skip to main content
peaqID is a W3C that identifies a machine across every chain it transacts on.

DID format

There are two peaqID formats, one per generation of machine.

Economics 2.0 machines (activated since 2026-09-01)

The machine ID is uint256(keccak256(abi.encode(machineType, credentialSubject))), the same value as the machine’s ERC-721 token ID in MachineRegistry. The DID document (controller, verification methods, authentication indices, service endpoints) is stored in MachineRegistry itself at activation and updated with the DID setters; id is computed on read, never supplied. Documentation and data API URLs live in serviceEndpoints. There is no mapping from an address-form DID to a 2.0 machine ID. See Economics 2.0.

Tokenomics 1.0 machines (onboarded before 2026-09-01)

The is the machine’s on . The DID resolves to a flat key-value attribute store on the peaq DID (0x0000000000000000000000000000000000000800). Any consumer can start from the DID and traverse to the machine’s identity, financial history, and through the 1.0 MCR API. The rest of this page describes this format.

Per-machine vs per-proxy

peaqOS assigns one DID per machine and one DID per . The two serve different roles: A machine that self-manages has no operator attribute. A proxy operator’s machines attribute is a JSON array of (e.g., [123, 456, 789]).
DID writes always go to the caller’s DID. The DID precompile keys attributes by msg.sender. A proxy that calls registerFor the machine’s and pays the , but it cannot write attributes to the machine’s DID; the machine must sign its own writeMachineDIDAttributes call. Skipping this leaves the machine unreachable through the .

DID attribute table

After registration, the operator or machine must explicitly call writeMachineDIDAttributes (or writeProxyDIDAttributes) to write these attributes to the DID. Registration itself only mints the identity and creates the machine ID; the DID attribute writes are a separate .

Byte limits

Both SDKs enforce these constraints before any DID write reaches the chain:
Migration. peaq chain has approximately 3.5 million existing peaqID holders. Existing holders retain their peaqIDs. A migration path to the current DID format is on the roadmap; the new format is what onboards from peaqOS today.

Resolving a peaqID

Data visibility modes

The data_visibility attribute controls how the MCR API handles raw data for this machine: private is the default when data_visibility is unset or empty.
  • Activate function registers machines and writes DID attributes
  • GET /machine/ returns the full machine profile, including DID-sourced metadata
  • Machine NFT is linked to the peaqID via the nftTokenId attribute