Implementations

Three today, and a documented path to listing yours.

Implementation Language Components Status License Maintainer
did-webplus Rust Core, CLI (controller + resolver + verifier), VDR, VDG, Universal Resolver Driver Reference implementation MIT LedgerDomain
@zkred/did-webplus (source) TypeScript / JavaScript DID parsing/formatting, resolution as a did-resolver plugin (versionId / selfHash / versionTime), VDG resolution, full-microledger fetch and verify, controller create/update Community MIT Zkred
poc-did-webplus-py Python Full resolver, VDR (SQLite-backed) Proof of concept only. Do not use in production. MIT LedgerDomain (unmaintained by design)

A note on the Python PoC, because its status line undersells its significance. It was produced against the specification alone and passed interoperability testing against the Rust reference implementation. Its purpose was to demonstrate that a second, independent implementation of did:webplus is achievable from the spec, and it did. It is deliberately frozen: no maintenance, no pull requests.

The TypeScript package’s Ed25519 verification path is conformance-tested against the worked examples in the reference repo, reproducing self-hashes and proofs exactly.

Docker images

docker pull ghcr.io/ledgerdomain/did-webplus-cli   # client-side operations
docker pull ghcr.io/ledgerdomain/did-webplus-vdr   # Verifiable Data Registry
docker pull ghcr.io/ledgerdomain/did-webplus-vdg   # Verifiable Data Gateway
docker pull ghcr.io/ledgerdomain/did-webplus-urd   # Universal Resolver Driver

Running DIF’s Universal Resolver? The URD slots in as a standard driver, so did:webplus resolves alongside every other method you support.

Built one? Get listed.

We want this table to grow, and listing is deliberately low-friction. Requirements: your implementation validates against the published worked examples (microledger, hash function selection); you state which components you cover (controller, resolver, VDR, VDG) and which resolution features (versionId, selfHash, VDG endpoints); and it’s publicly available under an open source license. Then open an issue titled “Implementation listing: <name>” with links and coverage notes. Interop-tested implementations get flagged as such. If you intend to track spec changes as they land, say so; we’ll note it.

Conformance material is ready when you are

Test vectors and validation rules