did:webvh Implementations¶
Implementations of did:webvh software for DID Controller registrars,
resolvers, controllers and/or servers can be found here. See each
implementation's repository for details on features and capabilities. Please
let us know (or submit a PR) if you have an implementation that is not listed
here, or if you want to update how your implementation is described.
The [did:webvh Implementations website] and repository is used for
interoperability and conformance testing to ensure that each implementation is
compliant with the specification and can interoperate with other
implementations. The goal is to ensure that the did:webvh method is
implemented consistently across a wide range of programming languages and
platforms. As implementations mature, they can be added to the repository and
website.
Full Implementations¶
The following are complete implementations of did:webvh that support the
full set of features and capabilities defined in the current specification.
They have been tested for interoperability, and the developers have been
comparing notes and providing feedback to one another and to the Working Group
to clarify the specification and help future implementors.
- DIF -- Typescript
- DIF -- Python
- Affinidi at DIF -- Rust, Crate -- Production-ready implementation informed by security reviews, audits, and production deployment experience. Notable features include external signer support (the library never handles secret key material directly), enabling clean integration with Key Management Services (KMS) and Hardware Security Modules (HSMs) to meet regulated environment requirements. Also includes developer convenience functions for witness operations, improved error messages, and an optional HTTP client (gated behind a feature flag).
Partial/PoC Implementations¶
These implementations are known, but are either incomplete or not fully compliant with the latest specification. They may be useful for building out new implementations.
- Nuts Foundation -- Go (Registrar/Resolver)
- DIF -- Rust-v0.5 (Experimental Registrar/Resolver)
Other Implementations¶
These are implementations we know about, but not much. We'll try to learn more and categorize them better in the future.
Deployment Tools¶
These are tools that can be used to deploy and manage did:webvh
implementations, such as servers, watchers and resolvers.
- DIF --
did:webvhServer - Python (Server) - DIF --
did:webvhWatcher - Python (Watcher) - DIF --
did:webvhUniversal Resolver Driver -- based on the Typescript implementation.
Note that the DIF Rust implementation includes all of the same components (Registrar, Resolver, Witness, Watcher) in a single repository that can be used to build out custom deployment tools.
DID Controller Capabilities¶
The following are digital trust agent frameworks that support the did:webvh
method, allowing users to create, issue, hold, request, present and verify
verifiable credentials rooted with did:webvh DIDs. ACA-Py is primarily a
server-side framework, while Credo-TS is both a server-side and mobile wallet
framework.
- OWF -- ACA-Py Plugin -- Full
did:webvhsupport including registrar, resolver, witness, and watcher capabilities. Enables multi-tenant deployments to create and managedid:webvhDIDs with witness-based attestation. In production use in deployments including BC Gov's Traction platform. - OWF -- Credo-TS Module --
did:webvhresolver support, with registrar support in active development. As both a server-side and mobile wallet framework, bringsdid:webvhinto a broad range of wallet and agent deployment contexts. - OWF -- Bifold Wallet -- A React Native (iOS and Android) mobile wallet
built on top of Credo-TS, inheriting its
did:webvhsupport. BC Wallet, the mobile wallet for British Columbia residents, is built on top of Bifold.