DIF RECOMMENDED
did:web plus verifiable history.
did:webplus extends did:web with a cryptographically verifiable history for every DID, so anyone can prove which keys were valid at a given point in time, using standard web infrastructure.
did:webplus:example.com:uHiBKHZUE3HHlYcyVIF-vPm0Xg71vqJla2L1OGXHMSK4NEA
Motivation
did:web can’t prove which keys were valid in the past.
did:web resolves a DID to its current document, and stops there. In regulated environments, verifiers must prove which keys were valid at a specific moment, sometimes years after the original transaction. Without a verifiable history, long-term auditability and non-repudiation break down.
did:webplus keeps everything that makes did:web practical, and adds an append-only, self-hashed history that any party can verify independently, without trusting the server that hosts it.
Data model
Each DID is an append-only chain of self-hashed documents.
Each DID document is self-hashed and linked to its predecessor. The DID itself embeds the root document’s hash, so the identifier never changes but commits cryptographically to its entire origin.
Capabilities
What did:webplus adds over did:web

Live demo
Resolve a live DID in your browser.
This is a real Full DID Resolver running in your browser. It fetches the spec’s own did:webplus microledger over plain HTTPS from GitHub Pages and cryptographically verifies the whole history: self-hashes, update-rule proofs, hash-chain continuity, and JCS wire format. Try it with the CLI afterwards.
did-documents.jsonl microledger over HTTPS and cryptographically verifies it end to end — every selfHash recomputed, every update's detached JWS proofs checked against the predecessor's updateRules, hash-chain and versionId continuity enforced, and each line checked byte-for-byte against its JCS canonical form. Every result above is computed from the bytes that were served, per document. Resolution is performed by the community TypeScript implementation, whose Ed25519 support is conformance-tested against the Rust reference implementation's published vectors. Query parameters like ?versionId=1 are supported. Works with any publicly hosted did:webplus DID whose server allows cross-origin reads (GitHub Pages does).Status
Standards status and implementations
Documentation
Where to go next
Install the CLI and resolve your first DID.
The CLI and Docker images let you resolve DIDs and run your own VDR locally. There is no blockchain to join and no hosted service to sign up for.