owned this note
owned this note
Published
Linked with GitHub
# did:webvh DID Method Work Item Rolling Agenda<!-- omit in toc -->
**Zoom Link**: [https://us02web.zoom.us/j/83119969275?pwd=IZTuXgGLtdLPjPLuB6q8zHXazxHSsU.1](https://us02web.zoom.us/j/83119969275?pwd=IZTuXgGLtdLPjPLuB6q8zHXazxHSsU.1)
**Agenda**: [did:webvh Info Site](https://didwebvh.info/latest/agenda/), [HackMD](https://hackmd.io/k4cIK9vQSlaeg2pdHE51IQ), [did:webvh Repository](https://github.com/decentralized-identity/didwebvh/blob/main/agenda.md) (synchronized after each meeting).
[**WG projects**](https://github.com/decentralized-identity?q=wg-cc&type=&language=) | [DIF page](https://identity.foundation/working-groups/claims-credentials.html) | [Mailing list and Wiki](https://lists.identity.foundation/g/cc-wg) | [Meeting recordings](https://docs.google.com/spreadsheets/d/1wgccmMvIImx30qVE9GhRKWWv3vmL2ZyUauuKx3IfRmA/edit?gid=111226877#gid=111226877)
## Table of Contents<!-- omit in toc -->
- [Meeting Information](#meeting-information)
- [Future Topics](#future-topics)
- [Meeting - 11 Sept 2025](#Meeting---11-Sept-2025)
- [Meeting - 28 Aug 2025](#Meeting---28-Aug-2025)
- [Meeting - 14 Aug 2025](#Meeting---14-Aug-2025)
- [Meeting - 31 Jul 2025](#Meeting---31-Jul-2025)
- [Meeting - 17 Jul 2025](#Meeting---17-Jul-2025)
- [Meeting - 03 Jul 2025](#Meeting---03-Jul-2025)
- [Prior Meetings](#Prior-Meetings)
## Meeting Information
- Before you contribute - **[join DIF]** and [sign the WG charter] (both are required!)
- Meeting Time: Every second Thursday at 9:00 Pacific (~=18:00 Central Europe)
- [Calendar entry]
- [ID WG participation tracking]
- [Zoom room]
- Links and Repositories:
- [Specification], [Spec Repo], [Information Site]
- Implementations: [TS], [Python], [Go], [Rust], [Server-Py]
- Test Suite: [Test Suite]
_Participants are encouraged to turn your video on. This is a good way to build rapport across the contributor community._
_This document is live-edited DURING each call, and stable/authoritative copies live on our github repo under `/agenda.md`, link: [Agenda]._
[join DIF]: https://identity.foundation/join
[sign the WG charter]: https://bit.ly/DIF-WG-select1
[Calendar entry]: https://calendar.google.com/event?action=TEMPLATE&tmeid=NG5jYWowbmZsdWNzM21tYjBsbDIzdG50ZzFfMjAyNDA5MTJUMTYwMDAwWiBkZWNlbnRyYWxpemVkLmlkZW50aXR5QG0&tmsrc=decentralized.identity%40gmail.com&scp=ALL
[Zoom Room]: https://us02web.zoom.us/j/83119969275?pwd=IZTuXgGLtdLPjPLuB6q8zHXazxHSsU.1
[DIF Code of Conduct]: https://github.com/decentralized-identity/org/blob/master/code-of-conduct.md
[ID WG participation tracking]: https://docs.google.com/spreadsheets/d/12hFa574v5PRrKfzIKMgDTjxuU6lvtBhrmLspfKkN4oE/edit#gid=0
[operations@identity.foundation]: mailto:operations@identity.foundation
[did:webvh Specification license]: https://github.com/decentralized-identity/didwebvh/blob/main/LICENSE.md
[Agenda]: https://github.com/decentralized-identity/trustdidweb/blob/main/agenda.md
[Specification]: https://identity.foundation/didwevbvh
[Spec Repo]: https://github.com/decentralized-identity/didwebvh
[did:webvh AnonCreds Method]: https://identity.foundation/didwebvh/anoncreds-method/
[Information Site]: https://didwebvh.info
[Python]: https://github.com/decentralized-identity/didwebvh-py
[TS]: https://github.com/decentralized-identity/didwebvh-ts
[Go]: https://pkg.go.dev/github.com/nuts-foundation/trustdidweb-go
[Server-Py]: https://github.com/decentralized-identity/didwebvh-server-py
[Watcher-Py]: https://github.com/decentralized-identity/didwebvh-watcher-py
[Rust]: https://github.com/decentralized-identity/didwebvh-rs
[Affinidi Rust]: https://github.com/affinidi/affinidi-tdk-rs/tree/main/crates/affinidi-did-resolver/affinidi-did-resolver-methods/did-webvh
[Test Suite]: https://github.com/decentralized-identity/didwebvh-test-suite
[Implementations]: https://github.com/decentralized-identity/didwebvh-implementations
[did:webvh ACA-Py Plugin]: https://github.com/openwallet-foundation/acapy-plugins/tree/main/webvh
[did:webvh Static]: https://github.com/OpSecId/webvh-static
[did:webvh Tutorial]: https://didwebvh.info/latest/demos/understanding_didwebvh/
[DID Attested Resources]: https://identity.foundation/did-attested-resources
[DID Attested Resources Repository]: https://github.com/decentralized-identity/did-attested-resources
## Future Topics
- Using the `did:webvh` log format with other DID Methods
- Merging `did:webvh` features into `did:web`?
--------------------------------
## Meeting - 11 Sept 2025
Time: 9:00 Pacific / 17:00 Central Europe
Recording: [Zoom Recording and Chat Transcript](https://us02web.zoom.us/rec/share/GAneCYilJNC2SRTSOPyFADk39X_dCrc8rWLj9OpuPIsTLMUAPx511g2MLawhZM0.NWYjBqrqDjxUSXMR)
### To Do's from this Meeting (as generated by Zoom):<!-- omit in toc -->
1. Stephen to merge the PR about deactivation after addressing Brian's comment about empty objects.
2. Stephen to raise issues in the DID WebVH spec and DID resolution spec regarding deactivation behavior and version parameters.
3. Stephen to prepare for the Open Wallet Foundation presentation on Monday, September 15th.
4. Stephen to investigate submiting the DID WebVH Explorer as a demo for TPAC following W3C's request.
5. Stephen to review and merge Patrick's PR for the DID WebVH Explorer.
6. Stephen to clean up the spec and address the index of normative references.
7. Brian to continue working on the registrar set of AnonCreds resources for Credo implementation.
### Attendees:<!-- omit in toc -->
- Stephen Curran
- Brian Richter
- Dmitri Zagidulin
- Alexander Shenshin
- Philip Long
### Agenda and Notes<!-- omit in toc -->
1. Welcome and Adminstrivia
1. Recording on?
2. Please make sure you: [join DIF], [sign the WG Charter], and follow the [DIF Code of Conduct]. Questions? Please contact [operations@identity.foundation].
3. [did:webvh Specification license] -- W3C Mode
4. Introductions and requests for additional Agenda Topics
2. Announcements:
1. Presentation about did:webvh and [DID Attested Resources] planned for September 15, 2025 at the OpenWallet Foundation's Wallet Interoperability SIG. Meeting Agenda and Zoom Link [here](https://lf-openwallet-foundation.atlassian.net/wiki/spaces/GROUP/pages/221970474/2025-09-15+Wallet+Interop+SIG).
2. NEW! -- did:webvh Explorer added to the did:webvh [Server-Py]! Checkout [https://demo.identifier.me/explorer](https://demo.identifier.me/explorer) as an example. Awesome work by @PatStLouis!
3. Update to [Rust] implementation -- 0.1.6. New dependencies to improve integration, updates to the Wizard (e.g. automated did:web generation), more automated tests (74.27% coverage) and more!
4. Reminder: The DID Methods Standardization Working Group [PR to make did:webvh "DIF Recommended"](https://github.com/decentralized-identity/did-methods/pull/67) has been published. Comments and objections will be collected for 60 days, through September 28, 2025. Please keep an eye on the PR.
3. Status updates on the implementations
1. [TS] -- Credo 0.5.17 released. All of the resolution things are there. Working on the registrar of AnonCreds objects and pushing updates into Bifold/BC Wallet.
2. [Python] --
3. [Rust] -- See notes above about 0.1.6.
4. [Server-Py] -- New Explorer added.
5. [Watcher-Py] --
6. [did:webvh AnonCreds Method] --
7. [did:webvh ACA-Py Plugin] --
9. [Test Suite] --
9. [did:webvh Tutorial] --
10. [Implementations] --
4. To Do's from Last Meeting:
1. DONE - The group to present about DID WebVH and DID Attested Resources at the Open Wallet Foundation's Wallet Interoperability SIG meeting on September 15th.
2. SCHEDULED for 2026.02.17 (!!) - The group to prepare a presentation for the CCG about WebVH, attested resources, and the topic of default service in DIDs.
3. Patrick to explore making the witness file a service in the DID WebVH specification.
4. DONE - Stephen to review Glenn's comments on the deactivate session pull request.
5. Stephen to consider potential unwanted effects of portability on the deactivation methods.
6. Patrick to try implementing verification of credentials with past rotated keys in ACA-Py to test if it works with query parameters -- e.g. a DID of the form `<did>?versionId=<id>#keyid`.
5. Question from Glenn about the definition in the did:webvh spec about the `/whois` service. Is it valid that the `id` is a relative ref (just `#whois`) or does it need to be `<did>#whois`? The DID Core Spec clearly supports this -- see [Relative DID URLs](https://www.w3.org/TR/did/upcoming/#relative-did-urls) section. But what about interop?
- We can add to the spec "may use an absolute reference" to the implict definitions of the two services.
6. [PRs](https://github.com/decentralized-identity/didwebvh/pulls) Review
- Discuss and merge if possible.
7. Other [Issues](https://github.com/decentralized-identity/didwebvh/issues) Review
- Discuss and close as possible.
- Notes...
8. Open Discussion -- what else do you want to discuss?
9. Consider submitting for a TPAC Demo the did:webvh explorer
## Meeting - 28 Aug 2025
Time: 9:00 Pacific / 17:00 Central Europe
Recording: [Zoom Recording and Chat Transcript](https://us02web.zoom.us/rec/share/o_w_urSYWHSueKJHr2Pfzjr2lpfc8T4WpiZ33A7nB67R5ak1iIJU8XfnjdSGM7jh.ORVKxUQq33PPncPe)
### To Do's from this Meeting (as generated by Zoom):<!-- omit in toc -->
1. The group to present about DID WebVH and DID Attested Resources at the Open Wallet Foundation's Wallet Interoperability SIG meeting on September 15th.
2. The group to prepare a presentation for the CCG about WebVH, attested resources, and the topic of default service in DIDs.
3. Patrick to explore making the witness file a service in the DID WebVH specification.
4. Stephen to review Glenn's comments on the deactivate session pull request.
5. Stephen to consider potential unwanted effects of portability on the deactivation methods.
9. Patrick to try implementing verification of credentials with past rotated keys in ACA-Py to test if it works with query parameters -- e.g. a DID of the form `<did>?versionId=<id>#keyid`.
### Attendees:<!-- omit in toc -->
- Stephen Curran
- Patrick St. Louis
- Dmitri Zagidulin
- Alexander Shenshin
- Philip Long
### Agenda and Notes<!-- omit in toc -->
1. Welcome and Adminstrivia
1. Recording on?
2. Please make sure you: [join DIF], [sign the WG Charter], and follow the [DIF Code of Conduct]. Questions? Please contact [operations@identity.foundation].
3. [did:webvh Specification license] -- W3C Mode
4. Introductions and requests for additional Agenda Topics
2. Announcements:
1. Presentation about did:webvh and DID Attested Resources planned for September 15, 2025 at the OpenWallet Foundation's Wallet Interoperability SIG. Meeting Agenda and Zoom Link [here](https://lf-openwallet-foundation.atlassian.net/wiki/spaces/GROUP/pages/221970474/2025-09-15+Wallet+Interop+SIG).
2. [DID Attested Resources] specification has been created.
3. Reminder: The DID Methods Standardization Working Group [PR to make did:webvh "DIF Recommended"](https://github.com/decentralized-identity/did-methods/pull/67) has been published. Comments and objections will be collected for 60 days, through September 28, 2025. Please keep an eye on the PR.
3. Status updates on the implementations
1. [TS] -- Credo evolution continues -- possibly done, needs to be pulled into Bifold, and then the BC Wallet PR updated.
2. [Python] -- is at 1.0 -- published. The "none" handling has been included.
3. [Rust] -- Updated with recent feedback to the wizard and clarifications.
4. [Server-Py] -- Deployed the BC Gov Sandbox of the Server-Py. Anyone can use it for test DIDs.
5. [Watcher-Py] --
6. [did:webvh AnonCreds Method] --
7. [did:webvh ACA-Py Plugin] --
9. [Test Suite] --
9. [did:webvh Tutorial] --
10. [Implementations] --
4. To Do's from Last Meeting:
1. DONE - Brian to complete Patrick's PR for both the 06 and 05 branches
2. DONE - Patrick to open the PR for Python 1.0 release with null parameter changes this afternoon
3. DONE - Patrick to ping Andrew for review on the Python PR
4. IN PROGRESS - Andrew to review the Askar Issue -- request for a new version
5. DONE - Stephen to add a note in the security section about avoiding reuse of update keys
5. New spec -- [DID Attested Resources] ([DID Attested Resources Repository]) has been created at DIF and we'll start to circulate it. Once it is close enough, we'll update the [did:webvh AnonCreds Method] to reference the new spec instead of embedding it. Feedback welcome.
- Question from Dmitri -- how does did:webvh only use a path on the DID using `relativeRef` without including a query parameter that references the (implicit or explicit) service. Stephen to add a DID Resolution issue to request that there is **one** way to define the base of a DID URL. We should have a session with the CCG/DID Working Group on this topic.
- Patrick would like to remove "DID" from the name as it is able to be used with DIDs and other controlled identifiers.
6. The concept of a "location-less" `did:webvh` (from chat on Signal) -- making the server location optional, and if not provided, the resolver (or client of the resolver) is assumed to know from context (e.g. outside the specification -- left to governance) where to find the DID Log and witness files. This is an alternate to did:scid, mostly because I don't understand did:scid, and why it is better than achieving the same goals with just `did:webvh`.
Potential uses:
- An alternative to did:peer for peer DIDs. Requires that the distribution of the DID Log by handle.
- Useful as a replacement for did:plc, where the location of the DIDs are "known" and accessed via an API.
- An ecosystem with well known watchers.
- Location can be in a query parameter, e.g. `<did>?src=<DID Log URL>`
ASIDE: Dmitri/Patrick super clever idea -- make the "witness.json" referenced by a service in the DIDDoc. An implicit service that you can override. Issue to be added to the `did:webvh` repo. Issue to be added to the spec for a future version.
A suggestion was made that this might be a separate spec / DID Method because it would change a lot in the spec. However, I would argue the reverse -- that it would change very little in the spec, and separating it out would duplicate almost the entire spec. The only thing we are changing is the removal of the "discovery" method for the spec, and adding a note -- if there is no location in the spec, it is up to the resolver to know where to get the DID Log File, which is out of scope of the spec. We might add the query parameter method as an alternative.
7. [PRs](https://github.com/decentralized-identity/didwebvh/pulls) Review
- Discuss and merge if possible.
- Re: [Deactivation PR 252](https://github.com/decentralized-identity/didwebvh/pull/252)
- Still need to review more Glenn's comments, but they are more at the DID Resolution level than at the DID Method level. Patrick mentioned about how partability might impact deactivation.
- This led to an interesting discussion about the need to differentiate between why a key has been detactivated -- rotation but signatures valid vs. compromised -- don't trust, and making it easier to directly find past keys with status metadata without having to include them in the current DIDDoc. Issue to be added to the did:webvh spec and to be raised at the DID Resolution level.
8. NOT COVERED - OUT OF TIME: Other [Issues](https://github.com/decentralized-identity/didwebvh/issues) Review
- Discuss and close as possible.
- Notes...
9. Open Discussion -- what else do you want to discuss?
## Meeting - 14 Aug 2025
Time: 9:00 Pacific / 17:00 Central Europe
Recording: [Zoom Recording and Chat Transcript](https://us02web.zoom.us/rec/share/M5rG6ehIZsZVf1-eaOoBvxS-ozSZnPlSRGqEgY88c0WDMtWbaY5rt6SpFnDF4_xI.IcGXL4VZDEPR5S8T)
### To Do's from this Meeting (as generated by Zoom):<!-- omit in toc -->
1. Brian to complete Patrick's PR for both the 06 and 05 branches
2. Patrick to open the PR for Python 1.0 release with null parameter changes this afternoon
3. Patrick to ping Andrew for review on the Python PR
4. Andrew to review the Askar Issue -- request for a new version
5. Stephen to add a note in the security section about avoiding reuse of update keys
### Attendees:<!-- omit in toc -->
- Stephen Curran
- Brian Richter
- Patrick St. Louis
- Andrew Whitehead
- Venu R
- Philip Long
- Alexander Shenshin
### Agenda and Notes<!-- omit in toc -->
1. Welcome and Adminstrivia
1. Recording on?
2. Please make sure you: [join DIF], [sign the WG Charter], and follow the [DIF Code of Conduct]. Questions? Please contact [operations@identity.foundation].
3. [did:webvh Specification license] -- W3C Mode
4. Introductions and requests for additional Agenda Topics
2. Announcements:
1. Affinidi has contributed their did:webvh Rust implementation to DIF and is now the official [Rust] implementation.
2. The DID Methods Standardization Working Group [PR to make did:webvh "DIF Recommended"](https://github.com/decentralized-identity/did-methods/pull/67) has been published. Comments and objections will be collected for 60 days, through September 28, 2025. Please keep an eye on the PR.
3. Status updates on the implementations
1. [TS] -- Credo PRs merged, but a problem with Attested Resources was found and is being fixed. React Native tweak done to simplify including in BC Wallet.
2. [Python] -- 1.0 Release pending -- with `null` parameter handling changes made.
3. [Rust] -- is now the Affinidi implementation.
4. [Server-Py] -- deployed to the BC Gov Traction sandbox with an Endorser and policies. Along with the plug.
5. [Watcher-Py] --
6. [did:webvh AnonCreds Method] --
7. [did:webvh ACA-Py Plugin] -- Updated with the [Server-Py] component and deployed with Traction
9. [Test Suite] --
9. [did:webvh Tutorial] --
10. [Implementations] --
4. To Do's from Last Meeting:
1. TO DO: Patrick to open an issue to review the witness logic and code in the Python implementation to match the latest changes to the spec, clarifying that an empty dictionary for witness means it's deactivated.
2. DONE: Patrick to address the review comments on the server watcher plugin for deployment in the sandbox environment.
3. TO DO: Stephen to add a note in the deactivate section regarding the deactivation of a DID and its implications on resolution.
4. TO DO: Stephen to include guidance on deactivation in the DID resolution spec, mentioning the state being empty and returning a "not found" status.
5. DONE: Stephen to add an issue regarding the crypto suite discussion and defer it for a version 2 discussion.
6. DONE: Stephen to check the status of did:webvh's acceptance on a standards track for W3C.
7. TO DO: Stephen to propose another presentation about did:webvh at the CCG to update folks about the comment period.
8. TO DO: Patrick to follow up with UNTP about their interest in implementing did:webvh.
5. [PRs](https://github.com/decentralized-identity/didwebvh/pulls) Review
1. Discuss and merge if possible.
2. PRs merged, except the security and privacy one (new). More changes pending on that after the meeting.
6. Question from Victor Dods. If there is more than one entry in the `updateKeys` what happens if you have two keys used to make different parallel updates to the DID? (From this [issue comment](https://github.com/decentralized-identity/did-methods/pull/67#issuecomment-3177377431)).
1. Separate out the two cases of malicious vs. accidental.
1. Accidental. Mitigations:
1. did:webvh server could detect and prevent.
2. did:webvh witnesses would detect and prevent.
3. did:webvh watchers would detect and prevent.
2. Malicious.
1. Loss of key -- mitigation is the use of pre-rotation.
2. All of the other mitigations apply, but in a different way -- detecting an invalid update.
7. Question from Victor Dods as [issue #246](https://github.com/decentralized-identity/didwebvh/issues/246) explicitly address in the spec that a DID Controller should not reuse an update / pre-rotation key.
1. Discussed and agreed we should add a note recommending against doing so in line with key handling best practices, but there is not a requirement for the resolver to track/detect/invalidate the DID if that is done. A resolver can do that, but not required.
8. Other [Issues](https://github.com/decentralized-identity/didwebvh/issues) Review
1. Issues reviewed, some closed based on the PRs merged earlier in the meeting.
9. Open Discussion -- what else do you want to discuss?
## Meeting - 31 Jul 2025
Time: 9:00 Pacific / 17:00 Central Europe
Recording: [Zoom Recording and Chat Transcript](https://us02web.zoom.us/rec/share/isyq9fNccp34xIeTMx2OVZZRmVvFFYYeF7LjdfYVe_ZQ9qCJwGS5Im4vZNv2KvFX.5YOVP6UzGxdyB4y7)
### To Do's from this Meeting (as generated by Zoom):<!-- omit in toc -->
1. Patrick to open an issue to review the witness logic and code in the Python implementation to match the latest changes to the spec, clarifying that an empty dictionary for witness means it's deactivated.
2. Patrick to address the review comments on the server watcher plugin for deployment in the sandbox environment.
3. Stephen to add a note in the deactivate section regarding the deactivation of a DID and its implications on resolution.
4. Stephen to include guidance on deactivation in the DID resolution spec, mentioning the state being empty and returning a "not found" status.
5. Stephen to add an issue regarding the crypto suite discussion and defer it for a version 2 discussion.
6. Stephen to check the status of did:webvh's acceptance on a standards track for W3C.
7. Stephen to propose another presentation about did:webvh at the CCG to update folks about the comment period.
8. Patrick to follow up with UNTP about their interest in implementing did:webvh.
### Attendees:<!-- omit in toc -->
- Stephen Curran
- Brian Richter
- Patrick St. Louis
- Phil
### Agenda and Notes<!-- omit in toc -->
1. Welcome and Adminstrivia
1. Recording on?
2. Please make sure you: [join DIF], [sign the WG Charter], and follow the [DIF Code of Conduct]. Questions? Please contact [operations@identity.foundation].
3. [did:webvh Specification license] -- W3C Mode
4. Introductions and requests for additional Agenda Topics
2. Announcements:
1. Affinidi has agreed to contribute their did:webvh Rust implementation to DIF. It will replace the existing `https://github.com/decentralized-identity/didwebvh-rs` repo. The current implementation will be renamed and archived.
2. Second did:webvh Deep Dive completed at DIF/W3C DID Methods Standardization Working Group -- [recording](https://us02web.zoom.us/rec/share/lfV6HHLI9JrbIihvji3aChwKMzpKNuAYstXwHjcAAXbBI6pt1e1GTGheEY-vR0G6.xRejirZnUaAxQB3_), [slides](https://docs.google.com/presentation/d/19mm6hFbyd0GNQ652A7VMkXgi2thxBe29rsUtPTUakpM/edit?usp=sharing).
3. Status updates on the implementations
1. [TS] -- Credo-TS PR Update and ready for review.
2. [Python] --
3. [Rust] -- To Be Archived and replaced with the Affinidi implementation.
4. Affinidi Rust -- being prepared for contribution to DIF.
5. [Server-Py] --
6. [Watcher-Py] --
7. [did:webvh AnonCreds Method] --
8. [did:webvh ACA-Py Plugin] --
9. [Test Suite] --
10. [did:webvh Tutorial] --
11. [Implementations] --
4. To Do's from Last Meeting:
1. DONE - Stephen to update the spec with weasel words to keep it at version 1.0 while addressing the changes discussed.
2. DONE - Stephen to add clarification to the spec that a DID cannot fall back to a previous version.
3. DONE - Stephen to update the spec regarding resolver behavior for witness proof verification.
4. DONE - Stephen to update the PR for adding services to DID Web.
5. TO DO - Team to review and approve the updated PRs once Stephen completes the changes.
6. IN PROCESS - Team to review and provide feedback on Bumblefudge's blog post about version 1.0 before Wednesday or Thursday of next week.
7. DONE - Patrick to reach out to Andrew regarding resolving DIDs from local files in the Python CLI.
8. ?? - Patrick to add a quick script for testing DID resolution before pushing to the implementation repository.
9. ??- Patrick to update the GitHub page of the implementation repository to display the list of DIDs.
10. ?? - Brian to investigate why his newly created implementation is not resolving.
5. [PRs](https://github.com/decentralized-identity/didwebvh/pulls) Review
1. Discuss and merge if possible.
2. All but one PR approved and merged. A slight tweak to the PR that references the `method` parameter is needed to note it is a semver string, not a number.
6. [Issues](https://github.com/decentralized-identity/didwebvh/issues) Review
1. A few issues were discussed and todos added about how to handle them.
7. NIST approved Data Integrity cryptosuites -- according to ChatGPT, July 2025. Should we consider adding another cryptosuite to be "NIST approved"? Thoughts?
**✅ W3C Data Integrity Cryptographic Suites ("Cryptosuites")**
| **Cryptosuite** | **Signature Algorithm** | **Key Type** | **Canonicalization** | **NIST Approved?** | **Status** |
|-----------------|--------------------------|--------------|-----------------------|--------------------|------------|
| [`Ed25519Signature2020`](https://w3c-ccg.github.io/lds-ed25519-2020/) | EdDSA (Ed25519) | `Ed25519VerificationKey2020` | [RFC 8785](https://datatracker.ietf.org/doc/html/rfc8785) (JCS) | ❌ No | Widely used |
| [`JsonWebSignature2020`](https://w3c-ccg.github.io/lds-jws2020/) | JWS (RS256, ES256, EdDSA, etc.) | Various JWKs (RSA, EC, OKP) | None (JWS covers canonicalization internally) | ✅ If using `ES256`, `RS256` | Flexible |
| [`EcdsaSecp256k1Signature2019`](https://w3c-ccg.github.io/lds-ecdsa-secp256k1-2019/) | ECDSA (`secp256k1`) | `EcdsaSecp256k1VerificationKey2019` | [URDNA2015](https://json-ld.github.io/rdf-dataset-canonicalization/spec/) | ❌ No | Used in blockchain/Bitcoin/ETH |
| [`BbsBlsSignature2020`](https://w3c-ccg.github.io/ldp-bbs2020/) | BLS12-381 (pairing-based) | BLS keys | RFC 8785 + custom | ❌ No | Enables ZK selective disclosure |
| [`Ed25519Signature2018`](https://w3c-ccg.github.io/ld-signatures/) | Ed25519 | `Ed25519VerificationKey2018` | URDNA2015 | ❌ No | Legacy |
| [`EcdsaSecp256r1Signature2019`](draft spec) | ECDSA (`P-256`) | `EcdsaSecp256r1VerificationKey2019` | URDNA2015 | ✅ Yes | Rarely implemented |
| [`RsaSignature2018`](legacy) | RS256 | RSA keys | URDNA2015 | ✅ Yes (if >2048-bit keys) | Legacy |
8. Open Discussion -- what else do you want to discuss?
## Meeting - 17 Jul 2025
Time: 9:00 Pacific / 17:00 Central Europe
Recording: [Zoom Recording and Chat Transcript](https://us02web.zoom.us/rec/share/9EhjorgjvON0ShDI4A9Tk8RTSsDOtywxKYA9iIkI8oP-GNKRcf5hrohn9TpAwwld.ShkgGNcv3Nfq0o4Y)
### To Do's from this Meeting (as generated by Zoom):<!-- omit in toc -->
1. Stephen to update the spec with weasel words to keep it at version 1.0 while addressing the changes discussed.
2. Stephen to add clarification to the spec that a DID cannot fall back to a previous version.
3. Stephen to update the spec regarding resolver behavior for witness proof verification.
4. Stephen to update the PR for adding services to DID Web.
5. Team to review and approve the updated PRs once Stephen completes the changes.
6. Team to review and provide feedback on Bumblefudge's blog post about version 1.0 before Wednesday or Thursday of next week.
7. Patrick to reach out to Andrew regarding resolving DIDs from local files in the Python CLI.
8. Patrick to add a quick script for testing DID resolution before pushing to the implementation repository.
9. Patrick to update the GitHub page of the implementation repository to display the list of DIDs.
10. Brian to investigate why his newly created implementation is not resolving.
### Attendees:<!-- omit in toc -->
- Stephen Curran
- Brian Richter
- Patrick St. Louis
- Alexander Shenshin
- Juan Caballero
- Andrew Whitehead
### Agenda and Notes<!-- omit in toc -->
1. Welcome and Adminstrivia
1. Recording on?
2. Please make sure you: [join DIF], [sign the WG Charter], and follow the [DIF Code of Conduct]. Questions? Please contact [operations@identity.foundation].
3. [did:webvh Specification license] -- W3C Mode
4. Introductions and requests for additional Agenda Topics
2. Announcements:
1. did:webvh [Implementations] repo created. Background provided later in the meeting.
2. did:webvh Deep Dive completed at DIF/W3C DID Methods Standardization Working Group -- [recording](https://us02web.zoom.us/rec/share/6GhsVQ6VCIQiM5YyqkeAr4zg9RxcfxriKSi3tqQp5v0nad7Gdp52uXe5Pm3B26nz.SdHHNRMZJJcWmzZn), [slides](https://docs.google.com/presentation/d/1VCD4z6yQ1nGezFngWWLDZ9xL6xnA8pkX5992jq0xEfA/edit?usp=sharing).
3. Status updates on the implementations
1. [TS] -- updates made to align with others.
2. [Python] -- No updates -- interop and performance tests run.
3. [Rust] -- No updates
4. [Affinidi Rust] -- updates, interop testing, performance testing.
5. [Server-Py] -- ready for use -- policy rules still being completed.
6. [Watcher-Py] --
7. [did:webvh AnonCreds Method] --
8. [did:webvh ACA-Py Plugin] -- policy implementation to match the server. DIDComm protocols for the witnessing -- both for log entries and for attested resources (initial use -- AnonCreds objects). Works with the ACA-Py Endorser Server repository at OWF. Allows control/governance over what can be published by a given instance of ACA-Py. Iterations of how to handle this -- now at a good place, including auto-approval and approval.
9. [Test Suite] --
10. [did:webvh Tutorial] --
11. [Implementations] -- repo added, populated with initial implementations.
4. To Do's from Last Meeting:
1. [PR 233](https://github.com/decentralized-identity/didwebvh/pull/233) DONE - Stephen to update the did:webvh specification with clearer guidelines on optional parameters and default values.
2. DONE - Stephen to add the witness proof file analysis to the [FAQ section](https://didwebvh.info/latest/faq/) of the specification.
3. DONE? - Glenn to make the performance testing code available for other implementations to use.
4. DONE - Stephen to monitor and participate in discussions about DID method standardization at W3C.
5. IN PROGRESS - Stephen to submit PRs for the pending issues listed in the specification repository.
6. DONE Stephen to create a [LinkedIn post](https://www.linkedin.com/feed/update/urn:li:activity:7348111717639344128/) announcing the release of ACA-Py 1.3.1 with did:webvh support.
5. Continued from last meeting, but with a concrete PR in place about what should be in the spec when describing optional parameters.
1. Big question -- is this a new version, or leave it as 1.0?
1. Decision -- leave it as 1.0. The added deprecation/resolver guidance in the PR will allow us to justify that.
6. New issues from implementation iterations:
1. [\#235](https://github.com/decentralized-identity/didwebvh/issues/235) -- Method can only increase -- agreed
2. [\#236](https://github.com/decentralized-identity/didwebvh/issues/236) -- Clarifying resolver witness proof handling requirements -- agreement, PR to be added.
3. [\#234](https://github.com/decentralized-identity/didwebvh/issues/234) -- Verifiable history of resources. Agreed that while this is interesting, it is not likely did:webvh specific. Could be a separate spec, or perhaps added in a later did:webvh version.
4. Other PRs and Issues. Looked at the did:web one and almost ready -- Stephen has since added an update to deal with the `/whois` with a parallel DID.
7. The [Implementations] repo -- an overview from Patrick St. Louis.
8. Open Discussion -- what else do you want to discuss?
## Meeting - 03 Jul 2025
Time: 9:00 Pacific / 17:00 Central Europe
Recording: [Zoom Recording and Chat Transcript](https://us02web.zoom.us/rec/share/E_dOkidz6fsa2UsAY_f5di9-BLuLOCIVDU_8IapUocrQrow1gJrXNQ8fMqvch2g.seSLCjYCynnHN9RW)
### To Do's from this Meeting (as generated by Zoom):<!-- omit in toc -->
1. Stephen to update the did:webvh specification with clearer guidelines on optional parameters and default values.
3. Stephen to add the witness proof file analysis to the FAQ section of the specification.
4. Glenn to make the performance testing code available for other implementations to use.
5. Stephen to monitor and participate in discussions about DID method standardization at W3C.
6. Stephen to submit PRs for the pending issues listed in the specification repository.
7. Stephen to create a post announcing the release of ACA-Py 1.3.1 with did:webvh support
### Attendees:<!-- omit in toc -->
- Stephen Curran
- Brian Richter
- Dmitri Zagidulin
- Alexander Shenshin
- Makki Elfatih
### Agenda and Notes<!-- omit in toc -->
1. Welcome and Adminstrivia
1. Recording on?
2. Please make sure you: [join DIF], [sign the WG Charter], and follow the [DIF Code of Conduct]. Questions? Please contact [operations@identity.foundation].
3. [did:webvh Specification license] -- W3C Mode
4. Introductions and requests for additional Agenda Topics
2. Announcements:
1. Affinidi performance testing results.
- 10 years of monthly DID updates -- 120 log entries.
- Periodic witness and watcher updates
- 197kb Log, 5.9kb witness file
- 50ms to generate the log
- 28ms to verify the log
- "This is a very good performance result compared to other high-trust traceable DIDs (Keri, BlockChain). I can validate ~10 years of WebVH history in under 30ms, faster than likely fetching a web3 DID ;)"
2. New: did:webvh implementations (TS, PY) pass the DID Test Suite ([link](https://w3c.github.io/did-test-suite/#M51)).
- Had to tweak the DID resolution document metadata for `threshold`, converting it a string when resolving -- still an integer in the Log Entry.
4. Status updates on the implementations
1. [TS] -- working through change requests from Credo Team. Dealing with two version of Credo. Update for the `threshold` metadata.
2. [Python] --
3. [Rust] --
4. [Server-Py] -- Policy features nearing completion.
5. [Watcher-Py] --
6. [did:webvh AnonCreds Method] --
7. [did:webvh ACA-Py Plugin] -- Updated for ACA-Py 1.3.1 -- now deployable on a released version of ACA-Py.
8. [Test Suite] --
9. [did:webvh Tutorial] -- Updated for v1.0 spec.
5. To Do's from Last Meeting:
1. Stephen to update the tutorial page on the web info site with Affinidi's tutorial details.
2. DONE - Stephen to pursue clarification on witness handling with Glenn from Affinidi, based on Patrick's input.
3. DONE - Stephen to add an issue and PR for adding service endpoints to the did:web equivalent of did:webvh.
4. DONE - Stephen to add a note about including "also known as" references in both did:webvh and did:web documents.
5. Patrick to update the tutorial to include service endpoints in the did:web example.
6. IN PROGRESS - BC Gov team to continue work on implementing a production-level did:webvh system with policy enforcement mechanisms.
7. IN PROGRESS - Patrick to continue development of the did:webvh server with configurable policy enforcement features.
8. IN PROGRESS - Patrick to develop the endorser service as a plugin for supporting did:webvh in Traction.
8. Discussion on what should be in the spec when describing optional parameters. How do we get the wording right to remove ambiguity?
- Need developer input to get the wording right.
- It gets tricky for the first entry (requires defaulting to some value) vs. later entries (previous value holds).
- In future, when a DID changes the spec it is using, that may result in new parameters needing to be defaulted if not explicitly specified.
- Changelog contents -- must include what new parameters and their defaults?
- Must have a way to explictly turn off a value -- so include it but set it to the default -- not `null`.
- Need to handle these issues:
- Array -- "[]"
- Dict -- "{}"
- Strings -- "".
- Avoid null, because null is not typed.
- MUST: Accept parameters that are set to the default.
- Optional parameters need not be present and if not present MUST be set to default.
- Relevant part of the spec is [here](https://identity.foundation/didwebvh/v1.0/#didwebvh-did-method-parameters).
- Idea:
- Define default value if not specified in the first applicable entry. Implementations can use that to initialize the setting.
- Define allowed values if specified. In defining that, note the value to use to "turn off" a parameter.
7. Do we revert an earlier decision and put the witness proofs back into the DID Log? **NO!**
- Eliminates the separate file/retrieval.
- Allows "as you go" witnessing of Log Entries.
- Increases the size of Log Files because witness proofs cannot be "optimized" -- removed when later ones are added.
- Good to get an estimate on this.
- Glenn Gore ([Affinidi](https://www.affinidi.com/)) provided us with one -- [Witness Proofs in Logs -- Test Scenario and Analysis](https://hackmd.io/-elL5qKYQgymxLUJxvDggg?view)
- Based on the analysis, the increase in file size, plus the time to process the additional witness proofs makes the current scheme of separate files better -- we'll keep it.
- Method -- Add proofs of witnesses to the `proof` item array.
- I recall we discussed this earlier and decided not to use that approach because "proof sets" was not standardized?
- Presumably, the proofs in an array have to be over the same content? If so, the witness "payload" for the proof would change to be in the same `proof` item.
8. Open Discussion -- what do you want to discuss?
## Prior Meetings
- First half of 2025 meetings can be found in the [Agenda 2025 1] file.
- 2024 meetings can be found in the [Agenda 2024] file.
[Agenda 2025 1]: https://github.com/decentralized-identity/didwebvh/tree/main/agenda-2025-1.md
[Agenda 2024]: https://github.com/decentralized-identity/didwebvh/tree/main/agenda-2024.md