Skip to content

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.

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.

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:webvh support including registrar, resolver, witness, and watcher capabilities. Enables multi-tenant deployments to create and manage did:webvh DIDs with witness-based attestation. In production use in deployments including BC Gov's Traction platform.
  • OWF -- Credo-TS Module -- did:webvh resolver support, with registrar support in active development. As both a server-side and mobile wallet framework, brings did:webvh into 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:webvh support. BC Wallet, the mobile wallet for British Columbia residents, is built on top of Bifold.