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 Type | Full Name | Who/What It Identifies | Typical DID Method |
|---|---|---|---|
| C-DID | Community DID | A VTC or VTN | did:webvh |
| M-DID | Member DID | An individual member within a community | did:webvh |
| R-DID | Relationship DID | A specific relationship between two individuals | did:peer |
| P-DID | Persona DID | A persona identity linked to a relationship | did:webvh |
| W-DID | Witness DID | A witness attesting to a relationship | did: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
| Credential | Issuer DID | Subject DID |
|---|---|---|
| VMC | C-DID (community) | M-DID (member) or C-DID (for VTN→VTC) |
| VRC | R-DID or M-DID | R-DID or M-DID (counterparty) |
| VIC | C-DID or authorized M-DID | Invitee’s DID |
| VPC | P-DID | Counterparty’s DID |
| VEC | Endorser’s DID | Endorsee’s DID |
| VWC | W-DID | Witnessed party’s DID |
BIP-32 Derivation
In the OpenVTC implementation, all these DIDs derive from a single seed via BIP-32 derivation:
| Path | DID Type |
|---|---|
m/1'/0'/ | Persona keys (P-DID) |
m/2'/1'/ | WebVH management keys |
m/3'/1'/1'/N | Relationship keys (R-DIDs, one per relationship) |
See also: decentralized-identifiers, decentralized-trust-graph, bip32-key-derivation