A DID method for identifiers that are never published anywhere. A did:peer DID is generated locally and exchanged directly between the parties to a relationship, who each store the other's DID document themselves; no registry, ledger or web host is ever involved. This makes it the natural method for pairwise relationships — a fresh DID per counterparty, with no global correlation surface — and it remains the default method used in DIDComm messaging. Numgen method 2 encodes keys and service endpoints directly into the identifier; method 4 adds a hash-based long/short form. The ToIP did:scid specification identifies did:peer as the first SCID-based DID method, while excluding it from its own format registry because it lacks key rotation.
OriginsPeer-to-peer secure messaging — created for DIDComm, where two agents need mutually authenticated identifiers for a private relationship and publishing anything to a public registry would be both unnecessary and a privacy leak
DatabaseN/A — no external storage. Each party stores the counterparty's DID document in its own agent wallet
Query LanguageN/A — resolution is local, from state received out of band during relationship establishment, or decoded directly from the identifier for numgen method 2
Data FormatsW3C DID Document; identifier encodings by numalgo — method 0 (inception key), method 1 (genesis document hash), method 2 (multikey encoding of keys and services inline in the DID), method 4 (hashed long form and short form)
Mobile SupportLibrary-level — implemented inside resolver libraries and wallets; no standalone application
Web SupportN/A — nothing is published to the web; libraries run in browser-based agents but no web infrastructure is involved
Native AppsLibrary-level — embedded in resolver libraries; no standalone application
TermsFree — no fees, registration or infrastructure
FundsN/A
Based OnW3C DID Core 1.0; Multiformats (multibase/multicodec) for key encoding; developed as the identifier layer for DIDComm messaging
PermissionsCryptographic, relationship-scoped — key control within the pairwise relationship is the entire authorization model
Authentication & IdentityPairwise and self-certifying — the identifier is derived from key material and exchanged directly, so binding requires no third party. Each relationship typically uses a distinct DID, so there is no shared identifier across counterparties to correlate
Storage ModelLocal only — both parties retain their own copy of the relationship state; nothing is replicated to any external system. For numgen method 2 the document is decodable from the identifier itself, so no storage is strictly required
InteroperabilityDeeply embedded in the DIDComm ecosystem — the default method for DIDComm v2 connections and supported across Aries, Credo and OpenWallet Foundation agent frameworks. Less commonly used outside agent-to-agent messaging
Data PortabilityRelationship-scoped — the identifier is portable in the sense that it depends on no infrastructure, but it is meaningful only to the parties holding the corresponding state, so it does not travel independently
Governance & Decision MakingDIF — open specification work item with public repository and participation
Protocol Maturity / StandardizationRegistered W3C DID method, widely implemented as DIDComm's default, but the specification remains a DIF work item rather than a ratified standard, and the absence of key rotation is a recognised functional gap
Identity StandardsW3C DID Core 1.0; DIDComm Messaging v2; registered in the W3C DID Extensions methods registry
DID Methods Supporteddid:peer (defines this method). Identified by the ToIP did:scid specification as the first SCID-based DID method, though explicitly not adopted as a did:scid format
Key ManagementLimited — the specification does not provide key rotation. Changing keys generally means establishing a new relationship with a new DID. This is the documented reason the ToIP did:scid specification declines to adopt it as a format
Credential TypesN/A — a DID method specification; defines no credential types. Compatible with W3C Verifiable Credentials issued against identifiers of this method
Verification MethodCryptographic, from locally held or inline-encoded key material; for numgen method 2 the verification methods are decoded directly from the identifier with no lookup at all
Privacy FeaturesStrongest on this tab for correlation resistance — identifiers are never published, a distinct DID is normally used per relationship, and there is no registry, log or host that could reveal usage patterns. Designed for pairwise pseudonymity
Authentication MethodsCryptographic signature and DIDComm authenticated encryption between the two parties
Revocation MechanismRelationship termination — a party discards the relationship state. There is no global revocation record because there is no global record of any kind
Wallet/Client TypesSDK / library integration — resolver implementations across the SSI tooling ecosystem; no method-specific wallet
Recovery MechanismsNone at the method level — recovery depends on the agent's own wallet backup. Loss of relationship state generally means re-establishing the connection
Compliance / RegulationsNot addressed by the specification. The absence of key rotation and of any audit log limits suitability where lifecycle management or supervisory access is required
Credential Exchange ProtocolsDIDComm v2 (its native context, where it remains the default method); usable with any protocol that accepts locally resolved DIDs
Trust FrameworkPure cryptography, scoped to the relationship — no external trust anchor, no registry and no third party; trust is whatever the two parties established when they connected
Cost ModelFree — zero marginal cost per relationship, which is what makes per-counterparty identifiers practical
Censorship ResistanceMaximal in practice — nothing is published, so there is no host to seize, registrar to compel or endpoint to block. Censorship would require compromising the parties themselves
See something missing or that could be improved? Let us know →