did:vh

Identity Protocol

"DID + Verifiable History": a DID method that is the location-independent sibling of did:webvh. A did:vh identifier is only the method prefix and a self-certifying identifier (SCID) derived from the DID's first log entry, so it contains no domain name or path and is not tied to any place where its log is published. It specialises the VH-Log specification: the DID document's history is a hash-chained, signed log (did.jsonl) with optional pre-rotation of keys, witnesses and watchers. Because the DID names no location, a resolver is handed the log (or a reference to it) rather than fetching it from a well-known URL, and the SCID proves the log is the authentic history wherever it came from. Unlike did:webvh it drops the DID-to-HTTPS transformation, the portability parameter and the implicit #files and #whois services. Currently an early draft by a single editor.

Community

Details

License The specification is under the W3C Patent Policy (2004) terms and any sample or reference code in the repository is Apache-2.0, per the repository's licence file, which inherits them from the Decentralized Identity Foundation project charter . https://github.com/swcurran/didvh
Dev Status 📝 Draft
Owner No organization is named; the specification lists a single editor and is developed in a personal GitHub repository
Governing Body None named. Developed in the open by a single editor; related specifications VH-Log and did:webvh are separate projects
Country Not stated by the project.
Start Year 2026
Stack JSON Lines DID log (did.jsonl) of signed, hash-chained entries; witness proofs in did-witness.json; did:key for witness identifiers; cryptographic agility through versioned parameters
Funding Not stated by the project.
Last Investigated Oct 29, 2026

Topology view

This tool in the centre and the things it is directly related to. Each line names the kind of relationship.

Topology view: did:vhThis tool in the centre and the things it is directly related to. Each line names the kind of relationship.did:vhdid:scid (Aims to interoperate with)did:sciddid:key (Based on, Conforms to, Identifies via)did:keydid:webvh (Based on, Interoperates with)did:webvhDIDs (Conforms to, Speaks protocol)DIDsdid:peer (Speaks protocol)did:peer
  • did:scid (Tool): Aims to interoperate with
  • did:key (Tool): Based on, Conforms to, Identifies via
  • did:webvh (Tool): Based on, Interoperates with
  • DIDs (Tool): Conforms to, Speaks protocol
  • did:peer (Tool): Speaks protocol

Open in Graph Explorer

Use Case Domains

Affordances

Sovereign identity Trust graph portability

Identity Protocol Attributes

Origins Making self-certifying DIDs with verifiable history usable where there is no web host: peer-to-peer exchange, local files, content-addressed storage, by separating the identifier from the place its log lives
Database None: each DID's history is its own JSON Lines log, held by the controller and by whoever else copies it (peers, watchers, a web location, IPNS or a local directory)
Query Language None: the resolver is passed the log (or a source reference), verifies every entry and returns the DID document
Data Formats JSON Lines DID log (did.jsonl) of entries whose state is a W3C DID document; witness proofs in did-witness.json; parameters such as method version, update keys and next-key hashes
Mobile Support Not stated by the project.
Web Support Not stated by the project; a log may be published at a web location, but the DID itself contains none
Native Apps None: a draft specification
Terms Free; specification and sample code licences as above
Funds Not stated by the project.
Based On VH-Log; did:webvh (log format, SCID, entry hashes, key authorization, pre-rotation and witnesses are those of VH-Log as used by did:webvh); W3C DID Core; did:key for witnesses
Permissions Cryptographic capabilities: only keys authorized in the log can update the DID; anyone can verify
Authentication & Identity Self-certifying: the DID is the SCID derived from the first log entry; entries are signed by keys the log itself authorizes; every entry's identifier must match the first entry's SCID
Storage Model Storage-agnostic: the controller must make the log available through at least one source (peers, watchers, web locations, IPNS, a local directory), and a resolver verifies it the same way whichever way it arrived
Interoperability A W3C DID method in a draft; sibling of did:webvh and meant to coexist with it; the did:scid method defines a did:scid:vh format over the same log, and the spec notes a did:vh, a did:scid:vh and a did:webvh DID can never share a log or a SCID
Data Portability Complete by design: the DID never changes, so no portability mechanism is needed, and the same log can be served from any source
Governance & Decision Making Not described: the specification is a personal draft with no process stated
Protocol Maturity / Standardization Editors Draft v0.1 ("Pre-Draft"); no standards body is named, no implementation or test suite is linked, and it is not in the W3C DID Extensions registry
Identity Standards W3C DID Core; VH-Log; did:key for witness identifiers
DID Methods Supported did:vh (defines this method); witnesses must be did:key
DID Methods Supported - List
Key Management Keys authorized in the log; optional pre-rotation by publishing hashes of the next keys (the spec says controllers should use it); updates signed by an authorized key
Credential Types N/A: a DID method; it defines no credential types
Verification Method A resolver verifies every log entry (entry hash, SCID, authorized-key signatures, pre-rotation and witness proofs where used) and checks that each entry's identifier is did:vh plus the first entry's SCID
Privacy Features Described in the spec's privacy considerations, covering surveillance and correlation and the right to erasure; the log is append-only, so history cannot be erased
Authentication Methods Signatures by keys the log authorizes; witnesses can approve updates before publication
Revocation Mechanism Deactivation by setting the deactivated parameter or emptying the update keys; the history is kept
Agent Types Supported Any key-controlling entity
Wallet/Client Types None yet: no implementation is linked
Recovery Mechanisms Pre-rotation commitments (optional, recommended) let a controller recover from a compromised active key
Compliance / Regulations The spec has a section on the right to erasure under GDPR Article 17
Credential Exchange Protocols N/A: a DID method; its logs can be exchanged peer-to-peer in the manner of did:peer
Trust Framework Cryptographic: the SCID and the entry hashes bind the log to the identifier; optional witnesses and watchers add third-party checks; no registry or authority
Cost Model Free: no registry or host is required
Censorship Resistance High by design: there is no authoritative location, so nobody can block resolution by controlling a host; availability still depends on someone holding a copy of the log

Relationships

How this tool connects to other tools and organizations, from relationships reviewed by the OpenHaven data steward. They describe how projects connect, not how good they are.

Aims to interoperate with
Conforms to
Identifies via
Speaks protocol
Interoperates with