DID Types in the DTG

The Decentralized Trust Graph uses a taxonomy of DID types, each serving a specific role. Understanding these types is key to understanding how identity and privacy work in the ecosystem.

The Taxonomy

DID TypeFull NameWho/What It IdentifiesTypical DID Method
C-DIDCommunity DIDA VTC or VTNdid:webvh
M-DIDMember DIDAn individual member within a communitydid:webvh
R-DIDRelationship DIDA specific relationship between two individualsdid:peer
P-DIDPersona DIDA persona identity linked to a relationshipdid:webvh
W-DIDWitness DIDA witness attesting to a relationshipdid:webvh

Privacy Through DID Separation

The separation of DID types is a deliberate privacy design. The spec requires that each entity MUST generate a new, unique R-DID for every single entity they connect with, even within the same community. This means:

  • Your M-DID identifies you within a community but isn’t exposed in individual relationships
  • Each R-DID is unique to one relationship, so counterparties can’t correlate your connections
  • P-DIDs let you selectively reveal personal information to specific relationships
  • W-DIDs keep witness identity separate from their other roles

How They Map to Credentials

CredentialIssuer DIDSubject DID
VMCC-DID (community)M-DID (member) or C-DID (for VTN→VTC)
VRCR-DID or M-DIDR-DID or M-DID (counterparty)
VICC-DID or authorized M-DIDInvitee’s DID
VPCP-DIDCounterparty’s DID
VECEndorser’s DIDEndorsee’s DID
VWCW-DIDWitnessed party’s DID

BIP-32 Derivation

In the OpenVTC implementation, all these DIDs derive from a single seed via BIP-32 derivation:

PathDID Type
m/1'/0'/Persona keys (P-DID)
m/2'/1'/WebVH management keys
m/3'/1'/1'/NRelationship keys (R-DIDs, one per relationship)

See also: decentralized-identifiers, decentralized-trust-graph, bip32-key-derivation