DID format
There are two peaqID formats, one per generation of machine.Economics 2.0 machines
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. A machine homed on Solana keeps the same did:peaq:<decimal id> form; its DID document lives in the machine’s Solana accounts, verification-method controllers are base58 Solana keys, and each list holds at most 8 entries with 128 UTF-8 bytes per string. See Solana onboarding: the DID document and Economics 2.0.
Tokenomics 1.0 machines (onboarded before 2026-09-01)
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.
peaq chain has roughly 3.5 million peaqID holders from before peaqOS, and they keep their peaqIDs. A migration path to the current DID format is on the roadmap.
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 attribute table
Registration mints the identity and creates the machine ID. Writing these attributes is a separate : callwriteMachineDIDAttributes, or writeProxyDIDAttributes for a proxy operator.
Byte limits
Both SDKs enforce these constraints before any DID write reaches the chain:Resolving a peaqID
Data visibility modes
Thedata_visibility attribute controls how the MCR API handles raw data for this machine:
private is the default when data_visibility is unset or empty.
Cross-links
- Activate function creates the machine and stores its DID document (Economics 2.0), or registers it and writes DID attributes (Tokenomics 1.0)
- GET /machine/ returns the full machine profile, including DID-sourced metadata
- Machine NFT is linked to the peaqID via the
nftTokenIdattribute

