Interesting spec — the Agent Trust Protocol addresses many of the same challenges we're working on: persistent agent identity, on-chain reputation, verifiable credentials, and privacy-preserving disclosure. A few thoughts and questions on identity interoperability.
Question: W3C DIDs as an additional identity layer?
ATP currently uses ICP Principal IDs (Ed25519 for agents, Passkeys for humans) as the universal identifier (ai_id). Have you considered supporting W3C Decentralized Identifiers (DIDs) as an alternative or additional identity layer?
DIDs would offer:
- Cross-chain portability — not tied to a single blockchain runtime. An agent identity could resolve across ICP, EVM, and other networks.
- Existing resolver infrastructure —
did:web, did:key, did:ethr, did:icp (if one emerges), etc. This means ATP identities could be discoverable outside the ICP ecosystem without custom integrations.
- Alignment with W3C Verifiable Credentials — ATP's Kind 2 (Identity Verification) and Kind 15 (General Attestation) map naturally to the VC data model. Using DIDs as the subject/issuer would make these credentials interoperable with the broader VC ecosystem out of the box.
A lightweight approach could be a did field in Kind 1 (Identity Profile) that maps a Principal ID to a DID, without changing the core signing model.
Interoperability context
We're building MolTrust, an agent trust and reputation system that uses W3C DIDs + ERC-8004 on Base (EVM). The trust primitives are similar to ATP's — identity, reputation scoring, verifiable credentials — but on a different chain.
The overlap is notable:
| Concept |
ATP |
MolTrust |
| Agent identity |
ICP Principal ID |
W3C DID (did:moltrust:*) |
| On-chain registry |
Root Identity Canister |
ERC-8004 IdentityRegistry (Base) |
| Reputation |
Kind 14 (Review, 1-100) |
Trust score (0-100) + on-chain feedback |
| Credentials |
Kind 2 / Kind 15 (Attestations) |
Verifiable Credentials (W3C VC) |
A shared DID layer could allow agents to hold both an ATP identity and an EVM identity, with cross-references between them.
ZK + DIDs
ATP's mention of ZK proofs for selective identity disclosure (Section 4.1) aligns well with emerging DID-based ZK credential standards (e.g., BBS+ signatures for selective disclosure). This could be a shared research area — the privacy goals are the same regardless of the underlying chain.
Genuinely curious about the design rationale for Principal IDs over DIDs. Was it primarily for tighter ICP integration, or were there other considerations?
References:
Interesting spec — the Agent Trust Protocol addresses many of the same challenges we're working on: persistent agent identity, on-chain reputation, verifiable credentials, and privacy-preserving disclosure. A few thoughts and questions on identity interoperability.
Question: W3C DIDs as an additional identity layer?
ATP currently uses ICP Principal IDs (Ed25519 for agents, Passkeys for humans) as the universal identifier (
ai_id). Have you considered supporting W3C Decentralized Identifiers (DIDs) as an alternative or additional identity layer?DIDs would offer:
did:web,did:key,did:ethr,did:icp(if one emerges), etc. This means ATP identities could be discoverable outside the ICP ecosystem without custom integrations.A lightweight approach could be a
didfield in Kind 1 (Identity Profile) that maps a Principal ID to a DID, without changing the core signing model.Interoperability context
We're building MolTrust, an agent trust and reputation system that uses W3C DIDs + ERC-8004 on Base (EVM). The trust primitives are similar to ATP's — identity, reputation scoring, verifiable credentials — but on a different chain.
The overlap is notable:
did:moltrust:*)A shared DID layer could allow agents to hold both an ATP identity and an EVM identity, with cross-references between them.
ZK + DIDs
ATP's mention of ZK proofs for selective identity disclosure (Section 4.1) aligns well with emerging DID-based ZK credential standards (e.g., BBS+ signatures for selective disclosure). This could be a shared research area — the privacy goals are the same regardless of the underlying chain.
Genuinely curious about the design rationale for Principal IDs over DIDs. Was it primarily for tighter ICP integration, or were there other considerations?
References: