{"id":50576149,"url":"https://github.com/decentralized-identity/didwebvh","last_synced_at":"2026-06-04T22:01:59.057Z","repository":{"id":225903002,"uuid":"767183081","full_name":"decentralized-identity/didwebvh","owner":"decentralized-identity","description":"did:webvh (did:web + Verifiable History). Formerly called did:tdw.","archived":false,"fork":false,"pushed_at":"2026-02-26T18:15:15.000Z","size":4697,"stargazers_count":50,"open_issues_count":14,"forks_count":16,"subscribers_count":13,"default_branch":"main","last_synced_at":"2026-02-27T00:24:28.651Z","etag":null,"topics":["did-method","didwebvh","digital-trust","verifiable-credentials","wg-id"],"latest_commit_sha":null,"homepage":"https://identity.foundation/didwebvh/next/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/decentralized-identity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-03-04T21:06:38.000Z","updated_at":"2026-02-26T18:14:51.000Z","dependencies_parsed_at":"2024-03-04T22:29:15.082Z","dependency_job_id":"a4e95413-6d6a-4243-8734-725860ed8b1d","html_url":"https://github.com/decentralized-identity/didwebvh","commit_stats":null,"previous_names":["bcgov/didwebnext","bcgov/trustdidweb","decentralized-identity/trustdidweb","decentralized-identity/didwebvh"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/decentralized-identity/didwebvh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decentralized-identity%2Fdidwebvh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decentralized-identity%2Fdidwebvh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decentralized-identity%2Fdidwebvh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decentralized-identity%2Fdidwebvh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/decentralized-identity","download_url":"https://codeload.github.com/decentralized-identity/didwebvh/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decentralized-identity%2Fdidwebvh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33921352,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["did-method","didwebvh","digital-trust","verifiable-credentials","wg-id"],"created_at":"2026-06-04T22:01:58.955Z","updated_at":"2026-06-04T22:01:59.038Z","avatar_url":"https://github.com/decentralized-identity.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The `did:webvh` DID Method -- `did:web` + Verifiable History\n\nThe spec repository for the `did:webvh` DID Method. `did:webvh` is `did:web`\nextended to include the Verifiable History of the DID.\n\nRead the spec: [https://identity.foundation/didwebvh](https://identity.foundation/didwebvh/next)\n\nProof of concept implementations available:\n\n- Typescript: [https://github.com/decentralized-identity/trustdidweb-ts](https://github.com/decentralized-identity/trustdidweb-ts)\n- Python: [https://github.com/decentralized-identity/trustdidweb-py](https://github.com/decentralized-identity/trustdidweb-py)\n- Go: [https://github.com/nuts-foundation/trustdidweb-go](https://github.com/nuts-foundation/trustdidweb-go)\n- Python Web Server: [https://github.com/decentralized-identity/trustdidweb-server-py](https://github.com/decentralized-identity/trustdidweb-server-py)\n\n## Current Status of the Specification\n\nThe current stable version of the specification can be found at\n[https://identity.foundation/didwebvh](https://identity.foundation/didwebvh).\nSee any guidance there about the status of the specification -- past versions,\nupcoming changes, etc.\n\n## Abstract\n\nThe `did:webvh` DID Method is an enhancement to the well-known `did:web` DID\nmethod, providing a complementary web-based DID method that addresses\nlimitations of `did:web`, most notability, the verifiable history for which it\nis name. `did:webvh` features include the following.\n\n- Ongoing publishing of all DID Document (DIDDoc) versions for a DID instead of,\n  or alongside a `did:web` DID/DIDDoc.\n- Uses the same DID-to-HTTPS transformation as `did:web`.\n- Provides resolvers the full history of the DID using a verifiable chain of\n  updates to the DIDDoc from genesis to deactivation.\n- A self-certifying identifier (SCID) for the DID that is globally\n  unique and derived from the initial DIDDoc that enables DID portability, such\n  as moving the DIDs web location (and so the DID string itself) while retaining\n  the DID's history.\n- DIDDoc updates include a proof signed by the DID Controller(s) *authorized* to\n  update the DID.\n- An optional mechanism for publishing \"pre-rotation\" keys to prevent loss of\n  control of the DID in cases where an active private key is compromised.\n- An optional mechanism for having collaborating \"witnesses\"\n  that approve updates to the DID by the DID Controller before publication.\n- DID URL path handling that defaults (but can be overridden) to automatically\n  resolving `\u003cdid\u003e/path/to/file` by using a comparable DID-to-HTTPS translation\n  as for the DIDDoc.\n- A DID URL path `\u003cdid\u003e/whois` that defaults to automatically returning (if\n  published by the DID controller) a Verifiable Presentation containing\n  Verifiable Credentials with the DID as the `credentialSubject`,\n  signed by the DID.\n\nCombined, the additional features enable greater trust, security and\nverifiability without compromising the simplicity of `did:web`. The incorporation\nof the DID Core compatible \"/whois\" path, drawing inspiration from the\ntraditional WHOIS protocol, offers an easy to use, decentralized, trust\nregistry. `did:webvh` aims to establish a more trusted and secure web\nenvironment by providing robust verification processes and enabling transparency\nand authenticity in the management of decentralized digital identities.\n\n## Contributing to the Specification\n\nPull requests (PRs) to this repository may be accepted. Each commit of a PR must\nhave a DCO (Developer Certificate of Origin -\n[https://github.com/apps/dco](https://github.com/apps/dco)) sign-off. This can\nbe done from the command line by adding the `-s` (lower case) option on the `git\ncommit` command (e.g., `git commit -s -m \"Comment about the commit\"`).\n\nRendering and reviewing the spec locally for testing requires `npm` and `node`\ninstalled. Follow these steps:\n\n- Fork and locally clone the repository.\n- Install `node` and `npm`.\n- Run `npm install` from the root of your local repository.\n- Edit the spec documents (in the `/spec` folder).\n- Run `npm run render`'\n  - Use `npm run edit` to interactively edit, render and review the spec.\n- Load the root `index.html` file in a browser to be redirected to the current default version of the specification.\n\nThe specification is currently in [Spec-Up] format. See the\n[Spec-Up Documentation] for a list of Spec-Up features and functionality.\n\n[Spec-Up]: https://github.com/decentralized-identity/spec-up\n[Spec-Up Documentation]: https://identity.foundation/spec-up/\n\n## Publishing Previous Spec Versions\n\n[Spec-Up] allows for multiple versions of the spec to be rendered and accessed\non the same site. We use that feature for the `did:webvh` DID Method spec to snapshot\nprevious versions of the spec for reference.\n\nTo create a snapshot of a version:\n\n- Make a new folder in the root of the repository for the new version, called `spec-v\u003cver\u003e`. For example `spec-v0.3`.\n- Copy the current `spec` folder markdown files from the point of that version into the new folder. If you are doing this process as you are starting a new version, you can just copy the files from the `spec` folder of the main branch. Otherwise, you have to find the last commit of the version and get the files from that point in the GitHub history.\n- Update the `specs.json` file to include a new specification:\n  - Copy the primary spec entry text.\n  - Paste that text into a new spec entry in the `\"specs\"` array.\n  - Update the `\"spec_directory\"` property to be the name of the new folder you created.\n  - Update the `\"output_path\"` property to be `./v\u003cver\u003e`. For example `\"./v0.3\"`.\n  - Append to the `\"title\"` property the version ` - Version \u003cver\u003e`, For example ` - Version 0.3`.\n- Add a link to the versioned specification in the `Previous Drafts` bullet list, in the `header.md` file in the main spec, so that readers can click on it from the main specification.\n- Update the `header.md` file of the new version spec folder (e.g in `spec-v0.3`) to:\n  - Change the status to `HISTORICAL -- **THIS IS NOT THE CURRENT VERSION OF THE SPECIFICATION**`\n  - As appropriate, add guidance for readers **WITHOUT** altering the version of the specification itself.\n  - Remove the `Past Drafts` section and put a relative link back to the current spec -- such as:\n\n```text\n**Latest Version:**\n\n- Specification: [https://identity.foundation/didwebvh/](../)\n- Repository: [https://github.com/decentralized-identity/didwebvh](https://github.com/decentralized-identity/didwebvh)\n\n```\n\n## Setting the Default Landing Page Version\n\nIn the lifecycle of the specification, there will be times when the latest\nversion is stable, with clarifications being added, and other times when new\nversions are being defined with breaking changes. At all times we want to\ncontrol which version is the default spec. that comes up when a user goes to the\nbase spec URL\n[https://identity.foundation/didwebvh/](:https://identity.foundation/didwebvh/).\nWe control that via the `index.html` file in the root folder. That is just a\nredirect to one of the versions of the spec.\n\nTo change the default landing page spec. version, change the root folder\n`index.html` line:\n\n```html\nwindow.location.replace(\"v1.0\");\n```\n\nNotably -- set the `v1.0` to the appropriate version, which might be `next`, if\nthe we want the landing page to be the `Editor's Draft` for a period of time.\n\nHere's how we manage things in different situations:\n\n- The specification website landing page is always the current stable version of\n  the specification, and past versions plus the next version (\"Editor's Draft\")\n  are linked in that folder's `header.md` file.\n- The `spec` folder is the `./next` folder and is called the `Editor's Draft`.\n  Immediately after a stable version is announced, it is a copy of the newly\n  stable version, but will evolve from there. Clarifications may be applied to the latest\n  `spec-vx.x` folder, and if so, those changes **MUST** also be applied to the Editor's\n  Draft.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdecentralized-identity%2Fdidwebvh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdecentralized-identity%2Fdidwebvh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdecentralized-identity%2Fdidwebvh/lists"}