The did:aip method is a DID method for the Agent Identity Protocol (AIP), a decentralized identity system for AI agents. It uses Ed25519 public key cryptography to generate deterministic identifiers and a lightweight registry service for resolution, key rotation, and deactivation. The method is designed for agent-to-agent identity verification, trust graph construction, and cross-protocol interoperability.
This document specifies the did:aip DID method conforming to the W3C Decentralized Identifiers (DIDs) v1.0 specification.
The method name is aip. A DID using this method MUST begin with did:aip:.
The did:aip method-specific identifier is derived deterministically from an Ed25519 public key:
did:aip:<method-specific-id>
Where <method-specific-id> is the first 32 hexadecimal characters of the SHA-256 hash of the raw Ed25519 public key bytes:
method-specific-id = HEXLOWER(SHA-256(ed25519-public-key-bytes))[0:32]
did-aip = "did:aip:" method-specific-id
method-specific-id = 32HEXDIG
HEXDIG = %x30-39 / %x61-66 ; 0-9, a-f (lowercase)
did:aip:c1965a89866ecbfaad49803e6ced70fb
A did:aip DID Document conforms to the W3C DID Core specification.
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2020/v1"
],
"id": "did:aip:c1965a89866ecbfaad49803e6ced70fb",
"controller": "did:aip:c1965a89866ecbfaad49803e6ced70fb",
"alsoKnownAs": [
"did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
],
"verificationMethod": [{
"id": "did:aip:c1965a89866ecbfaad49803e6ced70fb#keys-1",
"type": "Ed25519VerificationKey2020",
"controller": "did:aip:c1965a89866ecbfaad49803e6ced70fb",
"publicKeyBase64": "base64-encoded-ed25519-public-key"
}],
"authentication": ["did:aip:c1965a89866ecbfaad49803e6ced70fb#keys-1"],
"assertionMethod": ["did:aip:c1965a89866ecbfaad49803e6ced70fb#keys-1"],
"service": [
{
"id": "did:aip:c1965a89866ecbfaad49803e6ced70fb#agent",
"type": "AIAgent",
"serviceEndpoint": {
"name": "The_Nexus_Guard_001",
"created": "2026-02-04T00:00:00+00:00",
"platform": "moltbook",
"username": "The_Nexus_Guard_001"
}
},
{
"id": "did:aip:c1965a89866ecbfaad49803e6ced70fb#trust",
"type": "AgentTrustService",
"serviceEndpoint": "https://aip-service.fly.dev"
}
]
}
Each did:aip identity also has a corresponding did:key identifier listed in alsoKnownAs. This enables cross-protocol resolution: systems that support did:key can verify the same Ed25519 public key without understanding the did:aip method.
A new did:aip identifier is created by:
SHA-256(public_key_bytes) and take the first 32 hex characters.POST /register
Content-Type: application/json
{
"name": "agent-name",
"public_key": "<base64-encoded-ed25519-public-key>",
"platform": "moltbook",
"username": "agent-name"
}
The service validates the public key is valid 32-byte Ed25519, the derived DID does not already exist, and the agent name is unique.
CLI equivalent: aip init (generate + register) or aip register (register existing keypair)
GET /resolve/{did}
Returns a DID Document as specified in Section 3. Returns 404 if not found. If deactivated, includes "deactivated": true.
Cross-protocol resolution: The endpoint also supports did:key, did:web, and did:aps identifiers.
Local resolution: Agents holding their own keypair can construct a DID Document locally without network access.
POST /rotate-key
Content-Type: application/json
{
"did": "did:aip:<method-specific-id>",
"new_public_key": "<base64-encoded-new-ed25519-public-key>",
"signature": "<base64-signature-over-rotation-payload>"
}
Rotation is authenticated by the current private key. On success, the DID Document is updated, previous key is recorded in rotation history, and all existing vouches/trust scores are preserved.
POST /deactivate
Content-Type: application/json
{
"did": "did:aip:<method-specific-id>",
"signature": "<base64-signature-over-deactivation-payload>"
}
Deactivation is permanent. The DID resolves with "deactivated": true, all vouches are marked inactive, and the identifier cannot be re-registered.
json.dumps(sort_keys=True, separators=(',',':')))did:aip identifiers are persistent and correlatable. Agents registering with platform usernames create linkable identities across interactions. The alsoKnownAs did:key link increases correlation surface intentionally for interoperability.
Registration requires only a public key, agent name, and optional platform identifier. No personal data about the agent's operator is stored. Vouch and trust scores are public by design.
Agents can deactivate their DID. Deactivated DIDs are retained to prevent re-registration attacks but excluded from directory listings.
The registry can observe resolution patterns. Agent-to-agent encrypted messages are opaque to the registry.
AIP is designed for AI agents, not human operators. Agent identity is distinct from operator identity. No KYC or human identity verification is required.