diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..1132bb2a --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +node_modules +coverage +vocabs/shape_test.ttl +vocabs/v1/test.ttl + +.vscode +.DS_Store +.idea +unresolveable-test-dids.json diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/.pr-preview.json b/.pr-preview.json new file mode 100644 index 00000000..a239968f --- /dev/null +++ b/.pr-preview.json @@ -0,0 +1,4 @@ +{ + "src_file": "index.html", + "type": "respec" +} diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 00000000..c30924d4 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,8 @@ + +# These owners will be the default owners for everything in +# the repo. Unless a later match takes precedence, +# they will be requested for review when someone opens a +# pull request. +* @msporny @apuchitnis @stenreijers @gatemezing @adam-burns @Steffytan @MizukiSonoko @rajivrajani @genaris @ajile-in @KDean-Dolphin + +# See CODEOWNERS syntax here: https://help.github.com/articles/about-codeowners/#codeowners-syntax diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..affeb6c7 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,5 @@ +# Code of Conduct + +Contributing to all documentation, code, and communication under this +repository is covered by the +[W3C Code of Ethics and Professional Conduct](https://www.w3.org/Consortium/cepc/). diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..525730d3 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,24 @@ +# Decentralized Identifier Working Group + +Contributions to this repository are intended to become part of Recommendation-track documents governed by the +[W3C Patent Policy](https://www.w3.org/Consortium/Patent-Policy-20040205/) and +[Document License](https://www.w3.org/Consortium/Legal/copyright-documents). To make substantive contributions to specifications, you must either participate +in the relevant W3C Working Group or make a non-member patent licensing commitment. + +If you are not the sole contributor to a contribution (pull request), please identify all +contributors in the pull request comment. + +To add a contributor (other than yourself, that's automatic), mark them one per line as follows: + +``` ++@github_username +``` + +If you added a contributor by mistake, you can remove them in a comment with: + +``` +-@github_username +``` + +If you are making a pull request on behalf of someone else but you had no part in designing the +feature, you can remove yourself with the above syntax. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..495d78c4 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,4 @@ +All documents in this Repository are licensed by contributors +under the +[W3C Document License](https://www.w3.org/Consortium/Legal/copyright-documents). + diff --git a/README.md b/README.md new file mode 100644 index 00000000..30af476b --- /dev/null +++ b/README.md @@ -0,0 +1,76 @@ +![W3C Logo](https://www.w3.org/Icons/w3c_home) + +[![Echidna Auto-publish](https://github.com/w3c/did-extensions/actions/workflows/auto-publish.yml/badge.svg)](https://github.com/w3c/did-extensions/actions/workflows/auto-publish.yml) + +# Decentralized Identifier Extensions + +This repository contains a list of known DID Extensions that are tracked +by the +[W3C Decentralized Identifier Working Group](https://www.w3.org/2019/did-wg/) +(DID WG) for the purpose of enhancing DID ecosystem interoperability. There +might be extensions to DIDs other than the ones listed here; this is not +meant to be an exhaustive or centralized list of extensions. + +An Editor's Draft of this repository is available at +https://w3c.github.io/did-extensions/. + +## Adding a DID Method + +In order to register a new DID method, you must add a JSON file +to the [./methods](./methods) directory and +[open a pull request](https://github.com/w3c/did-extensions/pulls) +to add the file to this repository. + +Here is an [example registration entry](https://w3c.github.io/did-extensions/methods/example.json): + +```jsonc +{ + // These fields are required + "name": "example", + "status": "registered", + "specification": "https://w3c-ccg.github.io/did-spec/", + // These fields are optional + "contactName": "W3C Credentials Community Group", + "contactEmail": "", + "contactWebsite": "", + "verifiableDataRegistry": "DID Specification" +} +``` + +Your Pull Request will be automatically validated, please ensure +that all of the automated tests pass (no errors reported) or +your submission will not be reviewed. Common reasons for failed +validation includes invalidly formatted JSON files and missing +mandatory fields. There will be a checklist that you are expected +to complete and attest to its accuracy. Once you submit your request, +your pull request will be reviewed by the registry editors. Changes +regarding the required criteria may be requested. If there are at +least two reviews by registry maintainers listed in the CODEOWNERS file, and no objections or +changes requested, your DID method will be registered after a +minimum of 7 days and a maximum of 30 days. + +## Adding Anything Else + +Use the standard fork, branch, and pull request workflow to propose changes to +the registry. Please make branch names informative—by including the issue or +bug number for example. + +Editorial changes that improve the readability of the registry or correct +spelling or grammatical mistakes are welcome. + +Non-editorial changes MUST go through a review and approval process that is +[detailed in the registry](https://w3c.github.io/did-extensions/#the-registration-process). + +Please read [CONTRIBUTING.md](CONTRIBUTING.md), about licensing contributions. + +## Code of Conduct + +W3C functions under a [code of conduct](https://www.w3.org/Consortium/cepc/). + +## DID Working Group Repositories + +- [W3C DID Core Specification v1.0](https://github.com/w3c/did-core) +- [W3C DID Working Group](https://github.com/w3c/did-wg) +- [W3C DID Rubric v1.0](https://github.com/w3c/did-rubric) +- [W3C DID Use Cases v1.0](https://github.com/w3c/did-use-cases) +- [W3C DID Test Suite and Implementation Report](https://github.com/w3c/did-test-suite) diff --git a/index.html b/index.html new file mode 100644 index 00000000..5603ddcc --- /dev/null +++ b/index.html @@ -0,0 +1,370 @@ + + + + +Decentralized Identifier Extensions + + + + + + + + +
+

+This document serves as a repository for all known global parameters, +properties, and values used by the Decentralized Identifier ecosystem. +

+
+ +
+ +

+This repository is under active development and implementers are advised +against using the repository unless they are directly involved with the +W3C DID Working Group. +

+ +

+Comments regarding this document are welcome. Please file issues +directly on +GitHub, +or send them +to public-did-wg@w3.org ( +subscribe, +archives). +

+ +

+Portions of the work on this specification have been funded by the +United States Department of Homeland Security's Science and Technology +Directorate under contracts HSHQDC-16-R00012-H-SB2016-1-002, 70RSAT20T00000010, +and HSHQDC-17-C-00019. The content of this specification does not +necessarily reflect the position or the policy of the U.S. Government +and no official endorsement should be inferred. +

+ +

+Work on this repository has also been supported by the Rebooting the +Web of Trust community facilitated by Christopher Allen, Shannon +Appelcline, Kiara Robles, Brian Weller, Betty Dhamers, Kaliya Young, +Kim Hamilton Duffy, Manu Sporny, Drummond Reed, Joe Andrieu, and +Heather Vescent, Dmitri Zagidulin, and Dan Burnett. +

+
+ +
+

Introduction

+ +

+This document serves as an official repository for all known global parameters, +properties, and values used by the Decentralized Identifier ecosystem. +

+ +
+ +
+ +
+

The Registration Process

+

+Software implementers might find that the existing Decentralized Identifier Core +specification [[DID-CORE]] is not entirely capable of addressing their use case +and might need to add a new parameters, properties, or values to this repository +in order to achieve their use case in a globally interoperable fashion. In order +to add a new parameter, property, or value to this repository, an implementer MUST +submit a modification request for this repository, as a pull request on the +repository where this repository is hosted, where the modification request adheres +to the following policies: +

+ +
    +
  1. +Any addition to the DID Extensions MUST specify a human readable +description of the addition. +
  2. +
  3. +Any name or value of a property or parameter MUST be indicative of +its function. Avoid generic terms such as "myProperty" or "foo". +
  4. +
  5. +Any method name SHOULD avoid generic terms such as "mymethod" or "registry". +
  6. +
  7. +If there are copyright, trademark, or any intellectual property rights +concerns, the addition and use MUST be authorized in writing by the intellectual +property rights holder under a +F/RAND +license. Examples include DID Methods that use trademarked brand names, +property names that utilize the titles of copyrighted works, and patented +technology that would cause the use of the extension to require licensing a +patent. +
  8. +
  9. +Any addition MUST NOT create unreasonable legal, security, moral, or privacy +issues that will result in direct harm to others. Examples of unacceptable +additions include any containing racist language, technologies used to +persecute minority populations, and unconsented pervasive tracking. +
  10. +
  11. +Any addition to the DID Extensions MUST link, via at least a URL, +preferably a content-integrity protected one, to the defining specification so +that implementers can implement the property. +
  12. +
  13. +Any addition to the DID Extensions that is a property or value, MUST +specify a machine readable JSON-LD Context for the addition. +
      +
    • +The JSON-LD Context MUST be included in full as part of the submission. +
    • +
    • +A namespace URI MUST be provided for the JSON-LD Context so that consumer +implementations can consistently map a URI to the full context. +
    • +
    • +The URI provided MUST be persistent, and link all terms to their associated +human readable descriptions. +
    • +
    • +The URI provided SHOULD resolve or link to the full context contents. +
    • +
    • +JSON-LD Contexts MUST be versioned and MUST NOT be date stamped. +
    • +
    • +JSON-LD Contexts SHOULD use scoped terms and MUST use the @protected +feature to eliminate the possibility of term conflicts. +
    • +
    +
  14. +
  15. +Properties in the DID Extensions MUST NOT be removed, only deprecated. +
  16. +
+ +

+The Editors of the DID Specification Registries MUST consider all of the +policies above when reviewing additions to the repository and MUST reject repository +entries if they violate any of the policies in this section. Entities +registering additions can challenge rejections first with the W3C DID Working +Group and then, if they are not satisfied with the outcome, with the W3C Staff. +W3C Staff need not be consulted on changes to the DID Specification Registries, +but do have the final authority on repository contents. This is to ensure that W3C +can adequately respond to time sensitive legal, privacy, security, moral, or +other pressing concerns without putting an undue operational burden on W3C +Staff. +

+ +

+Entries that are identified to cause interoperability problems MAY be marked as +such at the discretion of the maintainers of this repository, and if possible, +after consultation with the entry maintainer. +

+ +

+Any submission to the registries that meet all the criteria listed above will be +accepted for inclusion. These registries enumerate all known mechanisms that +meet a minimum bar, without choosing between them. +

+
+ +
+

Extensions

+ +

+The following documents list known extensions to the DID Ecosystem: +

+ + + + + + + + + + + + + + + + + + + + +
DocumentDescription
+Property and Value Extensions + Extensions to DID Document properties and values.
+Resolution Extensions + Extensions to DID Resolution parameters and results.
+DID Methods + +Ephemeral, distributed, and fully decentralized mechanisms for supporting +Decentralized Identifiers across a variety of technology platforms. +
+ +
+ + + diff --git a/json_schemas/core.schema.json b/json_schemas/core.schema.json new file mode 100644 index 00000000..40ce78ec --- /dev/null +++ b/json_schemas/core.schema.json @@ -0,0 +1,201 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://w3c.github.io/did-spec-registries/schemas/core.schema.json", + "title": "DID Core Vocabulary schema", + "$comment": "The JWK.schema part is a copy of the JWK schema (https://preview.npmjs.com/package/jwk-schema), published by Jonathan Wilbur (https://github.com/JonathanWilbur)", + "definitions": { + "did.schema" : { + "type" : "string", + "pattern" : "^did:[a-z0-9]+:[a-zA-Z0-9.-_:]+" + }, + + "type.schema" : { + "type" : [ + "string", + "array" + ], + "uniqueItems": true, + "items" : { + "type" : "string" + } + }, + + "JWK.schema" : { + "type" : "object", + "properties": { + "kty": { + "type": "string" + }, + "use": { + "type": "string" + }, + "key_ops": { + "type": "array", + "items": { + "type": "string" + } + }, + "alg": { + "type": "string" + }, + "kid": { + "type": "string" + }, + "x5u": { + "type": "string" + }, + "x5c": { + "type": "array", + "items": { + "type": "string" + } + }, + "x5t": { + "type": "string" + }, + "x5t#S256": { + "type": "string" + } + }, + "required": ["kty"], + "additionalProperties": true + }, + + "one_verification_method.schema" : { + "type" : "object", + "properties": { + "publicKeyJwk" : { + "$ref" : "#/definitions/JWK.schema" + }, + "publicKeyMultibase" : { + "type" : "string" + }, + "controller" : { + "$ref" : "#/definitions/did.schema" + }, + "id" : { + "type": "string", + "format" : "uri-reference" + }, + "type" : { + "$ref" : "#/definitions/type.schema" + } + }, + "required" : ["id", "type", "controller"], + "not": { + "required" : ["publicKeyJwk","publicKeyMultibase"] + }, + "additionalProperties" : true + }, + + "verification_method_strict.schema" : { + "type" : "array", + "uniqueItems": true, + "items" : { + "$ref" : "#/definitions/one_verification_method.schema" + } + }, + + "verification_method_with_urls.schema" : { + "type" : "array", + "uniqueItems": true, + "items" : { + "oneOf" : [ + { + "type": "string", + "format" : "uri-reference" + }, + { + "$ref" : "#/definitions/one_verification_method.schema" + } + ] + } + }, + + "service.schema" : { + "type" : "array", + "uniqueItems": true, + "items" : { + "type" : "object", + "properties" : { + "id" : { + "type" : "string", + "format" : "uri-reference" + }, + "type" : { + "$ref" : "#/definitions/type.schema" + }, + "serviceEndpoint" : { + "oneOf" : [ + { + "type": "string", + "format" : "uri-reference" + }, + { + "type" : "object" + }, + { + "type" : "array", + "uniqueItems": true, + "items": { + "oneOf" : [ + { + "type": "string", + "format" : "uri-reference" + }, + { + "type" : "object" + } + ] + } + } + ] + } + }, + "required": ["id", "type", "serviceEndpoint"], + "additionalProperties" : true + } + } + }, + + "type": "object", + "properties": { + "id" : { + "$ref" : "#/definitions/did.schema" + }, + "alsoKnownAs" : { + "type" : "array", + "uniqueItems": true, + "items": { + "type" : "string", + "format" : "uri-reference" + } + }, + "controller" : { + "$ref" : "#/definitions/did.schema" + }, + "verificationMethod" : { + "$ref" : "#/definitions/verification_method_strict.schema" + }, + "authentication" : { + "$ref" : "#/definitions/verification_method_with_urls.schema" + }, + "assertionMethod" : { + "$ref" : "#/definitions/verification_method_with_urls.schema" + }, + "keyAgreement" : { + "$ref" : "#/definitions/verification_method_with_urls.schema" + }, + "capabilityDelegation" : { + "$ref" : "#/definitions/verification_method_with_urls.schema" + }, + "capabilityInvocation" : { + "$ref" : "#/definitions/verification_method_with_urls.schema" + }, + "service" : { + "$ref" : "#/definitions/service.schema" + } + }, + "required" : ["id"], + "additionalProperties" : true +} diff --git a/methods/3.json b/methods/3.json new file mode 100644 index 00000000..c3cfff38 --- /dev/null +++ b/methods/3.json @@ -0,0 +1,9 @@ +{ + "name": "3", + "status": "registered", + "verifiableDataRegistry": "Ceramic Network", + "contactName": "3Box Labs", + "contactEmail": "devs@3box.io", + "contactWebsite": "https://3boxlabs.com/", + "specification": "https://cips.ceramic.network/CIPs/cip-79" +} diff --git a/methods/abt.json b/methods/abt.json new file mode 100644 index 00000000..6894188a --- /dev/null +++ b/methods/abt.json @@ -0,0 +1,9 @@ +{ + "name": "abt", + "status": "registered", + "verifiableDataRegistry": "ABT Network", + "contactName": "ArcBlock", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://arcblock.github.io/abt-did-spec/" +} \ No newline at end of file diff --git a/methods/aergo.json b/methods/aergo.json new file mode 100644 index 00000000..2ef8fbc1 --- /dev/null +++ b/methods/aergo.json @@ -0,0 +1,9 @@ +{ + "name": "aergo", + "status": "registered", + "verifiableDataRegistry": "Aergo", + "contactName": "Blocko", + "contactEmail": "", + "contactWebsite": "https://www.blocko.io/", + "specification": "https://github.com/aergoio/aergo-identity/blob/master/doc/did-method-spec.md" +} \ No newline at end of file diff --git a/methods/ala.json b/methods/ala.json new file mode 100644 index 00000000..7d6cd3e1 --- /dev/null +++ b/methods/ala.json @@ -0,0 +1,9 @@ +{ + "name": "ala", + "status": "registered", + "verifiableDataRegistry": "Alastria", + "contactName": "Alastria National Blockchain Ecosystem", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/alastria/alastria-identity/wiki/Alastria-DID-Method-Specification-(Quorum-version)" +} \ No newline at end of file diff --git a/methods/amo.json b/methods/amo.json new file mode 100644 index 00000000..9629d17d --- /dev/null +++ b/methods/amo.json @@ -0,0 +1,9 @@ +{ + "name": "amo", + "status": "registered", + "verifiableDataRegistry": "AMO blockchain mainnet", + "contactName": "AMO Labs", + "contactEmail": "", + "contactWebsite": "https://amo.foundation", + "specification": "https://github.com/amolabs/docs/blob/master/amo-did.md" +} \ No newline at end of file diff --git a/methods/antelope.json b/methods/antelope.json new file mode 100644 index 00000000..6f2ff288 --- /dev/null +++ b/methods/antelope.json @@ -0,0 +1,9 @@ +{ + "name": "antelope", + "status": "registered", + "verifiableDataRegistry": "Antelope", + "contactName": "Tonomy Foundation", + "contactEmail": "", + "contactWebsite": "https://tonomy.foundation", + "specification": "https://github.com/Tonomy-Foundation/antelope-did-spec" +} \ No newline at end of file diff --git a/methods/art.json b/methods/art.json new file mode 100644 index 00000000..b19e5cda --- /dev/null +++ b/methods/art.json @@ -0,0 +1,9 @@ +{ + "name": "art", + "status": "registered", + "specification": "https://github.com/ArtracID/ArtracID-DID-ART-Method", + "contactName": "Daniel Chun", + "contactEmail": "did_inquiry@artgrouplimited.com", + "contactWebsite": "www.artracx.com", + "verifiableDataRegistry": "Artwork ID Method" +} diff --git a/methods/asset.json b/methods/asset.json new file mode 100644 index 00000000..d69f4139 --- /dev/null +++ b/methods/asset.json @@ -0,0 +1,9 @@ +{ + "name": "asset", + "status": "registered", + "specification": "https://github.com/KILTprotocol/specifications/blob/main/docs/did/asset-did-spec.md", + "contactEmail": "devs@kilt.io", + "contactName": "BOTLabs GmbH", + "contactWebsite": "https://www.kilt.io/", + "verifiableDataRegistry": "Ledger-independent generative DID method based on CAIP-19 identifiers" +} \ No newline at end of file diff --git a/methods/bba.json b/methods/bba.json new file mode 100644 index 00000000..d0f0f4f3 --- /dev/null +++ b/methods/bba.json @@ -0,0 +1,9 @@ +{ + "name": "bba", + "status": "registered", + "verifiableDataRegistry": "Ardor", + "contactName": "Attila Aldemir", + "contactEmail": "attila.aldemir@atz3n.dev", + "contactWebsite": "", + "specification": "https://github.com/blobaa/bba-did-method-specification/blob/master/docs/markdown/spec.md" +} \ No newline at end of file diff --git a/methods/bee.json b/methods/bee.json new file mode 100644 index 00000000..af9b0fb7 --- /dev/null +++ b/methods/bee.json @@ -0,0 +1,9 @@ +{ + "name": "bee", + "status": "registered", + "verifiableDataRegistry": "Ledger agnostic", + "contactName": "mesur.io", + "contactEmail": "mprorock@mesur.io", + "contactWebsite": "https://mesur.io.io/", + "specification": "https://github.com/mesur-io/did-method-bee" +} diff --git a/methods/bid.json b/methods/bid.json new file mode 100644 index 00000000..7de05cd1 --- /dev/null +++ b/methods/bid.json @@ -0,0 +1,9 @@ +{ + "name": "bid", + "status": "registered", + "verifiableDataRegistry": "bif", + "contactName": "teleinfo caict", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/teleinfo-bif/bid/tree/master/doc/en" +} \ No newline at end of file diff --git a/methods/bit.json b/methods/bit.json new file mode 100644 index 00000000..50f89dcf --- /dev/null +++ b/methods/bit.json @@ -0,0 +1,9 @@ +{ + "name": "bit", + "status": "registered", + "verifiableDataRegistry": "d.id", + "contactName": "d.id", + "contactEmail": "support@d.id", + "contactWebsite": "https://d.id", + "specification": "https://github.com/dotbitHQ/did-bit-spec" +} diff --git a/methods/bluetoqueagent.json b/methods/bluetoqueagent.json new file mode 100644 index 00000000..7ccc5c9d --- /dev/null +++ b/methods/bluetoqueagent.json @@ -0,0 +1,9 @@ +{ + "name": "bluetoqueagent", + "status": "registered", + "verifiableDataRegistry": "Trusted Digital Web", + "contactName": "Hyperonomy Digital Identity Lab, Parallelspace Corporation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-bluetoqueagent-1-0-0.md" +} diff --git a/methods/bluetoquedeed.json b/methods/bluetoquedeed.json new file mode 100644 index 00000000..25c54d1c --- /dev/null +++ b/methods/bluetoquedeed.json @@ -0,0 +1,9 @@ +{ + "name": "bluetoquedeed", + "status": "registered", + "verifiableDataRegistry": "Trusted Digital Web", + "contactName": "Hyperonomy Digital Identity Lab, Parallelspace Corporation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-bluetoquedeed-1-0-0.md" +} diff --git a/methods/bluetoquenfe.json b/methods/bluetoquenfe.json new file mode 100644 index 00000000..5eefa7ff --- /dev/null +++ b/methods/bluetoquenfe.json @@ -0,0 +1,9 @@ +{ + "name": "bluetoquenfe", + "status": "registered", + "verifiableDataRegistry": "Trusted Digital Web", + "contactName": "Hyperonomy Digital Identity Lab, Parallelspace Corporation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-bluetoquenfe-1-0-0.md" +} diff --git a/methods/bluetoqueprocess.json b/methods/bluetoqueprocess.json new file mode 100644 index 00000000..3cbbdb5d --- /dev/null +++ b/methods/bluetoqueprocess.json @@ -0,0 +1,9 @@ +{ + "name": "bluetoqueproc", + "status": "registered", + "verifiableDataRegistry": "Trusted Digital Web", + "contactName": "Hyperonomy Digital Identity Lab, Parallelspace Corporation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-bluetoqueprocess-1-0-0.md" +} diff --git a/methods/bnb.json b/methods/bnb.json new file mode 100644 index 00000000..93449283 --- /dev/null +++ b/methods/bnb.json @@ -0,0 +1,9 @@ +{ + "name": "bnb", + "status": "registered", + "verifiableDataRegistry": "Binance Smart Chain", + "contactName": "Ontology Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ontology-tech/DID-method-specs/blob/master/did-bnb/DID-Method-bnb.md" +} \ No newline at end of file diff --git a/methods/bryk.json b/methods/bryk.json new file mode 100644 index 00000000..f692f5d5 --- /dev/null +++ b/methods/bryk.json @@ -0,0 +1,9 @@ +{ + "name": "bryk", + "status": "registered", + "verifiableDataRegistry": "bryk", + "contactName": "Marcos Allende, Sandra Murcia, Flavia Munhoso, Ruben Cessa", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/bryk-io/did-method/blob/master/README.md" +} \ No newline at end of file diff --git a/methods/bsv.json b/methods/bsv.json new file mode 100644 index 00000000..ad82528b --- /dev/null +++ b/methods/bsv.json @@ -0,0 +1,9 @@ +{ + "name": "bsv", + "status": "registered", + "verifiableDataRegistry": "BSV", + "contactName": "Thomas Moretti", + "contactEmail": "t.moretti@nchain.com", + "contactWebsite": "https://www.nchain.com/", + "specification": "https://github.com/nchain-research/nChain-Identity-bsvdid-method" +} diff --git a/methods/btco.json b/methods/btco.json new file mode 100644 index 00000000..f42a7cc8 --- /dev/null +++ b/methods/btco.json @@ -0,0 +1,9 @@ +{ + "name": "btco", + "status": "registered", + "specification": "https://github.com/ordinalsreserve/did-btco/blob/main/spec.md", + "contactName": "Aviary Tech", + "contactEmail": "contact@aviary.tech", + "contactWebsite": "https://aviary.tech", + "verifiableDataRegistry": "BTC" +} diff --git a/methods/btcr.json b/methods/btcr.json new file mode 100644 index 00000000..4282cdac --- /dev/null +++ b/methods/btcr.json @@ -0,0 +1,9 @@ +{ + "name": "btcr", + "status": "registered", + "verifiableDataRegistry": "Bitcoin", + "contactName": "Christopher Allen, Ryan Grant, Kim Hamilton Duffy", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://w3c-ccg.github.io/didm-btcr" +} \ No newline at end of file diff --git a/methods/candid.json b/methods/candid.json new file mode 100644 index 00000000..e4a06acb --- /dev/null +++ b/methods/candid.json @@ -0,0 +1,9 @@ +{ + "name": "candid", + "status": "registered", + "verifiableDataRegistry": "Quorum", + "contactName": "Eric Lin", + "contactEmail": "ericlin@cathayholdings.com.tw", + "contactWebsite": "https://www.linkedin.com/in/eric-lin-875b42b0/", + "specification": "https://github.com/ericlin716/did-spec/blob/main/candid-did-method-spec.md" +} diff --git a/methods/ccd.json b/methods/ccd.json new file mode 100644 index 00000000..3e56b684 --- /dev/null +++ b/methods/ccd.json @@ -0,0 +1,9 @@ +{ + "name": "ccd", + "status": "registered", + "specification": "https://proposals.concordium.software/ID/concordium-did.html", + "contactName": "Concordium development team", + "contactEmail": "developers@concordium.com", + "contactWebsite": "https://concordium.com", + "verifiableDataRegistry": "Concordium" +} diff --git a/methods/ccf.json b/methods/ccf.json new file mode 100644 index 00000000..d6fca32d --- /dev/null +++ b/methods/ccf.json @@ -0,0 +1,10 @@ +{ + "name": "ccf", + "status": "registered", + "verifiableDataRegistry": "Confidential Consortium Framework (CCF)", + "contactName": "Microsoft", + "contactEmail": "ccf-did@microsoft.com", + "contactWebsite": "https://ccf.dev", + "specification": "https://github.com/microsoft/did-ccf/blob/main/DID_CCF.md" + } + \ No newline at end of file diff --git a/methods/ccp.json b/methods/ccp.json new file mode 100644 index 00000000..bb20b513 --- /dev/null +++ b/methods/ccp.json @@ -0,0 +1,9 @@ +{ + "name": "ccp", + "status": "registered", + "verifiableDataRegistry": "Quorum", + "contactName": "Baidu, Inc.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://did.baidu.com/did-spec/" +} \ No newline at end of file diff --git a/methods/celo.json b/methods/celo.json new file mode 100644 index 00000000..4e7038c6 --- /dev/null +++ b/methods/celo.json @@ -0,0 +1,9 @@ +{ + "name": "celo", + "status": "registered", + "verifiableDataRegistry": "Celo", + "contactName": "Ontology Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ontology-tech/DID-method-specs/blob/master/did-celo/DID-Method-celo.md" +} \ No newline at end of file diff --git a/methods/cheqd.json b/methods/cheqd.json new file mode 100644 index 00000000..c6e87554 --- /dev/null +++ b/methods/cheqd.json @@ -0,0 +1,9 @@ +{ + "name": "cheqd", + "status": "registered", + "verifiableDataRegistry": "cheqd", + "contactName": "CHEQD FOUNDATION LIMITED", + "contactEmail": "contact@cheqd.io", + "contactWebsite": "https://cheqd.io", + "specification": "https://docs.cheqd.io/identity/architecture/adr-list/adr-001-cheqd-did-method" +} \ No newline at end of file diff --git a/methods/com.json b/methods/com.json new file mode 100644 index 00000000..71d35cf9 --- /dev/null +++ b/methods/com.json @@ -0,0 +1,9 @@ +{ + "name": "com", + "status": "registered", + "verifiableDataRegistry": "commercio.network", + "contactName": "Commercio Consortium", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/commercionetwork/Commercio.network-DID-Method-Specification/" +} \ No newline at end of file diff --git a/methods/content.json b/methods/content.json new file mode 100644 index 00000000..5b9d2cd5 --- /dev/null +++ b/methods/content.json @@ -0,0 +1,9 @@ +{ + "name": "content", + "status": "registered", + "specification": "https://github.com/KataruInc/did-content-spec", + "contactName": "Mizuki Sonoko", + "contactEmail": "sonoko@mizuki.io", + "contactWebsite": "https://mizuki.io", + "verifiableDataRegistry": "" +} diff --git a/methods/corda.json b/methods/corda.json new file mode 100644 index 00000000..64c34abf --- /dev/null +++ b/methods/corda.json @@ -0,0 +1,9 @@ +{ + "name": "corda", + "status": "registered", + "verifiableDataRegistry": "Corda", + "contactName": "Nitesh Solanki,Moritz Platt,Pranav Kirtani", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://htmlpreview.github.io/?https://github.com/persistentsystems/corda-did-method/blob/master/corda_did_method.html" +} \ No newline at end of file diff --git a/methods/cosmos.json b/methods/cosmos.json new file mode 100644 index 00000000..c281eb7e --- /dev/null +++ b/methods/cosmos.json @@ -0,0 +1,9 @@ +{ + "name": "cosmos", + "status": "registered", + "verifiableDataRegistry": "Cosmos application chains", + "contactName": "Shaun Conway", + "contactEmail": "earthprogram@ixo.world", + "contactWebsite": "https://www.ixo.world/", + "specification": "https://github.com/EarthProgram/did-cosmos" +} \ No newline at end of file diff --git a/methods/cot.json b/methods/cot.json new file mode 100644 index 00000000..c32d6a55 --- /dev/null +++ b/methods/cot.json @@ -0,0 +1,9 @@ +{ + "name": "cot", + "status": "registered", + "verifiableDataRegistry": "CoTChain", + "contactName": "CoTNetwork, Inc.", + "contactEmail": "", + "contactWebsite": "https://www.cotnetwork.com", + "specification": "https://github.com/ComputingOfThings/dids#readme" +} \ No newline at end of file diff --git a/methods/cr.json b/methods/cr.json new file mode 100644 index 00000000..f7fed514 --- /dev/null +++ b/methods/cr.json @@ -0,0 +1,9 @@ +{ + "name": "cr", + "status": "registered", + "specification": "https://github.com/SelfSovereignDrm/core/blob/main/README.md", + "contactName": "", + "contactEmail": "ssdrm@digicaps.com", + "contactWebsite": "", + "verifiableDataRegistry": "Hyperledger Fabric" +} diff --git a/methods/ct.json b/methods/ct.json new file mode 100644 index 00000000..ea621cce --- /dev/null +++ b/methods/ct.json @@ -0,0 +1,9 @@ +{ + "name": "ct", + "status": "registered", + "verifiableDataRegistry": "Circular Trust", + "contactName": "", + "contactEmail": "sysadmin@blueroominnovation.com", + "contactWebsite": "https://circulartrust.eu/", + "specification": "https://github.com/blueroominnovation/did-ct-spec" +} \ No newline at end of file diff --git a/methods/ctid.json b/methods/ctid.json new file mode 100644 index 00000000..315ee223 --- /dev/null +++ b/methods/ctid.json @@ -0,0 +1,9 @@ +{ + "name": "ctid", + "status": "registered", + "verifiableDataRegistry": "", + "contactName": "Beijing Zhongdun Anxin Science and Technology Development Co., Ltd", + "contactEmail": "liwending@anicert.cn", + "contactWebsite": "https://www.anicert.cn/", + "specification": "https://github.com/617640999/ctid-did-register/blob/main/anicert-ctid-did-en.md" +} diff --git a/methods/dht.json b/methods/dht.json new file mode 100644 index 00000000..37db97cf --- /dev/null +++ b/methods/dht.json @@ -0,0 +1,9 @@ +{ + "name": "dht", + "status": "registered", + "verifiableDataRegistry": "Mainline DHT", + "contactName": "TBD", + "contactEmail": "", + "contactWebsite": "https://www.tbd.website", + "specification": "https://did-dht.com/" +} diff --git a/methods/did.json b/methods/did.json new file mode 100644 index 00000000..57157094 --- /dev/null +++ b/methods/did.json @@ -0,0 +1,9 @@ +{ + "name": "did", + "status": "registered", + "verifiableDataRegistry": "Decentralized Identifiers", + "contactName": "Spruce Systems, Inc.", + "contactEmail": "", + "contactWebsite": "https://spruceid.com", + "specification": "https://did-did.spruceid.com" +} \ No newline at end of file diff --git a/methods/dns.json b/methods/dns.json new file mode 100644 index 00000000..871442e9 --- /dev/null +++ b/methods/dns.json @@ -0,0 +1,9 @@ +{ + "name": "dns", + "status": "registered", + "verifiableDataRegistry": "Domain Name System (DNS)", + "contactName": "Danube Tech", + "contactEmail": "markus@danubetech.com", + "contactWebsite": "https://danubetech.com", + "specification": "https://danubetech.github.io/did-method-dns/" +} \ No newline at end of file diff --git a/methods/dock.json b/methods/dock.json new file mode 100644 index 00000000..f1aed16a --- /dev/null +++ b/methods/dock.json @@ -0,0 +1,9 @@ +{ + "name": "dock", + "status": "registered", + "verifiableDataRegistry": "Dock", + "contactName": "Dock.io", + "contactEmail": "", + "contactWebsite": "https://www.dock.io", + "specification": "https://github.com/docknetwork/dock-did-driver/blob/master/Dock%20DID%20method%20specification.md" +} \ No newline at end of file diff --git a/methods/dom.json b/methods/dom.json new file mode 100644 index 00000000..4a6c39cb --- /dev/null +++ b/methods/dom.json @@ -0,0 +1,9 @@ +{ + "name": "dom", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Dominode", + "contactEmail": "", + "contactWebsite": "", + "specification": "" +} \ No newline at end of file diff --git a/methods/dotbit.json b/methods/dotbit.json new file mode 100644 index 00000000..f1e11fee --- /dev/null +++ b/methods/dotbit.json @@ -0,0 +1,9 @@ +{ + "name": "dotbit", + "status": "registered", + "verifiableDataRegistry": "d.id", + "contactName": "d.id", + "contactEmail": "support@did.id", + "contactWebsite": "https://d.id", + "specification": "https://github.com/dotbithq/dotbit-did-spec" +} diff --git a/methods/dsrv.json b/methods/dsrv.json new file mode 100644 index 00000000..82b60010 --- /dev/null +++ b/methods/dsrv.json @@ -0,0 +1,9 @@ +{ + "name": "dsrv", + "status": "registered", + "specification": "https://github.com/dsrvlabs/did_method/blob/main/DID-Method-DSRV.md", + "contactName": "dsrv", + "contactEmail": "did@dsrvlabs.com", + "contactWebsite": "https://welldonestake.io/", + "verifiableDataRegistry": "" +} diff --git a/methods/dual.json b/methods/dual.json new file mode 100644 index 00000000..d65c8251 --- /dev/null +++ b/methods/dual.json @@ -0,0 +1,9 @@ +{ + "name": "dual", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Smart ID Card Alliance", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/Smart-ID-Card/Dual-DID/blob/main/docs/dual-did-method.md" +} \ No newline at end of file diff --git a/methods/dxd.json b/methods/dxd.json new file mode 100644 index 00000000..a874336a --- /dev/null +++ b/methods/dxd.json @@ -0,0 +1,9 @@ +{ + "name": "dxd", + "status": "registered", + "verifiableDataRegistry": "fabric.data-alliace.com", + "contactName": "Data Alliance Co., Ltd.", + "contactEmail": "blockchain@data-alliance.com", + "contactWebsite": "https://www.data-alliance.com/", + "specification": "https://github.com/Data-Alliance/did-dxd/blob/master/README.md" +} diff --git a/methods/dyne.json b/methods/dyne.json new file mode 100755 index 00000000..2f740452 --- /dev/null +++ b/methods/dyne.json @@ -0,0 +1,9 @@ +{ + "name": "dyne", + "status": "registered", + "verifiableDataRegistry": "Dyne.org Foundation", + "contactName": "Andrea D'Intino", + "contactEmail": "info@dyne.org", + "contactWebsite": "https://dyne.org", + "specification": "https://dyne.github.io/W3C-DID" +} \ No newline at end of file diff --git a/methods/echo.json b/methods/echo.json new file mode 100644 index 00000000..d2f20a82 --- /dev/null +++ b/methods/echo.json @@ -0,0 +1,9 @@ +{ + "name": "echo", + "status": "registered", + "verifiableDataRegistry": "Echo", + "contactName": "Echo Technological Solutions LLC", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/echoprotocol/uni-resolver-driver-did-echo/blob/master/echo_did_specifications.md" +} \ No newline at end of file diff --git a/methods/elastos.json b/methods/elastos.json new file mode 100644 index 00000000..1a43a173 --- /dev/null +++ b/methods/elastos.json @@ -0,0 +1,9 @@ +{ + "name": "elastos", + "status": "registered", + "verifiableDataRegistry": "Elastos ID Sidechain", + "contactName": "Elastos Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/elastos/Elastos.DID.Method/blob/master/DID/Elastos-DID-Method-Specification_en.md" +} \ No newline at end of file diff --git a/methods/elem.json b/methods/elem.json new file mode 100644 index 00000000..ce19a918 --- /dev/null +++ b/methods/elem.json @@ -0,0 +1,9 @@ +{ + "name": "elem", + "status": "registered", + "verifiableDataRegistry": "Element DID", + "contactName": "Transmute", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/decentralized-identity/element/blob/master/docs/did-method-spec/spec.md" +} \ No newline at end of file diff --git a/methods/emtrust.json b/methods/emtrust.json new file mode 100644 index 00000000..2e217593 --- /dev/null +++ b/methods/emtrust.json @@ -0,0 +1,9 @@ +{ + "name": "emtrust", + "status": "registered", + "verifiableDataRegistry": "Hyperledger Fabric", + "contactName": "Halialabs Pte Ltd.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/Halialabs/did-spec/blob/gh-pages/readme.md" +} \ No newline at end of file diff --git a/methods/ens.json b/methods/ens.json new file mode 100644 index 00000000..e39f1b70 --- /dev/null +++ b/methods/ens.json @@ -0,0 +1,9 @@ +{ + "name": "ens", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "ConsenSys MESH", + "contactEmail": "oliver.terbu@mesh.xyz", + "contactWebsite": "https://mesh.xyz", + "specification": "https://github.com/veramolabs/did-ens-spec" +} \ No newline at end of file diff --git a/methods/eosio.json b/methods/eosio.json new file mode 100644 index 00000000..ccbd4327 --- /dev/null +++ b/methods/eosio.json @@ -0,0 +1,9 @@ +{ + "name": "eosio", + "status": "registered", + "verifiableDataRegistry": "EOSIO", + "contactName": "Gimly Blockchain", + "contactEmail": "", + "contactWebsite": "https://gimly.io", + "specification": "https://github.com/Gimly-Blockchain/eosio-did-spec" +} \ No newline at end of file diff --git a/methods/erat.json b/methods/erat.json new file mode 100644 index 00000000..6a9ebd6c --- /dev/null +++ b/methods/erat.json @@ -0,0 +1,9 @@ +{ + "name": "erat", + "status": "registered", + "verifiableDataRegistry": "DID Specification", + "contactName": "ERATOSTHENES project", + "contactEmail": "harris.niavis@inlecomsystems.com", + "contactWebsite": "https://eratosthenes-project.eu/", + "specification": "https://gitlab.com/eratosthenes-h2020/erat-did-spec" +} \ No newline at end of file diff --git a/methods/erc725.json b/methods/erc725.json new file mode 100644 index 00000000..17ae8f0f --- /dev/null +++ b/methods/erc725.json @@ -0,0 +1,9 @@ +{ + "name": "erc725", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Markus Sabadello, Fabian Vogelsteller, Peter Kolarov", + "contactEmail": "markus@danubetech.com", + "contactWebsite": "", + "specification": "https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust-spring2018/blob/master/topics-and-advance-readings/DID-Method-erc725.md" +} diff --git a/methods/etho.json b/methods/etho.json new file mode 100644 index 00000000..5119708b --- /dev/null +++ b/methods/etho.json @@ -0,0 +1,9 @@ +{ + "name": "etho", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Ontology Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ontology-tech/DID-method-specs/blob/master/did-etho/DID-Method-etho.md" +} \ No newline at end of file diff --git a/methods/ethr.json b/methods/ethr.json new file mode 100644 index 00000000..bf0a68c2 --- /dev/null +++ b/methods/ethr.json @@ -0,0 +1,9 @@ +{ + "name": "ethr", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "uPort", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/decentralized-identity/ethr-did-resolver/blob/master/doc/did-method-spec.md" +} \ No newline at end of file diff --git a/methods/ev.json b/methods/ev.json new file mode 100644 index 00000000..9b434f70 --- /dev/null +++ b/methods/ev.json @@ -0,0 +1,9 @@ +{ + "name": "ev", + "status": "registered", + "specification": "https://github.com/KayTrust/did-method-ev", + "contactName": "David Ammouial (NTT DATA)", + "contactEmail": "david.ammouial@nttdata.com", + "contactWebsite": "https://kaytrust.id/", + "verifiableDataRegistry": "Any Ethereum or EVM-compatible ledger" +} diff --git a/methods/evan.json b/methods/evan.json new file mode 100644 index 00000000..1fc4626b --- /dev/null +++ b/methods/evan.json @@ -0,0 +1,9 @@ +{ + "name": "evan", + "status": "registered", + "verifiableDataRegistry": "evan.network", + "contactName": "evan GmbH", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/evannetwork/evan.network-DID-method-specification/blob/master/evan_did_method_spec.md" +} \ No newline at end of file diff --git a/methods/everscale.json b/methods/everscale.json new file mode 100644 index 00000000..aeb3a130 --- /dev/null +++ b/methods/everscale.json @@ -0,0 +1,9 @@ +{ + "name": "everscale", + "status": "registered", + "specification": "https://git.defispace.com/ssi-4/everscale-did-registry/-/blob/master/docs/documentation.md", + "verifiableDataRegistry": "Everscale blockchain", + "contactName": "Dmitry V. Samorodkin", + "contactEmail": "ds@radianceteam.com", + "contactWebsite": "https://www.radianceteam.com/" +} diff --git a/methods/example.json b/methods/example.json new file mode 100644 index 00000000..90baf8c1 --- /dev/null +++ b/methods/example.json @@ -0,0 +1,9 @@ +{ + "name": "example", + "status": "registered", + "verifiableDataRegistry": "DID Specification", + "contactName": "W3C DID Working Group", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://www.w3.org/TR/did-core/" +} diff --git a/methods/factom.json b/methods/factom.json new file mode 100644 index 00000000..65c26e9b --- /dev/null +++ b/methods/factom.json @@ -0,0 +1,9 @@ +{ + "name": "factom", + "status": "registered", + "verifiableDataRegistry": "Factom", + "contactName": "Sphereon, Factomatic, Factom Inc", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/factom-protocol/FIS/blob/master/FIS/DID.md" +} \ No newline at end of file diff --git a/methods/fairx.json b/methods/fairx.json new file mode 100644 index 00000000..8791520f --- /dev/null +++ b/methods/fairx.json @@ -0,0 +1,9 @@ +{ + "name": "fairx", + "status": "deprecated", + "verifiableDataRegistry": "FairX Node", + "contactName": "Michael Dowling", + "contactEmail": "mdowling@gmail.com", + "contactWebsite": "https://github.com/fairxio/", + "specification": "https://github.com/fairxio/protocol/tree/main/did" + } diff --git a/methods/future.json b/methods/future.json new file mode 100644 index 00000000..0c0f93a9 --- /dev/null +++ b/methods/future.json @@ -0,0 +1,9 @@ +{ + "name": "future", + "status": "registered", + "verifiableDataRegistry": "Netease Chain", + "contactName": "Netease Blockchain Team", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/netease-chain/Future-DID-Method-Specification/blob/main/README.md" +} \ No newline at end of file diff --git a/methods/gatc.json b/methods/gatc.json new file mode 100644 index 00000000..b56bd380 --- /dev/null +++ b/methods/gatc.json @@ -0,0 +1,9 @@ +{ + "name": "gatc", + "status": "registered", + "verifiableDataRegistry": "Ethereum, Hyperledger Fabric, Hyperledger Besu, Alastria", + "contactName": "Gataca", + "contactEmail": "", + "contactWebsite": "https://gataca.io/", + "specification": "https://github.com/gatacaid/gataca-did-method" +} \ No newline at end of file diff --git a/methods/gns.json b/methods/gns.json new file mode 100644 index 00000000..7ae91349 --- /dev/null +++ b/methods/gns.json @@ -0,0 +1,9 @@ +{ + "name": "gns", + "status": "registered", + "verifiableDataRegistry": "GNU Name System", + "contactName": "GNUnet", + "contactEmail": "gnunet-developers@gnu.org", + "contactWebsite": "https://gnunet.org", + "specification": "https://lsd.gnunet.org/lsd0005/" +} diff --git a/methods/grg.json b/methods/grg.json new file mode 100644 index 00000000..046b518b --- /dev/null +++ b/methods/grg.json @@ -0,0 +1,9 @@ +{ + "name": "grg", + "status": "registered", + "verifiableDataRegistry": "GrgChain", + "contactName": "GRGBanking Blockchain Express Co. Ltd.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/GrgChain/DID-method-specs/blob/master/README.md" +} \ No newline at end of file diff --git a/methods/grn.json b/methods/grn.json new file mode 100644 index 00000000..3bd48d09 --- /dev/null +++ b/methods/grn.json @@ -0,0 +1,9 @@ +{ + "name": "grn", + "status": "registered", + "specification": "https://github.com/EG-easy/grano-did/blob/main/did-method-specification.md", + "contactName": "EG-easy", + "contactEmail": "", + "contactWebsite": "", + "verifiableDataRegistry": "Any CosmWasm-compatible ledger" +} diff --git a/methods/gwm.json b/methods/gwm.json new file mode 100644 index 00000000..68c4e741 --- /dev/null +++ b/methods/gwm.json @@ -0,0 +1,9 @@ +{ + "name": "gwm", + "status": "registered", + "verifiableDataRegistry": "Great Wall Chain", + "contactName": "Great Wall Motor Company Limited", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/GreatWall-Blockchain/GWDID-Method-Specification/blob/main/README.md" +} diff --git a/methods/health.json b/methods/health.json new file mode 100644 index 00000000..15ee5664 --- /dev/null +++ b/methods/health.json @@ -0,0 +1,9 @@ +{ + "name": "health", + "status": "registered", + "verifiableDataRegistry": "DID Health", + "contactName": "support", + "contactEmail": "support@did.healthcare", + "contactWebsite": "https://www.did.healthcare/", + "specification": "https://github.com/didhealth/health-did-resolver/blob/main/doc/did-method-spec.md" +} diff --git a/methods/hedera.json b/methods/hedera.json new file mode 100644 index 00000000..cca0f4b8 --- /dev/null +++ b/methods/hedera.json @@ -0,0 +1,9 @@ +{ + "name": "hedera", + "status": "registered", + "verifiableDataRegistry": "Hedera Hashgraph", + "contactName": "Hedera Hashgraph, Swisscom Blockchain AG", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/hashgraph/did-method/blob/master/did-method-specification.md" +} \ No newline at end of file diff --git a/methods/hid.json b/methods/hid.json new file mode 100644 index 00000000..8d07b10f --- /dev/null +++ b/methods/hid.json @@ -0,0 +1,9 @@ +{ + "name": "hid", + "status": "registered", + "specification": "https://github.com/hypersign-protocol/HIPs/blob/main/HIPs/hip-10.md", + "contactName": "Hypermine Limited", + "contactEmail": "connect@hypermine.in", + "contactWebsite": "https://hypersign.id/", + "verifiableDataRegistry": "Hypersign Blockchain Network" +} \ No newline at end of file diff --git a/methods/holo.json b/methods/holo.json new file mode 100644 index 00000000..f223d5aa --- /dev/null +++ b/methods/holo.json @@ -0,0 +1,9 @@ +{ + "name": "holo", + "status": "registered", + "verifiableDataRegistry": "Holochain", + "contactName": "Holo.Host", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/WebOfTrustInfo/rwot9-prague/blob/master/draft-documents/did:hc-method.md" +} \ No newline at end of file diff --git a/methods/hpass.json b/methods/hpass.json new file mode 100644 index 00000000..f02163b2 --- /dev/null +++ b/methods/hpass.json @@ -0,0 +1,9 @@ +{ + "name": "hpass", + "status": "registered", + "verifiableDataRegistry": "Hyperledger Fabric", + "contactName": "IBM", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/IBM/hpass/blob/main/doc/did-spec.md" +} \ No newline at end of file diff --git a/methods/hpo.json b/methods/hpo.json new file mode 100644 index 00000000..15fc1be8 --- /dev/null +++ b/methods/hpo.json @@ -0,0 +1,9 @@ +{ + "name": "hpo", + "status": "registered", + "verifiableDataRegistry": "", + "contactName": "Hippocrat DAO", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/hippocrat-protocol/hpo-did-method-spec/blob/main/HPO-DID-method-spec.md" +} diff --git a/methods/hsk.json b/methods/hsk.json new file mode 100644 index 00000000..dbcf2820 --- /dev/null +++ b/methods/hsk.json @@ -0,0 +1,8 @@ +{ + "name": "hsk", + "status": "registered", + "verifiableDataRegistry": "PlatON", + "contactName": "HashKey DID", + "contactEmail": "info@hashkey.id", + "specification": "https://github.com/hashkeydid/hashkeydid-w3c-specification/blob/master/did-specfication/hsk-method.md" +} diff --git a/methods/iamx.json b/methods/iamx.json new file mode 100644 index 00000000..070d4869 --- /dev/null +++ b/methods/iamx.json @@ -0,0 +1,8 @@ +{ + "name": "iamx", + "status": "registered", + "specification": "https://github.com/IAMXID/did-method-iamx/blob/main/IAMX_DID_method.md", + "contactName": "IAMX AG, 6300 Zug, Switzerland", + "contactEmail": "contact@iamx.id", + "contactWebsite": "https://iamx.id/" +} diff --git a/methods/ibmdc.json b/methods/ibmdc.json new file mode 100644 index 00000000..72cc66cf --- /dev/null +++ b/methods/ibmdc.json @@ -0,0 +1,9 @@ +{ + "name": "ibmdc", + "status": "registered", + "verifiableDataRegistry": "Hyperledger Fabric", + "contactName": "IBM Digital Credentials", + "contactEmail": "digitalcredentials@ibm.com", + "contactWebsite": "https://www.ibm.com/blockchain/identity", + "specification": "https://wiki.digitalcredentials.ibm.com/#/spec/v1/did-method" +} diff --git a/methods/icon.json b/methods/icon.json new file mode 100644 index 00000000..252ebdfd --- /dev/null +++ b/methods/icon.json @@ -0,0 +1,9 @@ +{ + "name": "icon", + "status": "registered", + "verifiableDataRegistry": "ICON", + "contactName": "ICONLOOP", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/icon-project/icon-DID/blob/master/docs/ICON-DID-method.md" +} \ No newline at end of file diff --git a/methods/id.json b/methods/id.json new file mode 100644 index 00000000..9ee0cec5 --- /dev/null +++ b/methods/id.json @@ -0,0 +1,9 @@ +{ + "name": "id", + "status": "registered", + "verifiableDataRegistry": "ID Service", + "contactName": "Mastercard", + "contactEmail": "", + "contactWebsite": "https://idservice.com/en/contactus.html", + "specification": "https://github.com/Mastercard/did-methods/blob/master/id.md" +} diff --git a/methods/iden3.json b/methods/iden3.json new file mode 100644 index 00000000..d8df06fd --- /dev/null +++ b/methods/iden3.json @@ -0,0 +1,9 @@ +{ + "name": "iden3", + "status": "registered", + "verifiableDataRegistry": "EVM compatible chains", + "contactName": "ZK ID Labs AG, Polygon ID", + "contactEmail": "", + "contactWebsite": "https://www.polygonid.com/", + "specification": "https://github.com/0xPolygonID/did-polygonid" +} diff --git a/methods/iid.json b/methods/iid.json new file mode 100644 index 00000000..7041b4a3 --- /dev/null +++ b/methods/iid.json @@ -0,0 +1,9 @@ +{ + "name": "iid", + "status": "registered", + "verifiableDataRegistry": "Inspur Chain", + "contactName": "zoe Yian", + "contactEmail": "ranyueranyue@outlook.com", + "contactWebsite": "", + "specification": "https://github.com/InspurIndustrialInternet/iid/blob/main/doc/en/InspurChain_DID_protocol_Specification.md" +} diff --git a/methods/index.html b/methods/index.html new file mode 100644 index 00000000..cbafcbc9 --- /dev/null +++ b/methods/index.html @@ -0,0 +1,302 @@ + + + + +DID Methods + + + + + + + + + +
+

+This document serves as a collection of known DID Methods. +

+
+ +
+ +

+Comments regarding this document are welcome. Please file issues +directly on +GitHub, +or send them +to public-did-wg@w3.org ( +subscribe, +archives). +

+ +

+Portions of the work on this specification have been funded by the +United States Department of Homeland Security's Science and Technology +Directorate under contracts HSHQDC-16-R00012-H-SB2016-1-002, 70RSAT20T00000010, +and HSHQDC-17-C-00019. The content of this specification does not +necessarily reflect the position or the policy of the U.S. Government +and no official endorsement should be inferred. +

+ +

+Work on this registry has also been supported by the Rebooting the +Web of Trust community facilitated by Christopher Allen, Shannon +Appelcline, Kiara Robles, Brian Weller, Betty Dhamers, Kaliya Young, +Kim Hamilton Duffy, Manu Sporny, Drummond Reed, Joe Andrieu, and +Heather Vescent, Dmitri Zagidulin, and Dan Burnett. +

+
+ +
+

Introduction

+ +

+This document serves as a collection of known DID Methods. +

+ +
+

The Registration Process

+

+The registration process is described in the [[[DID-EXTENSIONS]]]. +

+
+ +
+ +
+ +
+

DID Methods

+ +

+This table summarizes the DID method specifications currently in development. +The links will be updated as subsequent Implementer’s Drafts are produced. +This registry does not act as an endorsement of any particular DID method or its +underlying technologies by the W3C, the W3C Decentralized Identifier Working Group, +or any affiliated members of the W3C. It exists as a mechanism for developers to +discover various DID methods that they might wish to implement. +

+

+The normative requirements for DID method specifications can be found in +Decentralized Identifiers +v1.0: Methods [[DID-CORE]]. DID methods that do not meet these requirements +will not be accepted. We encourage DID method authors to provide an email +address in the Author Links column, as this helps with maintenance. +If an email address is omitted, a label noting that there is no +contact information for the author will be applied to the registry entry. +

+ +
+ +
+ + + diff --git a/methods/index.json b/methods/index.json new file mode 100644 index 00000000..04c9cad7 --- /dev/null +++ b/methods/index.json @@ -0,0 +1,1835 @@ +[ + { + "name": "3", + "status": "registered", + "verifiableDataRegistry": "Ceramic Network", + "contactName": "3Box Labs", + "contactEmail": "devs@3box.io", + "contactWebsite": "https://3boxlabs.com/", + "specification": "https://cips.ceramic.network/CIPs/cip-79" + }, + { + "name": "abt", + "status": "registered", + "verifiableDataRegistry": "ABT Network", + "contactName": "ArcBlock", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://arcblock.github.io/abt-did-spec/" + }, + { + "name": "aergo", + "status": "registered", + "verifiableDataRegistry": "Aergo", + "contactName": "Blocko", + "contactEmail": "", + "contactWebsite": "https://www.blocko.io/", + "specification": "https://github.com/aergoio/aergo-identity/blob/master/doc/did-method-spec.md" + }, + { + "name": "ala", + "status": "registered", + "verifiableDataRegistry": "Alastria", + "contactName": "Alastria National Blockchain Ecosystem", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/alastria/alastria-identity/wiki/Alastria-DID-Method-Specification-(Quorum-version)" + }, + { + "name": "amo", + "status": "registered", + "verifiableDataRegistry": "AMO blockchain mainnet", + "contactName": "AMO Labs", + "contactEmail": "", + "contactWebsite": "https://amo.foundation", + "specification": "https://github.com/amolabs/docs/blob/master/amo-did.md" + }, + { + "name": "antelope", + "status": "registered", + "verifiableDataRegistry": "Antelope", + "contactName": "Tonomy Foundation", + "contactEmail": "", + "contactWebsite": "https://tonomy.foundation", + "specification": "https://github.com/Tonomy-Foundation/antelope-did-spec" + }, + { + "name": "art", + "status": "registered", + "specification": "https://github.com/ArtracID/ArtracID-DID-ART-Method", + "contactName": "Daniel Chun", + "contactEmail": "did_inquiry@artgrouplimited.com", + "contactWebsite": "www.artracx.com", + "verifiableDataRegistry": "Artwork ID Method" + }, + { + "name": "asset", + "status": "registered", + "specification": "https://github.com/KILTprotocol/specifications/blob/main/docs/did/asset-did-spec.md", + "contactEmail": "devs@kilt.io", + "contactName": "BOTLabs GmbH", + "contactWebsite": "https://www.kilt.io/", + "verifiableDataRegistry": "Ledger-independent generative DID method based on CAIP-19 identifiers" + }, + { + "name": "bba", + "status": "registered", + "verifiableDataRegistry": "Ardor", + "contactName": "Attila Aldemir", + "contactEmail": "attila.aldemir@atz3n.dev", + "contactWebsite": "", + "specification": "https://github.com/blobaa/bba-did-method-specification/blob/master/docs/markdown/spec.md" + }, + { + "name": "bee", + "status": "registered", + "verifiableDataRegistry": "Ledger agnostic", + "contactName": "mesur.io", + "contactEmail": "mprorock@mesur.io", + "contactWebsite": "https://mesur.io.io/", + "specification": "https://github.com/mesur-io/did-method-bee" + }, + { + "name": "bid", + "status": "registered", + "verifiableDataRegistry": "bif", + "contactName": "teleinfo caict", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/teleinfo-bif/bid/tree/master/doc/en" + }, + { + "name": "bit", + "status": "registered", + "verifiableDataRegistry": "d.id", + "contactName": "d.id", + "contactEmail": "support@d.id", + "contactWebsite": "https://d.id", + "specification": "https://github.com/dotbitHQ/did-bit-spec" + }, + { + "name": "bluetoqueagent", + "status": "registered", + "verifiableDataRegistry": "Trusted Digital Web", + "contactName": "Hyperonomy Digital Identity Lab, Parallelspace Corporation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-bluetoqueagent-1-0-0.md" + }, + { + "name": "bluetoquedeed", + "status": "registered", + "verifiableDataRegistry": "Trusted Digital Web", + "contactName": "Hyperonomy Digital Identity Lab, Parallelspace Corporation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-bluetoquedeed-1-0-0.md" + }, + { + "name": "bluetoquenfe", + "status": "registered", + "verifiableDataRegistry": "Trusted Digital Web", + "contactName": "Hyperonomy Digital Identity Lab, Parallelspace Corporation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-bluetoquenfe-1-0-0.md" + }, + { + "name": "bluetoqueproc", + "status": "registered", + "verifiableDataRegistry": "Trusted Digital Web", + "contactName": "Hyperonomy Digital Identity Lab, Parallelspace Corporation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-bluetoqueprocess-1-0-0.md" + }, + { + "name": "bnb", + "status": "registered", + "verifiableDataRegistry": "Binance Smart Chain", + "contactName": "Ontology Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ontology-tech/DID-method-specs/blob/master/did-bnb/DID-Method-bnb.md" + }, + { + "name": "bryk", + "status": "registered", + "verifiableDataRegistry": "bryk", + "contactName": "Marcos Allende, Sandra Murcia, Flavia Munhoso, Ruben Cessa", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/bryk-io/did-method/blob/master/README.md" + }, + { + "name": "bsv", + "status": "registered", + "verifiableDataRegistry": "BSV", + "contactName": "Thomas Moretti", + "contactEmail": "t.moretti@nchain.com", + "contactWebsite": "https://www.nchain.com/", + "specification": "https://github.com/nchain-research/nChain-Identity-bsvdid-method" + }, + { + "name": "btco", + "status": "registered", + "specification": "https://github.com/ordinalsreserve/did-btco/blob/main/spec.md", + "contactName": "Aviary Tech", + "contactEmail": "contact@aviary.tech", + "contactWebsite": "https://aviary.tech", + "verifiableDataRegistry": "BTC" + }, + { + "name": "btcr", + "status": "registered", + "verifiableDataRegistry": "Bitcoin", + "contactName": "Christopher Allen, Ryan Grant, Kim Hamilton Duffy", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://w3c-ccg.github.io/didm-btcr" + }, + { + "name": "candid", + "status": "registered", + "verifiableDataRegistry": "Quorum", + "contactName": "Eric Lin", + "contactEmail": "ericlin@cathayholdings.com.tw", + "contactWebsite": "https://www.linkedin.com/in/eric-lin-875b42b0/", + "specification": "https://github.com/ericlin716/did-spec/blob/main/candid-did-method-spec.md" + }, + { + "name": "ccd", + "status": "registered", + "specification": "https://proposals.concordium.software/ID/concordium-did.html", + "contactName": "Concordium development team", + "contactEmail": "developers@concordium.com", + "contactWebsite": "https://concordium.com", + "verifiableDataRegistry": "Concordium" + }, + { + "name": "ccf", + "status": "registered", + "verifiableDataRegistry": "Confidential Consortium Framework (CCF)", + "contactName": "Microsoft", + "contactEmail": "ccf-did@microsoft.com", + "contactWebsite": "https://ccf.dev", + "specification": "https://github.com/microsoft/did-ccf/blob/main/DID_CCF.md" + }, + { + "name": "ccp", + "status": "registered", + "verifiableDataRegistry": "Quorum", + "contactName": "Baidu, Inc.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://did.baidu.com/did-spec/" + }, + { + "name": "celo", + "status": "registered", + "verifiableDataRegistry": "Celo", + "contactName": "Ontology Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ontology-tech/DID-method-specs/blob/master/did-celo/DID-Method-celo.md" + }, + { + "name": "cheqd", + "status": "registered", + "verifiableDataRegistry": "cheqd", + "contactName": "CHEQD FOUNDATION LIMITED", + "contactEmail": "contact@cheqd.io", + "contactWebsite": "https://cheqd.io", + "specification": "https://docs.cheqd.io/identity/architecture/adr-list/adr-001-cheqd-did-method" + }, + { + "name": "com", + "status": "registered", + "verifiableDataRegistry": "commercio.network", + "contactName": "Commercio Consortium", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/commercionetwork/Commercio.network-DID-Method-Specification/" + }, + { + "name": "content", + "status": "registered", + "specification": "https://github.com/KataruInc/did-content-spec", + "contactName": "Mizuki Sonoko", + "contactEmail": "sonoko@mizuki.io", + "contactWebsite": "https://mizuki.io", + "verifiableDataRegistry": "" + }, + { + "name": "corda", + "status": "registered", + "verifiableDataRegistry": "Corda", + "contactName": "Nitesh Solanki,Moritz Platt,Pranav Kirtani", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://htmlpreview.github.io/?https://github.com/persistentsystems/corda-did-method/blob/master/corda_did_method.html" + }, + { + "name": "cosmos", + "status": "registered", + "verifiableDataRegistry": "Cosmos application chains", + "contactName": "Shaun Conway", + "contactEmail": "earthprogram@ixo.world", + "contactWebsite": "https://www.ixo.world/", + "specification": "https://github.com/EarthProgram/did-cosmos" + }, + { + "name": "cot", + "status": "registered", + "verifiableDataRegistry": "CoTChain", + "contactName": "CoTNetwork, Inc.", + "contactEmail": "", + "contactWebsite": "https://www.cotnetwork.com", + "specification": "https://github.com/ComputingOfThings/dids#readme" + }, + { + "name": "cr", + "status": "registered", + "specification": "https://github.com/SelfSovereignDrm/core/blob/main/README.md", + "contactName": "", + "contactEmail": "ssdrm@digicaps.com", + "contactWebsite": "", + "verifiableDataRegistry": "Hyperledger Fabric" + }, + { + "name": "ct", + "status": "registered", + "verifiableDataRegistry": "Circular Trust", + "contactName": "", + "contactEmail": "sysadmin@blueroominnovation.com", + "contactWebsite": "https://circulartrust.eu/", + "specification": "https://github.com/blueroominnovation/did-ct-spec" + }, + { + "name": "ctid", + "status": "registered", + "verifiableDataRegistry": "", + "contactName": "Beijing Zhongdun Anxin Science and Technology Development Co., Ltd", + "contactEmail": "liwending@anicert.cn", + "contactWebsite": "https://www.anicert.cn/", + "specification": "https://github.com/617640999/ctid-did-register/blob/main/anicert-ctid-did-en.md" + }, + { + "name": "dht", + "status": "registered", + "verifiableDataRegistry": "Mainline DHT", + "contactName": "TBD", + "contactEmail": "", + "contactWebsite": "https://www.tbd.website", + "specification": "https://did-dht.com/" + }, + { + "name": "did", + "status": "registered", + "verifiableDataRegistry": "Decentralized Identifiers", + "contactName": "Spruce Systems, Inc.", + "contactEmail": "", + "contactWebsite": "https://spruceid.com", + "specification": "https://did-did.spruceid.com" + }, + { + "name": "dns", + "status": "registered", + "verifiableDataRegistry": "Domain Name System (DNS)", + "contactName": "Danube Tech", + "contactEmail": "markus@danubetech.com", + "contactWebsite": "https://danubetech.com", + "specification": "https://danubetech.github.io/did-method-dns/" + }, + { + "name": "dock", + "status": "registered", + "verifiableDataRegistry": "Dock", + "contactName": "Dock.io", + "contactEmail": "", + "contactWebsite": "https://www.dock.io", + "specification": "https://github.com/docknetwork/dock-did-driver/blob/master/Dock%20DID%20method%20specification.md" + }, + { + "name": "dom", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Dominode", + "contactEmail": "", + "contactWebsite": "", + "specification": "" + }, + { + "name": "dotbit", + "status": "registered", + "verifiableDataRegistry": "d.id", + "contactName": "d.id", + "contactEmail": "support@did.id", + "contactWebsite": "https://d.id", + "specification": "https://github.com/dotbithq/dotbit-did-spec" + }, + { + "name": "dsrv", + "status": "registered", + "specification": "https://github.com/dsrvlabs/did_method/blob/main/DID-Method-DSRV.md", + "contactName": "dsrv", + "contactEmail": "did@dsrvlabs.com", + "contactWebsite": "https://welldonestake.io/", + "verifiableDataRegistry": "" + }, + { + "name": "dual", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Smart ID Card Alliance", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/Smart-ID-Card/Dual-DID/blob/main/docs/dual-did-method.md" + }, + { + "name": "dxd", + "status": "registered", + "verifiableDataRegistry": "fabric.data-alliace.com", + "contactName": "Data Alliance Co., Ltd.", + "contactEmail": "blockchain@data-alliance.com", + "contactWebsite": "https://www.data-alliance.com/", + "specification": "https://github.com/Data-Alliance/did-dxd/blob/master/README.md" + }, + { + "name": "dyne", + "status": "registered", + "verifiableDataRegistry": "Dyne.org Foundation", + "contactName": "Andrea D'Intino", + "contactEmail": "info@dyne.org", + "contactWebsite": "https://dyne.org", + "specification": "https://dyne.github.io/W3C-DID" + }, + { + "name": "echo", + "status": "registered", + "verifiableDataRegistry": "Echo", + "contactName": "Echo Technological Solutions LLC", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/echoprotocol/uni-resolver-driver-did-echo/blob/master/echo_did_specifications.md" + }, + { + "name": "elastos", + "status": "registered", + "verifiableDataRegistry": "Elastos ID Sidechain", + "contactName": "Elastos Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/elastos/Elastos.DID.Method/blob/master/DID/Elastos-DID-Method-Specification_en.md" + }, + { + "name": "elem", + "status": "registered", + "verifiableDataRegistry": "Element DID", + "contactName": "Transmute", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/decentralized-identity/element/blob/master/docs/did-method-spec/spec.md" + }, + { + "name": "emtrust", + "status": "registered", + "verifiableDataRegistry": "Hyperledger Fabric", + "contactName": "Halialabs Pte Ltd.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/Halialabs/did-spec/blob/gh-pages/readme.md" + }, + { + "name": "ens", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "ConsenSys MESH", + "contactEmail": "oliver.terbu@mesh.xyz", + "contactWebsite": "https://mesh.xyz", + "specification": "https://github.com/veramolabs/did-ens-spec" + }, + { + "name": "eosio", + "status": "registered", + "verifiableDataRegistry": "EOSIO", + "contactName": "Gimly Blockchain", + "contactEmail": "", + "contactWebsite": "https://gimly.io", + "specification": "https://github.com/Gimly-Blockchain/eosio-did-spec" + }, + { + "name": "erat", + "status": "registered", + "verifiableDataRegistry": "DID Specification", + "contactName": "ERATOSTHENES project", + "contactEmail": "harris.niavis@inlecomsystems.com", + "contactWebsite": "https://eratosthenes-project.eu/", + "specification": "https://gitlab.com/eratosthenes-h2020/erat-did-spec" + }, + { + "name": "erc725", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Markus Sabadello, Fabian Vogelsteller, Peter Kolarov", + "contactEmail": "markus@danubetech.com", + "contactWebsite": "", + "specification": "https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust-spring2018/blob/master/topics-and-advance-readings/DID-Method-erc725.md" + }, + { + "name": "etho", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Ontology Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ontology-tech/DID-method-specs/blob/master/did-etho/DID-Method-etho.md" + }, + { + "name": "ethr", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "uPort", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/decentralized-identity/ethr-did-resolver/blob/master/doc/did-method-spec.md" + }, + { + "name": "ev", + "status": "registered", + "specification": "https://github.com/KayTrust/did-method-ev", + "contactName": "David Ammouial (NTT DATA)", + "contactEmail": "david.ammouial@nttdata.com", + "contactWebsite": "https://kaytrust.id/", + "verifiableDataRegistry": "Any Ethereum or EVM-compatible ledger" + }, + { + "name": "evan", + "status": "registered", + "verifiableDataRegistry": "evan.network", + "contactName": "evan GmbH", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/evannetwork/evan.network-DID-method-specification/blob/master/evan_did_method_spec.md" + }, + { + "name": "everscale", + "status": "registered", + "specification": "https://git.defispace.com/ssi-4/everscale-did-registry/-/blob/master/docs/documentation.md", + "verifiableDataRegistry": "Everscale blockchain", + "contactName": "Dmitry V. Samorodkin", + "contactEmail": "ds@radianceteam.com", + "contactWebsite": "https://www.radianceteam.com/" + }, + { + "name": "example", + "status": "registered", + "verifiableDataRegistry": "DID Specification", + "contactName": "W3C DID Working Group", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://www.w3.org/TR/did-core/" + }, + { + "name": "factom", + "status": "registered", + "verifiableDataRegistry": "Factom", + "contactName": "Sphereon, Factomatic, Factom Inc", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/factom-protocol/FIS/blob/master/FIS/DID.md" + }, + { + "name": "fairx", + "status": "deprecated", + "verifiableDataRegistry": "FairX Node", + "contactName": "Michael Dowling", + "contactEmail": "mdowling@gmail.com", + "contactWebsite": "https://github.com/fairxio/", + "specification": "https://github.com/fairxio/protocol/tree/main/did" + }, + { + "name": "future", + "status": "registered", + "verifiableDataRegistry": "Netease Chain", + "contactName": "Netease Blockchain Team", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/netease-chain/Future-DID-Method-Specification/blob/main/README.md" + }, + { + "name": "gatc", + "status": "registered", + "verifiableDataRegistry": "Ethereum, Hyperledger Fabric, Hyperledger Besu, Alastria", + "contactName": "Gataca", + "contactEmail": "", + "contactWebsite": "https://gataca.io/", + "specification": "https://github.com/gatacaid/gataca-did-method" + }, + { + "name": "gns", + "status": "registered", + "verifiableDataRegistry": "GNU Name System", + "contactName": "GNUnet", + "contactEmail": "gnunet-developers@gnu.org", + "contactWebsite": "https://gnunet.org", + "specification": "https://lsd.gnunet.org/lsd0005/" + }, + { + "name": "grg", + "status": "registered", + "verifiableDataRegistry": "GrgChain", + "contactName": "GRGBanking Blockchain Express Co. Ltd.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/GrgChain/DID-method-specs/blob/master/README.md" + }, + { + "name": "grn", + "status": "registered", + "specification": "https://github.com/EG-easy/grano-did/blob/main/did-method-specification.md", + "contactName": "EG-easy", + "contactEmail": "", + "contactWebsite": "", + "verifiableDataRegistry": "Any CosmWasm-compatible ledger" + }, + { + "name": "gwm", + "status": "registered", + "verifiableDataRegistry": "Great Wall Chain", + "contactName": "Great Wall Motor Company Limited", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/GreatWall-Blockchain/GWDID-Method-Specification/blob/main/README.md" + }, + { + "name": "health", + "status": "registered", + "verifiableDataRegistry": "DID Health", + "contactName": "support", + "contactEmail": "support@did.healthcare", + "contactWebsite": "https://www.did.healthcare/", + "specification": "https://github.com/didhealth/health-did-resolver/blob/main/doc/did-method-spec.md" + }, + { + "name": "hedera", + "status": "registered", + "verifiableDataRegistry": "Hedera Hashgraph", + "contactName": "Hedera Hashgraph, Swisscom Blockchain AG", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/hashgraph/did-method/blob/master/did-method-specification.md" + }, + { + "name": "hid", + "status": "registered", + "specification": "https://github.com/hypersign-protocol/HIPs/blob/main/HIPs/hip-10.md", + "contactName": "Hypermine Limited", + "contactEmail": "connect@hypermine.in", + "contactWebsite": "https://hypersign.id/", + "verifiableDataRegistry": "Hypersign Blockchain Network" + }, + { + "name": "holo", + "status": "registered", + "verifiableDataRegistry": "Holochain", + "contactName": "Holo.Host", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/WebOfTrustInfo/rwot9-prague/blob/master/draft-documents/did:hc-method.md" + }, + { + "name": "hpass", + "status": "registered", + "verifiableDataRegistry": "Hyperledger Fabric", + "contactName": "IBM", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/IBM/hpass/blob/main/doc/did-spec.md" + }, + { + "name": "hpo", + "status": "registered", + "verifiableDataRegistry": "", + "contactName": "Hippocrat DAO", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/hippocrat-protocol/hpo-did-method-spec/blob/main/HPO-DID-method-spec.md" + }, + { + "name": "hsk", + "status": "registered", + "verifiableDataRegistry": "PlatON", + "contactName": "HashKey DID", + "contactEmail": "info@hashkey.id", + "specification": "https://github.com/hashkeydid/hashkeydid-w3c-specification/blob/master/did-specfication/hsk-method.md" + }, + { + "name": "iamx", + "status": "registered", + "specification": "https://github.com/IAMXID/did-method-iamx/blob/main/IAMX_DID_method.md", + "contactName": "IAMX AG, 6300 Zug, Switzerland", + "contactEmail": "contact@iamx.id", + "contactWebsite": "https://iamx.id/" + }, + { + "name": "ibmdc", + "status": "registered", + "verifiableDataRegistry": "Hyperledger Fabric", + "contactName": "IBM Digital Credentials", + "contactEmail": "digitalcredentials@ibm.com", + "contactWebsite": "https://www.ibm.com/blockchain/identity", + "specification": "https://wiki.digitalcredentials.ibm.com/#/spec/v1/did-method" + }, + { + "name": "icon", + "status": "registered", + "verifiableDataRegistry": "ICON", + "contactName": "ICONLOOP", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/icon-project/icon-DID/blob/master/docs/ICON-DID-method.md" + }, + { + "name": "id", + "status": "registered", + "verifiableDataRegistry": "ID Service", + "contactName": "Mastercard", + "contactEmail": "", + "contactWebsite": "https://idservice.com/en/contactus.html", + "specification": "https://github.com/Mastercard/did-methods/blob/master/id.md" + }, + { + "name": "iden3", + "status": "registered", + "verifiableDataRegistry": "EVM compatible chains", + "contactName": "ZK ID Labs AG, Polygon ID", + "contactEmail": "", + "contactWebsite": "https://www.polygonid.com/", + "specification": "https://github.com/0xPolygonID/did-polygonid" + }, + { + "name": "iid", + "status": "registered", + "verifiableDataRegistry": "Inspur Chain", + "contactName": "zoe Yian", + "contactEmail": "ranyueranyue@outlook.com", + "contactWebsite": "", + "specification": "https://github.com/InspurIndustrialInternet/iid/blob/main/doc/en/InspurChain_DID_protocol_Specification.md" + }, + { + "name": "indy", + "status": "registered", + "verifiableDataRegistry": "Any Hyperledger Indy Ledger", + "contactName": "Stephen Curran", + "contactEmail": "swcurran@cloudcompass.ca", + "contactWebsite": "", + "specification": "https://hyperledger.github.io/indy-did-method/" + }, + { + "name": "infra", + "status": "registered", + "verifiableDataRegistry": "InfraBlockchain", + "contactName": "Blockchain Labs", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/InfraBlockchain/infra-did-method-specs/blob/main/docs/Infra-DID-method-spec.md" + }, + { + "name": "io", + "status": "registered", + "verifiableDataRegistry": "IoTeX", + "contactName": "IoTeX Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/iotexproject/iotex-did/blob/master/README.md" + }, + { + "name": "ion", + "status": "registered", + "verifiableDataRegistry": "Bitcoin", + "contactName": "Various DIF contributors", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/decentralized-identity/ion-did-method" + }, + { + "name": "iota", + "status": "registered", + "verifiableDataRegistry": "IOTA", + "contactName": "IOTA Foundation", + "contactEmail": "", + "contactWebsite": "https://iota.org", + "specification": "https://wiki.iota.org/identity.rs/specs/did/iota_did_method_spec" + }, + { + "name": "ipid", + "status": "registered", + "verifiableDataRegistry": "IPFS", + "contactName": "TranSendX", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://did-ipid.github.io/ipid-did-method/" + }, + { + "name": "is", + "status": "registered", + "verifiableDataRegistry": "Blockcore", + "contactName": "Blockcore", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/block-core/blockcore-did-method" + }, + { + "name": "iscc", + "status": "registered", + "verifiableDataRegistry": "Public Blockchains", + "contactName": "ISCC Foundation", + "contactEmail": "tp@iscc.foundation", + "contactWebsite": "https://iscc.foundation", + "specification": "https://ieps.iscc.codes/iep-0015/" + }, + { + "name": "itn", + "status": "registered", + "specification": "https://github.com/itn-trust/itn-did-spec", + "contactName": "Umed Khudoiberdiev", + "contactEmail": "umed@dlt.mobi", + "contactWebsite": "https://itn.global/", + "verifiableDataRegistry": "Hyperledger Fabric (Private Network) and Arbitrum One" + }, + { + "name": "iwt", + "status": "registered", + "verifiableDataRegistry": "InfoWallet", + "contactName": "Raonsecure", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/infowallet/did_method/blob/master/did_method.md" + }, + { + "name": "jlinc", + "status": "registered", + "verifiableDataRegistry": "JLINC Protocol", + "contactName": "Victor Grey", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://did-spec.jlinc.org/" + }, + { + "name": "jlinx", + "status": "registered", + "verifiableDataRegistry": "JLINX Protocol", + "contactName": "Victor Grey", + "contactEmail": "victor@jlinc.com", + "contactWebsite": "", + "specification": "https://didspec.jlinx.io" + }, + { + "name": "jnctn", + "status": "registered", + "verifiableDataRegistry": "Jnctn Network", + "contactName": "Jnctn Limited", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/jnctn/did-method-spec/" + }, + { + "name": "jolo", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Jolocom", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/jolocom/jolo-did-method/blob/master/jolocom-did-method-specification.md" + }, + { + "name": "jwk", + "status": "registered", + "verifiableDataRegistry": "Ledger agnostic", + "contactName": "Jeremie Miller", + "contactEmail": "jeremie.miller@gmail.com", + "contactWebsite": "", + "specification": "https://github.com/quartzjer/did-jwk" + }, + { + "name": "kaname", + "status": "registered", + "specification": "https://github.com/KanameProtocol/did-kaname-spec/blob/main/README.md", + "contactName": "", + "contactEmail": "", + "contactWebsite": "https://kaname.io/", + "verifiableDataRegistry": "Any EVM Compatible Blockchains" + }, + { + "name": "kdid", + "status": "registered", + "specification": "https://github.com/KingdomFintechBJ-BC/kdid/blob/main/doc/en/kdid.md", + "contactName": "KINGDOM FINTECH(BEIJING)CO,LTD.", + "contactEmail": "quklsyb@szkingdom.com", + "contactWebsite": "", + "verifiableDataRegistry": "FISCO BCOS" + }, + { + "name": "keri", + "status": "registered", + "verifiableDataRegistry": "Ledger agnostic", + "contactName": "Dr. Sam Smith, Charles Cunningham, Phil Feairheller", + "contactEmail": "pfeairheller@gmail.com", + "contactWebsite": "", + "specification": "https://weboftrust.github.io/did-keri/" + }, + { + "name": "key", + "status": "registered", + "verifiableDataRegistry": "Ledger-independent DID method based on public/private key pairs", + "contactName": "Rick Astley (thank you for your inspiration), Manu Sporny, Dmitri Zagidulin, Dave Longley, Orie Steele", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://w3c-ccg.github.io/did-method-key/" + }, + { + "name": "kilt", + "status": "registered", + "specification": "https://github.com/KILTprotocol/specifications/blob/main/docs/did/did-spec.md", + "contactEmail": "devs@kilt.io", + "contactName": "BOTLabs GmbH", + "contactWebsite": "https://www.kilt.io/", + "verifiableDataRegistry": "KILT Blockchain" + }, + { + "name": "klay", + "status": "registered", + "verifiableDataRegistry": "Klaytn", + "contactName": "Ontology Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ontology-tech/DID-method-specs/blob/master/did-klay/DID-Method-klay.md" + }, + { + "name": "klayr", + "status": "registered", + "verifiableDataRegistry": "Klayr Sidechain", + "contactName": "Aldo Suhartono Putra", + "contactEmail": "aldhosutra@gmail.com", + "contactWebsite": "https://klayr-did.js.org/", + "specification": "https://github.com/aldhosutra/klayr-did/blob/main/packages/klayr-did-module/docs/did-method-spec.md" + }, + { + "name": "knox", + "status": "registered", + "verifiableDataRegistry": "Knox Networks", + "contactName": "Francis Kim", + "contactEmail": "developers@knox-networks.com", + "contactWebsite": "https://www.knox-networks.com/", + "specification": "https://github.com/knox-networks/knox-did-specification" + }, + { + "name": "kr", + "status": "registered", + "verifiableDataRegistry": "Korea Mobile Identity System", + "contactName": "Ministry of the Interior and Safety, korea", + "contactEmail": "", + "contactWebsite": "https://github.com/identify202020/did-method/blob/main/did_author.md", + "specification": "https://github.com/identify202020/did-method/blob/main/did_kr_method.md" + }, + { + "name": "kscirc", + "status": "registered", + "specification": "https://tangy-gallium-b9b.notion.site/DID-Method-Specification-KSChain-7a77664f1eae47769692f4ff2d029fe0", + "contactName": "K4-Security", + "contactEmail": "", + "contactWebsite": "http://www.k4-security.com/", + "verifiableDataRegistry": "KSChain Blockchain" + }, + { + "name": "lac", + "status": "registered", + "verifiableDataRegistry": "LACChain Network", + "contactName": "LACChain Alliance", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/lacchain/lacchain-did-registry/blob/master/DID_SPEC.md" + }, + { + "name": "ldid", + "status": "registered", + "verifiableDataRegistry": "ChainMaker", + "contactName": "Shujin Public Service (Qingdao) Co., Ltd.", + "contactEmail": "blockchain@dcps.top", + "contactWebsite": "", + "specification": "https://github.com/LONGEVITY-DIGITAL/LDID-Method-Specification/blob/main/README.md" + }, + { + "name": "life", + "status": "registered", + "verifiableDataRegistry": "RChain", + "contactName": "lifeID Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://lifeid.github.io/did-method-spec/" + }, + { + "name": "ling", + "status": "registered", + "specification": "https://www.notion.so/LING-DID-Method-Specification-7b9d25a62a1849a496890b9ef24e0890", + "contactName": "K4-Security", + "contactEmail": "contact@k4-security.com", + "contactWebsite": "http://www.k4-security.com/", + "verifiableDataRegistry": "LING" + }, + { + "name": "lit", + "status": "registered", + "verifiableDataRegistry": "LEDGIS", + "contactName": "IBCT", + "contactEmail": "", + "contactWebsite": "http://en.ibct.kr", + "specification": "https://github.com/ibct-dev/lit-DID/blob/main/docs/did:lit-method-spec_eng_v0.1.0.md" + }, + { + "name": "m2m", + "status": "registered", + "verifiableDataRegistry": "Hyperledger Indy", + "contactName": "SmartM2M. Co., Ltd", + "contactEmail": "smartm2m@smartm2m.co.kr", + "contactWebsite": "https://www.smartm2m.co.kr/", + "specification": "https://github.com/m2mblockchain/DID-Method-m2m/blob/main/README.md" + }, + { + "name": "meme", + "status": "registered", + "verifiableDataRegistry": "IPFS & DNS & HTTP", + "contactName": "DID Meme Maintainers", + "contactEmail": "orie@or13.io", + "contactWebsite": "https://didme.me/", + "specification": "https://or13.github.io/didme.me/did-method-spec" + }, + { + "name": "mesh", + "status": "registered", + "verifiableDataRegistry": "Trusted Digital Web", + "contactName": "Hyperonomy Digital Identity Lab, Parallelspace Corporation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-mesh-1-0-1.md" + }, + { + "name": "meta", + "status": "registered", + "verifiableDataRegistry": "Metadium", + "contactName": "Metadium Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/METADIUM/meta-DID/blob/master/doc/DID-method-metadium.md" + }, + { + "name": "moac", + "status": "registered", + "verifiableDataRegistry": "MOAC", + "contactName": "MOAC Blockchain Tech, Inc.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/DavidRicardoWilde/moac-did/blob/master/did-moac-method.md" + }, + { + "name": "monid", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Min Ju", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://lianxi-tech.github.io/monid/" + }, + { + "name": "morpheus", + "status": "registered", + "verifiableDataRegistry": "Hydra", + "contactName": "Internet of People", + "contactEmail": "", + "contactWebsite": "https://iop.global/", + "specification": "https://developer.iop.global/w3c" + }, + { + "name": "myDiD", + "status": "registered", + "specification": "https://github.com/MyDidCom/myDiD_Method", + "contactName": "", + "contactEmail": "contact@mydid.com", + "contactWebsite": "https://mydid.com", + "verifiableDataRegistry": "DID Specification" + }, + { + "name": "mydata", + "status": "registered", + "verifiableDataRegistry": "iGrant.io", + "contactName": "iGrant.io", + "contactEmail": "", + "contactWebsite": "https://igrant.io/", + "specification": "https://github.com/decentralised-dataexchange/automated-data-agreements/blob/main/docs/did-spec.md" + }, + { + "name": "near", + "status": "registered", + "verifiableDataRegistry": "NEAR", + "contactName": "Ontology Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ontology-tech/DID-spec-near/blob/master/NEAR/DID-Method-NEAR.md" + }, + { + "name": "next", + "status": "registered", + "verifiableDataRegistry": "Nextme DIDs Network", + "contactName": "Next Labs", + "contactEmail": "did@nextme.one", + "contactWebsite": "https://nextme.one", + "specification": "https://docs.nextme.one/#/DID/NextDID" + }, + { + "name": "nft", + "status": "registered", + "verifiableDataRegistry": "Ceramic Network", + "contactName": "3Box Labs", + "contactEmail": "devs@3box.io", + "contactWebsite": "https://3boxlabs.com/", + "specification": "https://cips.ceramic.network/CIPs/cip-94" + }, + { + "name": "ns", + "status": "registered", + "verifiableDataRegistry": "Web 7.0 Foundation", + "contactName": "Web 7.0 Foundation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "https://didns.directory", + "specification": "https://github.com/Web7Foundation/Specifications/blob/main/methods/did-ns-1-0-1.md" + }, + { + "name": "nuggets", + "status": "registered", + "verifiableDataRegistry": "Nuggets Network", + "contactName": "Nuggets Ltd", + "contactEmail": "contact@nuggets.life", + "contactWebsite": "https://nuggets.life", + "specification": "https://github.com/NuggetsLtd/nuggets-did-resolver/blob/master/doc/did-methods/did:nuggets.md" + }, + { + "name": "nuts", + "status": "registered", + "verifiableDataRegistry": "Nuts network", + "contactName": "Nuts community", + "contactEmail": "w3c-did-core@nuts.nl", + "contactWebsite": "https://nuts.nl", + "specification": "https://nuts-foundation.gitbook.io/drafts/rfc/rfc006-distributed-registry" + }, + { + "name": "object", + "status": "registered", + "verifiableDataRegistry": "Trusted Digital Web", + "contactName": "Hyperonomy Digital Identity Lab, Parallelspace Corporation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-object-1-5-0.md" + }, + { + "name": "ockam", + "status": "registered", + "verifiableDataRegistry": "Ockam", + "contactName": "Ockam", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ockam-network/did-method-spec/blob/master/README.md" + }, + { + "name": "omn", + "status": "registered", + "verifiableDataRegistry": "OmniOne", + "contactName": "OmniOne", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/OmniOneID/did_method/blob/master/did_method.md" + }, + { + "name": "onion", + "status": "registered", + "verifiableDataRegistry": "Ledger agnostic", + "contactName": "Blockchain Commons", + "contactEmail": "", + "contactWebsite": "https://github.com/BlockchainCommons/did-method-onion", + "specification": "https://blockchaincommons.github.io/did-method-onion/" + }, + { + "name": "ont", + "status": "registered", + "verifiableDataRegistry": "Ontology", + "contactName": "Ontology Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ontio/ontology-DID/blob/master/docs/en/DID-ONT-method.md" + }, + { + "name": "op", + "status": "registered", + "verifiableDataRegistry": "Ocean Protocol", + "contactName": "Ocean Protocol", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/oceanprotocol/OEPs/blob/master/7/v0.2/README.md" + }, + { + "name": "orb", + "status": "registered", + "verifiableDataRegistry": "Ledger agnostic", + "contactName": "Avast", + "contactEmail": "troy.ronda@avast.com", + "contactWebsite": "https://avast.com/", + "specification": "https://trustbloc.github.io/did-method-orb/" + }, + { + "name": "oyd", + "status": "registered", + "verifiableDataRegistry": "Ledger agnostic", + "contactName": "OwnYourData.eu", + "contactEmail": "christoph@ownyourdata.eu", + "contactWebsite": "https://ownyourdata.eu/", + "specification": "https://ownyourdata.github.io/oydid/" + }, + { + "name": "panacea", + "status": "registered", + "verifiableDataRegistry": "Panacea", + "contactName": "MediBloc", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/medibloc/panacea-core/blob/master/docs/did.md" + }, + { + "name": "peaq", + "status": "registered", + "specification": "https://github.com/peaqnetwork/peaq-did-specifications", + "contactEmail": "info@peaq.network", + "contactName": "Peaq Technology GmbH", + "contactWebsite": "https://www.peaq.network", + "verifiableDataRegistry": "peaq Blockchain" + }, + { + "name": "peer", + "status": "registered", + "verifiableDataRegistry": "peer", + "contactName": "Daniel Hardman", + "contactEmail": "daniel.hardman@gmail.com", + "contactWebsite": "", + "specification": "https://identity.foundation/peer-did-method-spec/index.html" + }, + { + "name": "pid", + "status": "registered", + "verifiableDataRegistry": "ProofID Blockchain", + "contactName": "Alvin Reyes", + "contactEmail": "tech@proofid.me", + "contactWebsite": "https://proofid.me", + "specification": "https://github.com/proof-id/pid-did-driver/blob/main/did-method-specification.md" + }, + { + "name": "pistis", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Andrea Taglia, Matteo Sinico", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/uino95/ssi/blob/consensys/dashboard/server/pistis/pistis-did-resolver/README.md" + }, + { + "name": "pkh", + "status": "registered", + "verifiableDataRegistry": "Ledger-independent generative DID method based on CAIP-10 keypair expressions", + "contactName": "Wayne Chang, Charles Lehner, Juan Caballero, Joel Thorstensson", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/w3c-ccg/did-pkh/blob/90b28ad3c18d63822a8aab3c752302aa64fc9382/did-pkh-method-draft.md" + }, + { + "name": "plc", + "status": "registered", + "specification": "https://github.com/bluesky-social/did-method-plc", + "contactName": "Bluesky PBLLC", + "contactEmail": "protocol@blueskyweb.xyz", + "contactWebsite": "https://blueskyweb.xyz/", + "verifiableDataRegistry": "https://plc.directory" + }, + { + "name": "pml", + "status": "registered", + "verifiableDataRegistry": "PML Chain", + "contactName": "Purple Mountain Laboratories", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/PML-ID/pml-did-specs/blob/main/did-method.md" + }, + { + "name": "polygon", + "status": "registered", + "verifiableDataRegistry": "Polygon (Previously MATIC)", + "contactName": "AyanWorks, MATIC", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ayanworks/polygon-did-method-spec" + }, + { + "name": "polygonid", + "status": "registered", + "verifiableDataRegistry": "EVM compatible chains", + "contactName": "ZK ID Labs AG, Polygon ID", + "contactEmail": "", + "contactWebsite": "https://www.polygonid.com/", + "specification": "https://github.com/0xPolygonID/did-polygonid" + }, + { + "name": "prism", + "status": "registered", + "specification": "https://github.com/input-output-hk/prism-did-method-spec/blob/main/w3c-spec/PRISM-method.md", + "contactName": "Input Output Global Inc (IOG)", + "contactEmail": "security-atala@iohk.io", + "contactWebsite": "https://iohk.io/", + "verifiableDataRegistry": "The Cardano blockchain" + }, + { + "name": "psi", + "status": "registered", + "verifiableDataRegistry": "LEDGIS", + "contactName": "Police Science Institution", + "contactEmail": "", + "contactWebsite": "https://www.psi.go.kr/", + "specification": "https://github.com/didpsi/psi-DID/blob/main/docs/did:psi-method-spec_eng.md" + }, + { + "name": "psqr", + "status": "registered", + "verifiableDataRegistry": "Public Square", + "contactName": "Christian Gribneau", + "contactEmail": "protocol@vpsqr.com", + "contactWebsite": "https://vpsqr.com", + "specification": "https://vpsqr.com/did-method-psqr/v1/" + }, + { + "name": "ptn", + "status": "registered", + "verifiableDataRegistry": "PalletOne", + "contactName": "PalletOne", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/palletone/palletone-DID/blob/master/docs/did-method/README.md" + }, + { + "name": "qes", + "status": "registered", + "verifiableDataRegistry": "QES", + "contactName": "IDnow GmbH", + "contactEmail": "sebastian.elfors@idnow.de", + "contactWebsite": "https://www.idnow.io/", + "specification": "https://github.com/idnow/de.idnow.qes.did.method.specification" + }, + { + "name": "qui", + "status": "registered", + "verifiableDataRegistry": "Qui", + "contactName": "Hyperonomy Digital Identity Lab, Parallelspace Corporation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-qui-1-0-0.md" + }, + { + "name": "ray", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Ray Peng", + "contactEmail": "275400726@qq.com", + "contactWebsite": "", + "specification": "https://github.com/pcrui/did-spec/blob/main/README.md" + }, + { + "name": "real", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Real Items", + "contactEmail": "rocky@realitems.io", + "contactWebsite": "https://realitems.io", + "specification": "https://github.com/realitems/did-real/blob/main/did-real-method-specification.md" + }, + { + "name": "resume", + "status": "registered", + "specification": "https://github.com/realmatterio/Resume-DID-Method/", + "contactName": "Ming-lam Ng with Real Matter Technology and Talent Connect", + "contactEmail": "mn@realmatter.io", + "contactWebsite": "https://realmatter.io", + "verifiableDataRegistry": "Resume DID Method and Protocol" + }, + { + "name": "rm", + "status": "registered", + "specification": "https://github.com/realmatterio/RealMatter-DID-Method", + "contactName": "Ming-lam Ng (RealMatter)", + "contactEmail": "mn@realmatter.io", + "contactWebsite": "realmatter.io", + "verifiableDataRegistry": "Real-world Asset Tokenization DID Method" + }, + { + "name": "safe", + "status": "registered", + "verifiableDataRegistry": "Safe", + "contactName": "Safe Ecosystem Foundation", + "contactEmail": "info@safe.global", + "contactWebsite": "https://safe.global", + "specification": "https://cips.ceramic.network/CIPs/cip-101" + }, + { + "name": "san", + "status": "registered", + "verifiableDataRegistry": "SAN Cloudchain", + "contactName": "YLZ Inc.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/Baasze/DID-method-specification" + }, + { + "name": "schema", + "status": "registered", + "verifiableDataRegistry": "Multiple storage networks, currently public IPFS and evan.network IPFS", + "contactName": "51nodes GmbH", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/51nodes/schema-registry-did-method/blob/master/README.md" + }, + { + "name": "scid", + "status": "registered", + "verifiableDataRegistry": "StraitsChain", + "contactName": "Lorna", + "contactEmail": "lornayang@straitschain.com", + "contactWebsite": "https://straitschain.com/", + "specification": "https://github.com/StraitsChain/SCID/blob/main/README.md" + }, + { + "name": "self", + "status": "registered", + "specification": "https://github.com/excid-io/did-self", + "contactName": "Nikos Fotiou", + "contactEmail": "fotiou@excid.io", + "contactWebsite": "https://www.excid.io", + "verifiableDataRegistry": "Ledger agnostic" + }, + { + "name": "selfkey", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "SelfKey", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/SelfKeyFoundation/selfkey-identity/blob/develop/DIDMethodSpecs.md" + }, + { + "name": "sideos", + "status": "registered", + "verifiableDataRegistry": "Ledger agnostic", + "contactName": "sideos GmbH", + "contactEmail": "", + "contactWebsite": "https://sideos.io", + "specification": "https://github.com/sideos/sideos-did-method" + }, + { + "name": "signor", + "status": "registered", + "verifiableDataRegistry": "Ethereum, Hedera Hashgraph, Quorum, Hyperledger Besu", + "contactName": "Cryptonics", + "contactEmail": "", + "contactWebsite": "https://cryptonics.consulting/", + "specification": "https://github.com/cryptonicsconsulting/signor-did-contracts/blob/master/did-method-spec.md" + }, + { + "name": "sirius", + "status": "registered", + "verifiableDataRegistry": "ProximaX Sirius Chain", + "contactName": "ProximaX Singapore Pte. Ltd.", + "contactEmail": "", + "contactWebsite": "https://www.proximax.ltd", + "specification": "https://gitlab.com/proximax-enterprise/siriusid/sirius-id-specs/-/blob/master/docs/did-method-spec.md" + }, + { + "name": "snail", + "status": "registered", + "verifiableDataRegistry": "Penpal network", + "contactName": "Amy Guy, Dmitri Zagidulin", + "contactEmail": "amy@rhiaro.co.uk", + "contactWebsite": "", + "specification": "https://🐌.amy.gy/" + }, + { + "name": "snplab", + "status": "registered", + "specification": "https://github.com/snplab-io/snplab-did-method/blob/main/snplab-did-method-spec.md", + "contactName": "SNPLab Inc.", + "contactEmail": "hellodata@snplab.io", + "contactWebsite": "https://www.snplab.io", + "verifiableDataRegistry": "SNPLab MyD Network" + }, + { + "name": "sol", + "status": "registered", + "verifiableDataRegistry": "Solana", + "contactName": "Identity.com", + "contactEmail": "contact@identity.org", + "contactWebsite": "https://identity.com/contact-us", + "specification": "https://g.identity.com/sol-did/" + }, + { + "name": "sov", + "status": "registered", + "verifiableDataRegistry": "Sovrin", + "contactName": "Mike Lodder", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://sovrin-foundation.github.io/sovrin/spec/did-method-spec-template.html" + }, + { + "name": "ssb", + "status": "registered", + "verifiableDataRegistry": "Secure Scuttlebutt", + "contactName": "Charles E. Lehner", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://viewer.scuttlebot.io/&5Bne/slGKH/i1361qemVlNBElWInSUfntlWvMXaD4M4=.sha256?hl=zQmdh4Ya6WasmjnS4UMn5ot6k5tbCypy1oyhhdJ6yB6MjfT" + }, + { + "name": "ssw", + "status": "registered", + "verifiableDataRegistry": "Initial Network", + "contactName": "SK telecom", + "contactEmail": "", + "contactWebsite": "https://www.sktelecom.com/index_en.html", + "specification": "https://sktston.github.io/ssw-did/did-method-spec.html" + }, + { + "name": "stack", + "status": "registered", + "verifiableDataRegistry": "Bitcoin", + "contactName": "Jude Nelson", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/blockstack/blockstack-core/blob/stacks-1.0/docs/blockstack-did-spec.md" + }, + { + "name": "tangle", + "status": "deprecated", + "verifiableDataRegistry": "IOTA Tangle", + "contactName": "BiiLabs Co., Ltd.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/TangleID/TangleID/blob/develop/did-method-spec.md" + }, + { + "name": "tdid", + "status": "registered", + "verifiableDataRegistry": "FISCO BCOS", + "contactName": "Tencent Technology (Shenzhen) Co.Ltd", + "contactEmail": "shuangclhan@tencent.com", + "contactWebsite": "https://cloud.tencent.com/product/tdid", + "specification": "https://github.com/TencentCloud-Blockchain/TDID-Method-Specification/blob/main/README.md" + }, + { + "name": "theseries", + "status": "registered", + "specification": "https://github.com/theseriesteam/tsid-method/blob/main/ts-did-method-specification.md", + "contactName": "Hang Hang", + "contactEmail": "hanghang.dev@gmail.com", + "contactWebsite": "", + "verifiableDataRegistry": "IPFS" + }, + { + "name": "ti", + "status": "registered", + "specification": "https://github.com/HTiBRI/TiDID-Method-Specification/blob/main/README.md", + "contactName": "Hunan tianhe Guoyun Technology Co.Ltd", + "contactEmail": "yangangao@tianhecloud.com", + "contactWebsite": "https://tianhecloud.com/", + "verifiableDataRegistry": "TiChain" + }, + { + "name": "tls", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Ulrich Gallersdörfer, Kilian Käslin", + "contactEmail": "", + "contactWebsite": "", + "specification": "" + }, + { + "name": "trust", + "status": "registered", + "verifiableDataRegistry": "TrustChain", + "contactName": "TrustCerts GmbH", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/trustcerts/did-trust-method/blob/main/README.md" + }, + { + "name": "trustbloc", + "status": "registered", + "verifiableDataRegistry": "Hyperledger Fabric", + "contactName": "SecureKey", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/trustbloc/trustbloc-did-method/blob/master/docs/spec/trustbloc-did-method.md" + }, + { + "name": "trx", + "status": "registered", + "verifiableDataRegistry": "TRON", + "contactName": "Ontology Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ontology-tech/DID-method-specs/blob/master/did-trx/DID-Method-trx.md" + }, + { + "name": "ttm", + "status": "registered", + "verifiableDataRegistry": "TMChain", + "contactName": "Token.TM", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/TokenTM/TM-DID/blob/master/docs/en/DID_spec.md" + }, + { + "name": "twit", + "status": "registered", + "verifiableDataRegistry": "Twit", + "contactName": "DID Twit GitHub", + "contactEmail": "", + "contactWebsite": "https://github.com/did-twit/did-twit/blob/master/spec/index.md", + "specification": "https://did-twit.github.io/did-twit/" + }, + { + "name": "tyron", + "status": "registered", + "verifiableDataRegistry": "Zilliqa", + "contactName": "Julio Cabrapan Duarte", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://www.tyronzil.com" + }, + { + "name": "tys", + "status": "registered", + "verifiableDataRegistry": "DID Specification", + "contactName": "Chainyard", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/chainyard-tys/tys/blob/master/README.md" + }, + { + "name": "tz", + "status": "registered", + "verifiableDataRegistry": "Tezos", + "contactName": "Spruce Systems, Inc.", + "contactEmail": "", + "contactWebsite": "https://spruceid.com", + "specification": "https://did-tezos.spruceid.com" + }, + { + "name": "unik", + "status": "registered", + "verifiableDataRegistry": "uns.network", + "contactName": "Space Elephant SAS", + "contactEmail": "", + "contactWebsite": "https://www.spacelephant.org/", + "specification": "https://github.com/unik-name/did-method-spec/blob/main/did-unik/UNIK-DID-Specification.md" + }, + { + "name": "unisot", + "status": "registered", + "verifiableDataRegistry": "Bitcoin SV", + "contactName": "UNISOT AS", + "contactEmail": "", + "contactWebsite": "https://www.unisot.com", + "specification": "https://gitlab.com/unisot-did/unisot-did-method-specification" + }, + { + "name": "unitrust", + "status": "registered", + "specification": "https://github.com/sheca-bc/did-unitrust-specification/blob/main/README.md", + "contactName": "Shanghai Electronic Certification Authority Co., Ltd.", + "contactEmail": "wangzhitao@sheca.com", + "contactWebsite": "https://www.sheca.com/", + "verifiableDataRegistry": "Shanghai Identity Chain" + }, + { + "name": "uns", + "status": "registered", + "verifiableDataRegistry": "uns.network", + "contactName": "Space Elephant SAS", + "contactEmail": "", + "contactWebsite": "https://www.spacelephant.org/", + "specification": "https://github.com/unik-name/did-method-spec/blob/main/did-uns/UNS-DID-Specification.md" + }, + { + "name": "uport", + "status": "deprecated", + "verifiableDataRegistry": "Ethereum", + "contactName": "uPort", + "contactEmail": "", + "contactWebsite": "", + "specification": "" + }, + { + "name": "v1", + "status": "registered", + "verifiableDataRegistry": "Veres One DLT", + "contactName": "Veres One Maintainer (Digital Bazaar)", + "contactEmail": "maintainer@veres.one", + "contactWebsite": "https://veres.one/", + "specification": "https://w3c-ccg.github.io/did-method-v1/" + }, + { + "name": "vaa", + "status": "registered", + "verifiableDataRegistry": "bif", + "contactName": "China Academy of Information and Communications Technology (CAICT)", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/caict-develop-zhangbo/vaa-method/blob/master/README.md" + }, + { + "name": "valyu", + "status": "registered", + "specification": "https://github.com/valyu-network/valyu-did/blob/main/Valyu-DID-Method.md", + "contactName": "Valyu Network LTD", + "contactEmail": "contact@valyu.network", + "contactWebsite": "https://www.valyu.network" + }, + { + "name": "vaultie", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Vaultie Inc.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/vaultie/vaultie-did-method/blob/master/vaultie-did-method-specification.md" + }, + { + "name": "vertu", + "status": "registered", + "verifiableDataRegistry": "VERTU", + "contactName": "V2", + "contactEmail": "bigui.yin@vertu.com", + "contactWebsite": "", + "specification": "http://did.vertu.com/spec/" + }, + { + "name": "vid", + "status": "registered", + "verifiableDataRegistry": "VP", + "contactName": "VP Inc.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/vpayment/did-method-spec/blob/master/vid.md" + }, + { + "name": "vivid", + "status": "registered", + "verifiableDataRegistry": "NEO2, NEO3, Zilliqa", + "contactName": "Vivid", + "contactEmail": "", + "contactWebsite": "https://getviv.id/", + "specification": "https://github.com/Moonlight-io/specs/blob/master/did-method-spec.md" + }, + { + "name": "vtid", + "status": "registered", + "verifiableDataRegistry": "", + "contactName": "JianKong", + "contactEmail": "806916678@qq.com", + "contactWebsite": "", + "specification": "http://my-did.vertu.com/spec/" + }, + { + "name": "vvo", + "status": "registered", + "verifiableDataRegistry": "Vivvo", + "contactName": "Vivvo Application Studios", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://vivvo.github.io/vivvo-did-scheme/spec/did-method-spec-template.html" + }, + { + "name": "web", + "status": "registered", + "verifiableDataRegistry": "Web", + "contactName": "Oliver Terbu, Mike Xu, Dmitri Zagidulin, Amy Guy", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/w3c-ccg/did-method-web" + }, + { + "name": "web7", + "status": "registered", + "verifiableDataRegistry": "Web 7.0 Foundation", + "contactName": "Web 7.0 Foundation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/Web7Foundation/Specifications/blob/main/methods/did-web7-1-0-1.md" + }, + { + "name": "webs", + "status": "registered", + "specification": "https://trustoverip.github.io/tswg-did-method-webs-specification/", + "contactName": "Trust over IP (ToIP) DID Method webs Task Force", + "contactEmail": "technology-stack-wg@lists.trustoverip.org", + "contactWebsite": "https://wiki.trustoverip.org/display/HOME/DID+Method+webs+Task+Force", + "verifiableDataRegistry": "Web, and Key Event Receipt Infrastructure (KERI)" + }, + { + "name": "wlk", + "status": "registered", + "verifiableDataRegistry": "Weelink Network", + "contactName": "Weelink", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://weelink-team.github.io/weelink/DIDDesignEn" + }, + { + "name": "work", + "status": "registered", + "verifiableDataRegistry": "Hyperledger Fabric", + "contactName": "Workday, Inc.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://workday.github.io/work-did-method-spec/" + }, + { + "name": "yourd", + "status": "registered", + "verifiableDataRegistry": "YourD compatible chains", + "contactName": "YourD", + "contactEmail": "", + "contactWebsite": "https://www.yourd.xyz/", + "specification": "https://github.com/DataSovereignty-YourD/YourD-did-sepcification" + }, + { + "name": "zk", + "status": "registered", + "verifiableDataRegistry": "Arweave", + "contactName": "zCloak Network Research", + "contactEmail": "info@zcloak.network", + "contactWebsite": "https://zcloak.network/#/", + "specification": "https://github.com/zCloak-Network/zk-did-method-specs" + }, + { + "name": "zkme", + "status": "registered", + "verifiableDataRegistry": "EVM compatible chains. Primary on Polygon", + "contactName": "zkMe", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/zkMeLabs/zkme-did-method-spec" + } +] \ No newline at end of file diff --git a/methods/indy.json b/methods/indy.json new file mode 100644 index 00000000..dded525f --- /dev/null +++ b/methods/indy.json @@ -0,0 +1,9 @@ +{ + "name": "indy", + "status": "registered", + "verifiableDataRegistry": "Any Hyperledger Indy Ledger", + "contactName": "Stephen Curran", + "contactEmail": "swcurran@cloudcompass.ca", + "contactWebsite": "", + "specification": "https://hyperledger.github.io/indy-did-method/" +} diff --git a/methods/infra.json b/methods/infra.json new file mode 100644 index 00000000..e2fa0d12 --- /dev/null +++ b/methods/infra.json @@ -0,0 +1,9 @@ +{ + "name": "infra", + "status": "registered", + "verifiableDataRegistry": "InfraBlockchain", + "contactName": "Blockchain Labs", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/InfraBlockchain/infra-did-method-specs/blob/main/docs/Infra-DID-method-spec.md" +} \ No newline at end of file diff --git a/methods/io.json b/methods/io.json new file mode 100644 index 00000000..3a9edf6a --- /dev/null +++ b/methods/io.json @@ -0,0 +1,9 @@ +{ + "name": "io", + "status": "registered", + "verifiableDataRegistry": "IoTeX", + "contactName": "IoTeX Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/iotexproject/iotex-did/blob/master/README.md" +} \ No newline at end of file diff --git a/methods/ion.json b/methods/ion.json new file mode 100644 index 00000000..b4b4868b --- /dev/null +++ b/methods/ion.json @@ -0,0 +1,9 @@ +{ + "name": "ion", + "status": "registered", + "verifiableDataRegistry": "Bitcoin", + "contactName": "Various DIF contributors", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/decentralized-identity/ion-did-method" +} \ No newline at end of file diff --git a/methods/iota.json b/methods/iota.json new file mode 100644 index 00000000..119914ef --- /dev/null +++ b/methods/iota.json @@ -0,0 +1,9 @@ +{ + "name": "iota", + "status": "registered", + "verifiableDataRegistry": "IOTA", + "contactName": "IOTA Foundation", + "contactEmail": "", + "contactWebsite": "https://iota.org", + "specification": "https://wiki.iota.org/identity.rs/specs/did/iota_did_method_spec" +} \ No newline at end of file diff --git a/methods/ipid.json b/methods/ipid.json new file mode 100644 index 00000000..26024c46 --- /dev/null +++ b/methods/ipid.json @@ -0,0 +1,9 @@ +{ + "name": "ipid", + "status": "registered", + "verifiableDataRegistry": "IPFS", + "contactName": "TranSendX", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://did-ipid.github.io/ipid-did-method/" +} \ No newline at end of file diff --git a/methods/is.json b/methods/is.json new file mode 100644 index 00000000..0fcebb2a --- /dev/null +++ b/methods/is.json @@ -0,0 +1,9 @@ +{ + "name": "is", + "status": "registered", + "verifiableDataRegistry": "Blockcore", + "contactName": "Blockcore", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/block-core/blockcore-did-method" +} \ No newline at end of file diff --git a/methods/iscc.json b/methods/iscc.json new file mode 100644 index 00000000..a0e030ef --- /dev/null +++ b/methods/iscc.json @@ -0,0 +1,9 @@ +{ + "name": "iscc", + "status": "registered", + "verifiableDataRegistry": "Public Blockchains", + "contactName": "ISCC Foundation", + "contactEmail": "tp@iscc.foundation", + "contactWebsite": "https://iscc.foundation", + "specification": "https://ieps.iscc.codes/iep-0015/" +} diff --git a/methods/itn.json b/methods/itn.json new file mode 100644 index 00000000..ef04daa2 --- /dev/null +++ b/methods/itn.json @@ -0,0 +1,9 @@ +{ + "name": "itn", + "status": "registered", + "specification": "https://github.com/itn-trust/itn-did-spec", + "contactName": "Umed Khudoiberdiev", + "contactEmail": "umed@dlt.mobi", + "contactWebsite": "https://itn.global/", + "verifiableDataRegistry": "Hyperledger Fabric (Private Network) and Arbitrum One" +} \ No newline at end of file diff --git a/methods/iwt.json b/methods/iwt.json new file mode 100644 index 00000000..dcc470c4 --- /dev/null +++ b/methods/iwt.json @@ -0,0 +1,9 @@ +{ + "name": "iwt", + "status": "registered", + "verifiableDataRegistry": "InfoWallet", + "contactName": "Raonsecure", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/infowallet/did_method/blob/master/did_method.md" +} \ No newline at end of file diff --git a/methods/jlinc.json b/methods/jlinc.json new file mode 100644 index 00000000..43649ca3 --- /dev/null +++ b/methods/jlinc.json @@ -0,0 +1,9 @@ +{ + "name": "jlinc", + "status": "registered", + "verifiableDataRegistry": "JLINC Protocol", + "contactName": "Victor Grey", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://did-spec.jlinc.org/" +} \ No newline at end of file diff --git a/methods/jlinx.json b/methods/jlinx.json new file mode 100644 index 00000000..d8d0be83 --- /dev/null +++ b/methods/jlinx.json @@ -0,0 +1,9 @@ +{ + "name": "jlinx", + "status": "registered", + "verifiableDataRegistry": "JLINX Protocol", + "contactName": "Victor Grey", + "contactEmail": "victor@jlinc.com", + "contactWebsite": "", + "specification": "https://didspec.jlinx.io" +} diff --git a/methods/jnctn.json b/methods/jnctn.json new file mode 100644 index 00000000..0d327bd5 --- /dev/null +++ b/methods/jnctn.json @@ -0,0 +1,9 @@ +{ + "name": "jnctn", + "status": "registered", + "verifiableDataRegistry": "Jnctn Network", + "contactName": "Jnctn Limited", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/jnctn/did-method-spec/" +} \ No newline at end of file diff --git a/methods/jolo.json b/methods/jolo.json new file mode 100644 index 00000000..c930d9cc --- /dev/null +++ b/methods/jolo.json @@ -0,0 +1,9 @@ +{ + "name": "jolo", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Jolocom", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/jolocom/jolo-did-method/blob/master/jolocom-did-method-specification.md" +} \ No newline at end of file diff --git a/methods/jwk.json b/methods/jwk.json new file mode 100644 index 00000000..e120de56 --- /dev/null +++ b/methods/jwk.json @@ -0,0 +1,9 @@ +{ + "name": "jwk", + "status": "registered", + "verifiableDataRegistry": "Ledger agnostic", + "contactName": "Jeremie Miller", + "contactEmail": "jeremie.miller@gmail.com", + "contactWebsite": "", + "specification": "https://github.com/quartzjer/did-jwk" +} \ No newline at end of file diff --git a/methods/kaname.json b/methods/kaname.json new file mode 100644 index 00000000..3b2a065b --- /dev/null +++ b/methods/kaname.json @@ -0,0 +1,9 @@ +{ + "name": "kaname", + "status": "registered", + "specification": "https://github.com/KanameProtocol/did-kaname-spec/blob/main/README.md", + "contactName": "", + "contactEmail": "", + "contactWebsite": "https://kaname.io/", + "verifiableDataRegistry": "Any EVM Compatible Blockchains" +} diff --git a/methods/kdid.json b/methods/kdid.json new file mode 100644 index 00000000..72972d7c --- /dev/null +++ b/methods/kdid.json @@ -0,0 +1,9 @@ +{ + "name": "kdid", + "status": "registered", + "specification": "https://github.com/KingdomFintechBJ-BC/kdid/blob/main/doc/en/kdid.md", + "contactName": "KINGDOM FINTECH(BEIJING)CO,LTD.", + "contactEmail": "quklsyb@szkingdom.com", + "contactWebsite": "", + "verifiableDataRegistry": "FISCO BCOS" +} diff --git a/methods/keri.json b/methods/keri.json new file mode 100644 index 00000000..7279308a --- /dev/null +++ b/methods/keri.json @@ -0,0 +1,9 @@ +{ + "name": "keri", + "status": "registered", + "verifiableDataRegistry": "Ledger agnostic", + "contactName": "Dr. Sam Smith, Charles Cunningham, Phil Feairheller", + "contactEmail": "pfeairheller@gmail.com", + "contactWebsite": "", + "specification": "https://weboftrust.github.io/did-keri/" +} \ No newline at end of file diff --git a/methods/key.json b/methods/key.json new file mode 100644 index 00000000..d3ae479a --- /dev/null +++ b/methods/key.json @@ -0,0 +1,9 @@ +{ + "name": "key", + "status": "registered", + "verifiableDataRegistry": "Ledger-independent DID method based on public/private key pairs", + "contactName": "Rick Astley (thank you for your inspiration), Manu Sporny, Dmitri Zagidulin, Dave Longley, Orie Steele", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://w3c-ccg.github.io/did-method-key/" +} \ No newline at end of file diff --git a/methods/kilt.json b/methods/kilt.json new file mode 100644 index 00000000..f1f39097 --- /dev/null +++ b/methods/kilt.json @@ -0,0 +1,9 @@ +{ + "name": "kilt", + "status": "registered", + "specification": "https://github.com/KILTprotocol/specifications/blob/main/docs/did/did-spec.md", + "contactEmail": "devs@kilt.io", + "contactName": "BOTLabs GmbH", + "contactWebsite": "https://www.kilt.io/", + "verifiableDataRegistry": "KILT Blockchain" +} \ No newline at end of file diff --git a/methods/klay.json b/methods/klay.json new file mode 100644 index 00000000..77da1ca7 --- /dev/null +++ b/methods/klay.json @@ -0,0 +1,9 @@ +{ + "name": "klay", + "status": "registered", + "verifiableDataRegistry": "Klaytn", + "contactName": "Ontology Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ontology-tech/DID-method-specs/blob/master/did-klay/DID-Method-klay.md" +} \ No newline at end of file diff --git a/methods/klayr.json b/methods/klayr.json new file mode 100644 index 00000000..1c044b34 --- /dev/null +++ b/methods/klayr.json @@ -0,0 +1,9 @@ +{ + "name": "klayr", + "status": "registered", + "verifiableDataRegistry": "Klayr Sidechain", + "contactName": "Aldo Suhartono Putra", + "contactEmail": "aldhosutra@gmail.com", + "contactWebsite": "https://klayr-did.js.org/", + "specification": "https://github.com/aldhosutra/klayr-did/blob/main/packages/klayr-did-module/docs/did-method-spec.md" +} diff --git a/methods/knox.json b/methods/knox.json new file mode 100644 index 00000000..b017575f --- /dev/null +++ b/methods/knox.json @@ -0,0 +1,9 @@ +{ + "name": "knox", + "status": "registered", + "verifiableDataRegistry": "Knox Networks", + "contactName": "Francis Kim", + "contactEmail": "developers@knox-networks.com", + "contactWebsite": "https://www.knox-networks.com/", + "specification": "https://github.com/knox-networks/knox-did-specification" + } diff --git a/methods/kr.json b/methods/kr.json new file mode 100644 index 00000000..56ca3be3 --- /dev/null +++ b/methods/kr.json @@ -0,0 +1,9 @@ +{ + "name": "kr", + "status": "registered", + "verifiableDataRegistry": "Korea Mobile Identity System", + "contactName": "Ministry of the Interior and Safety, korea", + "contactEmail": "", + "contactWebsite": "https://github.com/identify202020/did-method/blob/main/did_author.md", + "specification": "https://github.com/identify202020/did-method/blob/main/did_kr_method.md" +} \ No newline at end of file diff --git a/methods/kscirc.json b/methods/kscirc.json new file mode 100644 index 00000000..9d126db0 --- /dev/null +++ b/methods/kscirc.json @@ -0,0 +1,9 @@ +{ + "name": "kscirc", + "status": "registered", + "specification": "https://tangy-gallium-b9b.notion.site/DID-Method-Specification-KSChain-7a77664f1eae47769692f4ff2d029fe0", + "contactName": "K4-Security", + "contactEmail": "", + "contactWebsite": "http://www.k4-security.com/", + "verifiableDataRegistry": "KSChain Blockchain" +} \ No newline at end of file diff --git a/methods/lac.json b/methods/lac.json new file mode 100644 index 00000000..8ccdb6f4 --- /dev/null +++ b/methods/lac.json @@ -0,0 +1,9 @@ +{ + "name": "lac", + "status": "registered", + "verifiableDataRegistry": "LACChain Network", + "contactName": "LACChain Alliance", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/lacchain/lacchain-did-registry/blob/master/DID_SPEC.md" +} \ No newline at end of file diff --git a/methods/ldid.json b/methods/ldid.json new file mode 100644 index 00000000..d68bc5a8 --- /dev/null +++ b/methods/ldid.json @@ -0,0 +1,9 @@ +{ + "name": "ldid", + "status": "registered", + "verifiableDataRegistry": "ChainMaker", + "contactName": "Shujin Public Service (Qingdao) Co., Ltd.", + "contactEmail": "blockchain@dcps.top", + "contactWebsite": "", + "specification": "https://github.com/LONGEVITY-DIGITAL/LDID-Method-Specification/blob/main/README.md" +} \ No newline at end of file diff --git a/methods/life.json b/methods/life.json new file mode 100644 index 00000000..406f1f23 --- /dev/null +++ b/methods/life.json @@ -0,0 +1,9 @@ +{ + "name": "life", + "status": "registered", + "verifiableDataRegistry": "RChain", + "contactName": "lifeID Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://lifeid.github.io/did-method-spec/" +} \ No newline at end of file diff --git a/methods/ling.json b/methods/ling.json new file mode 100644 index 00000000..ce1e8979 --- /dev/null +++ b/methods/ling.json @@ -0,0 +1,9 @@ +{ + "name": "ling", + "status": "registered", + "specification": "https://www.notion.so/LING-DID-Method-Specification-7b9d25a62a1849a496890b9ef24e0890", + "contactName": "K4-Security", + "contactEmail": "contact@k4-security.com", + "contactWebsite": "http://www.k4-security.com/", + "verifiableDataRegistry": "LING" +} \ No newline at end of file diff --git a/methods/lit.json b/methods/lit.json new file mode 100644 index 00000000..e607fb91 --- /dev/null +++ b/methods/lit.json @@ -0,0 +1,9 @@ +{ + "name": "lit", + "status": "registered", + "verifiableDataRegistry": "LEDGIS", + "contactName": "IBCT", + "contactEmail": "", + "contactWebsite": "http://en.ibct.kr", + "specification": "https://github.com/ibct-dev/lit-DID/blob/main/docs/did:lit-method-spec_eng_v0.1.0.md" +} \ No newline at end of file diff --git a/methods/m2m.json b/methods/m2m.json new file mode 100644 index 00000000..c5137920 --- /dev/null +++ b/methods/m2m.json @@ -0,0 +1,9 @@ +{ + "name": "m2m", + "status": "registered", + "verifiableDataRegistry": "Hyperledger Indy", + "contactName": "SmartM2M. Co., Ltd", + "contactEmail": "smartm2m@smartm2m.co.kr", + "contactWebsite": "https://www.smartm2m.co.kr/", + "specification": "https://github.com/m2mblockchain/DID-Method-m2m/blob/main/README.md" +} diff --git a/methods/meme.json b/methods/meme.json new file mode 100644 index 00000000..304e27a4 --- /dev/null +++ b/methods/meme.json @@ -0,0 +1,9 @@ +{ + "name": "meme", + "status": "registered", + "verifiableDataRegistry": "IPFS & DNS & HTTP", + "contactName": "DID Meme Maintainers", + "contactEmail": "orie@or13.io", + "contactWebsite": "https://didme.me/", + "specification": "https://or13.github.io/didme.me/did-method-spec" +} diff --git a/methods/mesh.json b/methods/mesh.json new file mode 100644 index 00000000..67291192 --- /dev/null +++ b/methods/mesh.json @@ -0,0 +1,9 @@ +{ + "name": "mesh", + "status": "registered", + "verifiableDataRegistry": "Trusted Digital Web", + "contactName": "Hyperonomy Digital Identity Lab, Parallelspace Corporation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-mesh-1-0-1.md" +} diff --git a/methods/meta.json b/methods/meta.json new file mode 100644 index 00000000..6fcfe4c7 --- /dev/null +++ b/methods/meta.json @@ -0,0 +1,9 @@ +{ + "name": "meta", + "status": "registered", + "verifiableDataRegistry": "Metadium", + "contactName": "Metadium Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/METADIUM/meta-DID/blob/master/doc/DID-method-metadium.md" +} \ No newline at end of file diff --git a/methods/moac.json b/methods/moac.json new file mode 100644 index 00000000..78cc74e9 --- /dev/null +++ b/methods/moac.json @@ -0,0 +1,9 @@ +{ + "name": "moac", + "status": "registered", + "verifiableDataRegistry": "MOAC", + "contactName": "MOAC Blockchain Tech, Inc.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/DavidRicardoWilde/moac-did/blob/master/did-moac-method.md" +} \ No newline at end of file diff --git a/methods/monid.json b/methods/monid.json new file mode 100644 index 00000000..b0cc88b5 --- /dev/null +++ b/methods/monid.json @@ -0,0 +1,9 @@ +{ + "name": "monid", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Min Ju", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://lianxi-tech.github.io/monid/" +} \ No newline at end of file diff --git a/methods/morpheus.json b/methods/morpheus.json new file mode 100644 index 00000000..15f07aaa --- /dev/null +++ b/methods/morpheus.json @@ -0,0 +1,9 @@ +{ + "name": "morpheus", + "status": "registered", + "verifiableDataRegistry": "Hydra", + "contactName": "Internet of People", + "contactEmail": "", + "contactWebsite": "https://iop.global/", + "specification": "https://developer.iop.global/w3c" +} \ No newline at end of file diff --git a/methods/myDiD.json b/methods/myDiD.json new file mode 100644 index 00000000..cf5631c4 --- /dev/null +++ b/methods/myDiD.json @@ -0,0 +1,10 @@ +{ + "name": "myDiD", + "status": "registered", + "specification": "https://github.com/MyDidCom/myDiD_Method", + "contactName": "", + "contactEmail": "contact@mydid.com", + "contactWebsite": "https://mydid.com", + "verifiableDataRegistry": "DID Specification" +} + diff --git a/methods/mydata.json b/methods/mydata.json new file mode 100644 index 00000000..aa6470f4 --- /dev/null +++ b/methods/mydata.json @@ -0,0 +1,9 @@ +{ + "name": "mydata", + "status": "registered", + "verifiableDataRegistry": "iGrant.io", + "contactName": "iGrant.io", + "contactEmail": "", + "contactWebsite": "https://igrant.io/", + "specification": "https://github.com/decentralised-dataexchange/automated-data-agreements/blob/main/docs/did-spec.md" +} \ No newline at end of file diff --git a/methods/near.json b/methods/near.json new file mode 100644 index 00000000..c3823d09 --- /dev/null +++ b/methods/near.json @@ -0,0 +1,9 @@ +{ + "name": "near", + "status": "registered", + "verifiableDataRegistry": "NEAR", + "contactName": "Ontology Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ontology-tech/DID-spec-near/blob/master/NEAR/DID-Method-NEAR.md" +} \ No newline at end of file diff --git a/methods/next.json b/methods/next.json new file mode 100644 index 00000000..f48c8601 --- /dev/null +++ b/methods/next.json @@ -0,0 +1,9 @@ +{ + "name": "next", + "status": "registered", + "verifiableDataRegistry": "Nextme DIDs Network", + "contactName": "Next Labs", + "contactEmail": "did@nextme.one", + "contactWebsite": "https://nextme.one", + "specification": "https://docs.nextme.one/#/DID/NextDID" +} \ No newline at end of file diff --git a/methods/nft.json b/methods/nft.json new file mode 100644 index 00000000..7569afef --- /dev/null +++ b/methods/nft.json @@ -0,0 +1,9 @@ +{ + "name": "nft", + "status": "registered", + "verifiableDataRegistry": "Ceramic Network", + "contactName": "3Box Labs", + "contactEmail": "devs@3box.io", + "contactWebsite": "https://3boxlabs.com/", + "specification": "https://cips.ceramic.network/CIPs/cip-94" +} diff --git a/methods/ns.json b/methods/ns.json new file mode 100644 index 00000000..f138202b --- /dev/null +++ b/methods/ns.json @@ -0,0 +1,9 @@ +{ + "name": "ns", + "status": "registered", + "verifiableDataRegistry": "Web 7.0 Foundation", + "contactName": "Web 7.0 Foundation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "https://didns.directory", + "specification": "https://github.com/Web7Foundation/Specifications/blob/main/methods/did-ns-1-0-1.md" +} diff --git a/methods/nuggets.json b/methods/nuggets.json new file mode 100644 index 00000000..a2565f60 --- /dev/null +++ b/methods/nuggets.json @@ -0,0 +1,9 @@ +{ + "name": "nuggets", + "status": "registered", + "verifiableDataRegistry": "Nuggets Network", + "contactName": "Nuggets Ltd", + "contactEmail": "contact@nuggets.life", + "contactWebsite": "https://nuggets.life", + "specification": "https://github.com/NuggetsLtd/nuggets-did-resolver/blob/master/doc/did-methods/did:nuggets.md" +} diff --git a/methods/nuts.json b/methods/nuts.json new file mode 100644 index 00000000..2da70f69 --- /dev/null +++ b/methods/nuts.json @@ -0,0 +1,9 @@ +{ + "name": "nuts", + "status": "registered", + "verifiableDataRegistry": "Nuts network", + "contactName": "Nuts community", + "contactEmail": "w3c-did-core@nuts.nl", + "contactWebsite": "https://nuts.nl", + "specification": "https://nuts-foundation.gitbook.io/drafts/rfc/rfc006-distributed-registry" +} diff --git a/methods/object.json b/methods/object.json new file mode 100644 index 00000000..1b460a49 --- /dev/null +++ b/methods/object.json @@ -0,0 +1,9 @@ +{ + "name": "object", + "status": "registered", + "verifiableDataRegistry": "Trusted Digital Web", + "contactName": "Hyperonomy Digital Identity Lab, Parallelspace Corporation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-object-1-5-0.md" +} diff --git a/methods/ockam.json b/methods/ockam.json new file mode 100644 index 00000000..89937c4b --- /dev/null +++ b/methods/ockam.json @@ -0,0 +1,9 @@ +{ + "name": "ockam", + "status": "registered", + "verifiableDataRegistry": "Ockam", + "contactName": "Ockam", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ockam-network/did-method-spec/blob/master/README.md" +} \ No newline at end of file diff --git a/methods/omn.json b/methods/omn.json new file mode 100644 index 00000000..730f7dc9 --- /dev/null +++ b/methods/omn.json @@ -0,0 +1,9 @@ +{ + "name": "omn", + "status": "registered", + "verifiableDataRegistry": "OmniOne", + "contactName": "OmniOne", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/OmniOneID/did_method/blob/master/did_method.md" +} \ No newline at end of file diff --git a/methods/onion.json b/methods/onion.json new file mode 100644 index 00000000..97980436 --- /dev/null +++ b/methods/onion.json @@ -0,0 +1,9 @@ +{ + "name": "onion", + "status": "registered", + "verifiableDataRegistry": "Ledger agnostic", + "contactName": "Blockchain Commons", + "contactEmail": "", + "contactWebsite": "https://github.com/BlockchainCommons/did-method-onion", + "specification": "https://blockchaincommons.github.io/did-method-onion/" +} \ No newline at end of file diff --git a/methods/ont.json b/methods/ont.json new file mode 100644 index 00000000..d63110f9 --- /dev/null +++ b/methods/ont.json @@ -0,0 +1,9 @@ +{ + "name": "ont", + "status": "registered", + "verifiableDataRegistry": "Ontology", + "contactName": "Ontology Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ontio/ontology-DID/blob/master/docs/en/DID-ONT-method.md" +} \ No newline at end of file diff --git a/methods/op.json b/methods/op.json new file mode 100644 index 00000000..b20de69e --- /dev/null +++ b/methods/op.json @@ -0,0 +1,9 @@ +{ + "name": "op", + "status": "registered", + "verifiableDataRegistry": "Ocean Protocol", + "contactName": "Ocean Protocol", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/oceanprotocol/OEPs/blob/master/7/v0.2/README.md" +} \ No newline at end of file diff --git a/methods/orb.json b/methods/orb.json new file mode 100644 index 00000000..201bbbd9 --- /dev/null +++ b/methods/orb.json @@ -0,0 +1,9 @@ +{ + "name": "orb", + "status": "registered", + "verifiableDataRegistry": "Ledger agnostic", + "contactName": "Avast", + "contactEmail": "troy.ronda@avast.com", + "contactWebsite": "https://avast.com/", + "specification": "https://trustbloc.github.io/did-method-orb/" +} diff --git a/methods/oyd.json b/methods/oyd.json new file mode 100644 index 00000000..ef0cc536 --- /dev/null +++ b/methods/oyd.json @@ -0,0 +1,9 @@ +{ + "name": "oyd", + "status": "registered", + "verifiableDataRegistry": "Ledger agnostic", + "contactName": "OwnYourData.eu", + "contactEmail": "christoph@ownyourdata.eu", + "contactWebsite": "https://ownyourdata.eu/", + "specification": "https://ownyourdata.github.io/oydid/" +} diff --git a/methods/panacea.json b/methods/panacea.json new file mode 100644 index 00000000..cb07dded --- /dev/null +++ b/methods/panacea.json @@ -0,0 +1,9 @@ +{ + "name": "panacea", + "status": "registered", + "verifiableDataRegistry": "Panacea", + "contactName": "MediBloc", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/medibloc/panacea-core/blob/master/docs/did.md" +} \ No newline at end of file diff --git a/methods/peaq.json b/methods/peaq.json new file mode 100644 index 00000000..22903244 --- /dev/null +++ b/methods/peaq.json @@ -0,0 +1,9 @@ +{ + "name": "peaq", + "status": "registered", + "specification": "https://github.com/peaqnetwork/peaq-did-specifications", + "contactEmail": "info@peaq.network", + "contactName": "Peaq Technology GmbH", + "contactWebsite": "https://www.peaq.network", + "verifiableDataRegistry": "peaq Blockchain" + } diff --git a/methods/peer.json b/methods/peer.json new file mode 100644 index 00000000..5cde033f --- /dev/null +++ b/methods/peer.json @@ -0,0 +1,9 @@ +{ + "name": "peer", + "status": "registered", + "verifiableDataRegistry": "peer", + "contactName": "Daniel Hardman", + "contactEmail": "daniel.hardman@gmail.com", + "contactWebsite": "", + "specification": "https://identity.foundation/peer-did-method-spec/index.html" +} \ No newline at end of file diff --git a/methods/pid.json b/methods/pid.json new file mode 100644 index 00000000..afe3e863 --- /dev/null +++ b/methods/pid.json @@ -0,0 +1,9 @@ +{ + "name": "pid", + "status": "registered", + "verifiableDataRegistry": "ProofID Blockchain", + "contactName": "Alvin Reyes", + "contactEmail": "tech@proofid.me", + "contactWebsite": "https://proofid.me", + "specification": "https://github.com/proof-id/pid-did-driver/blob/main/did-method-specification.md" + } \ No newline at end of file diff --git a/methods/pistis.json b/methods/pistis.json new file mode 100644 index 00000000..ed372eb6 --- /dev/null +++ b/methods/pistis.json @@ -0,0 +1,9 @@ +{ + "name": "pistis", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Andrea Taglia, Matteo Sinico", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/uino95/ssi/blob/consensys/dashboard/server/pistis/pistis-did-resolver/README.md" +} \ No newline at end of file diff --git a/methods/pkh.json b/methods/pkh.json new file mode 100644 index 00000000..1e8d3f27 --- /dev/null +++ b/methods/pkh.json @@ -0,0 +1,9 @@ +{ + "name": "pkh", + "status": "registered", + "verifiableDataRegistry": "Ledger-independent generative DID method based on CAIP-10 keypair expressions", + "contactName": "Wayne Chang, Charles Lehner, Juan Caballero, Joel Thorstensson", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/w3c-ccg/did-pkh/blob/90b28ad3c18d63822a8aab3c752302aa64fc9382/did-pkh-method-draft.md" +} \ No newline at end of file diff --git a/methods/plc.json b/methods/plc.json new file mode 100644 index 00000000..e5b2cc47 --- /dev/null +++ b/methods/plc.json @@ -0,0 +1,9 @@ +{ + "name": "plc", + "status": "registered", + "specification": "https://github.com/bluesky-social/did-method-plc", + "contactName": "Bluesky PBLLC", + "contactEmail": "protocol@blueskyweb.xyz", + "contactWebsite": "https://blueskyweb.xyz/", + "verifiableDataRegistry": "https://plc.directory" +} diff --git a/methods/pml.json b/methods/pml.json new file mode 100644 index 00000000..2397140c --- /dev/null +++ b/methods/pml.json @@ -0,0 +1,9 @@ +{ + "name": "pml", + "status": "registered", + "verifiableDataRegistry": "PML Chain", + "contactName": "Purple Mountain Laboratories", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/PML-ID/pml-did-specs/blob/main/did-method.md" +} \ No newline at end of file diff --git a/methods/polygon.json b/methods/polygon.json new file mode 100644 index 00000000..802a0c6e --- /dev/null +++ b/methods/polygon.json @@ -0,0 +1,9 @@ +{ + "name": "polygon", + "status": "registered", + "verifiableDataRegistry": "Polygon (Previously MATIC)", + "contactName": "AyanWorks, MATIC", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ayanworks/polygon-did-method-spec" +} \ No newline at end of file diff --git a/methods/polygonid.json b/methods/polygonid.json new file mode 100644 index 00000000..a363c66c --- /dev/null +++ b/methods/polygonid.json @@ -0,0 +1,9 @@ +{ + "name": "polygonid", + "status": "registered", + "verifiableDataRegistry": "EVM compatible chains", + "contactName": "ZK ID Labs AG, Polygon ID", + "contactEmail": "", + "contactWebsite": "https://www.polygonid.com/", + "specification": "https://github.com/0xPolygonID/did-polygonid" +} diff --git a/methods/prism.json b/methods/prism.json new file mode 100644 index 00000000..911c9765 --- /dev/null +++ b/methods/prism.json @@ -0,0 +1,9 @@ +{ + "name": "prism", + "status": "registered", + "specification": "https://github.com/input-output-hk/prism-did-method-spec/blob/main/w3c-spec/PRISM-method.md", + "contactName": "Input Output Global Inc (IOG)", + "contactEmail": "security-atala@iohk.io", + "contactWebsite": "https://iohk.io/", + "verifiableDataRegistry": "The Cardano blockchain" +} diff --git a/methods/psi.json b/methods/psi.json new file mode 100644 index 00000000..800721db --- /dev/null +++ b/methods/psi.json @@ -0,0 +1,9 @@ +{ + "name": "psi", + "status": "registered", + "verifiableDataRegistry": "LEDGIS", + "contactName": "Police Science Institution", + "contactEmail": "", + "contactWebsite": "https://www.psi.go.kr/", + "specification": "https://github.com/didpsi/psi-DID/blob/main/docs/did:psi-method-spec_eng.md" +} diff --git a/methods/psqr.json b/methods/psqr.json new file mode 100644 index 00000000..2260a8f2 --- /dev/null +++ b/methods/psqr.json @@ -0,0 +1,9 @@ +{ + "name": "psqr", + "status": "registered", + "verifiableDataRegistry": "Public Square", + "contactName": "Christian Gribneau", + "contactEmail": "protocol@vpsqr.com", + "contactWebsite": "https://vpsqr.com", + "specification": "https://vpsqr.com/did-method-psqr/v1/" +} diff --git a/methods/ptn.json b/methods/ptn.json new file mode 100644 index 00000000..6c3d338f --- /dev/null +++ b/methods/ptn.json @@ -0,0 +1,9 @@ +{ + "name": "ptn", + "status": "registered", + "verifiableDataRegistry": "PalletOne", + "contactName": "PalletOne", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/palletone/palletone-DID/blob/master/docs/did-method/README.md" +} \ No newline at end of file diff --git a/methods/qes.json b/methods/qes.json new file mode 100644 index 00000000..5db5c9a3 --- /dev/null +++ b/methods/qes.json @@ -0,0 +1,9 @@ +{ + "name": "qes", + "status": "registered", + "verifiableDataRegistry": "QES", + "contactName": "IDnow GmbH", + "contactEmail": "sebastian.elfors@idnow.de", + "contactWebsite": "https://www.idnow.io/", + "specification": "https://github.com/idnow/de.idnow.qes.did.method.specification" +} diff --git a/methods/qui.json b/methods/qui.json new file mode 100644 index 00000000..dfdaf6ab --- /dev/null +++ b/methods/qui.json @@ -0,0 +1,9 @@ +{ + "name": "qui", + "status": "registered", + "verifiableDataRegistry": "Qui", + "contactName": "Hyperonomy Digital Identity Lab, Parallelspace Corporation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/mwherman2000/TrustedDigitalWeb/blob/master/specifications/did-methods/did-qui-1-0-0.md" +} diff --git a/methods/ray.json b/methods/ray.json new file mode 100644 index 00000000..c05dca18 --- /dev/null +++ b/methods/ray.json @@ -0,0 +1,9 @@ +{ + "name": "ray", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Ray Peng", + "contactEmail": "275400726@qq.com", + "contactWebsite": "", + "specification": "https://github.com/pcrui/did-spec/blob/main/README.md" +} diff --git a/methods/real.json b/methods/real.json new file mode 100644 index 00000000..a6891fa9 --- /dev/null +++ b/methods/real.json @@ -0,0 +1,9 @@ +{ + "name": "real", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Real Items", + "contactEmail": "rocky@realitems.io", + "contactWebsite": "https://realitems.io", + "specification": "https://github.com/realitems/did-real/blob/main/did-real-method-specification.md" +} diff --git a/methods/resume.json b/methods/resume.json new file mode 100644 index 00000000..6e5a63e0 --- /dev/null +++ b/methods/resume.json @@ -0,0 +1,9 @@ +{ + "name": "resume", + "status": "registered", + "specification": "https://github.com/realmatterio/Resume-DID-Method/", + "contactName": "Ming-lam Ng with Real Matter Technology and Talent Connect", + "contactEmail": "mn@realmatter.io", + "contactWebsite": "https://realmatter.io", + "verifiableDataRegistry": "Resume DID Method and Protocol" +} diff --git a/methods/rm.json b/methods/rm.json new file mode 100644 index 00000000..cb7ff023 --- /dev/null +++ b/methods/rm.json @@ -0,0 +1,9 @@ +{ + "name": "rm", + "status": "registered", + "specification": "https://github.com/realmatterio/RealMatter-DID-Method", + "contactName": "Ming-lam Ng (RealMatter)", + "contactEmail": "mn@realmatter.io", + "contactWebsite": "realmatter.io", + "verifiableDataRegistry": "Real-world Asset Tokenization DID Method" +} diff --git a/methods/safe.json b/methods/safe.json new file mode 100644 index 00000000..ec7ad996 --- /dev/null +++ b/methods/safe.json @@ -0,0 +1,9 @@ +{ + "name": "safe", + "status": "registered", + "verifiableDataRegistry": "Safe", + "contactName": "Safe Ecosystem Foundation", + "contactEmail": "info@safe.global", + "contactWebsite": "https://safe.global", + "specification": "https://cips.ceramic.network/CIPs/cip-101" +} diff --git a/methods/san.json b/methods/san.json new file mode 100644 index 00000000..1b12cb9a --- /dev/null +++ b/methods/san.json @@ -0,0 +1,9 @@ +{ + "name": "san", + "status": "registered", + "verifiableDataRegistry": "SAN Cloudchain", + "contactName": "YLZ Inc.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/Baasze/DID-method-specification" +} \ No newline at end of file diff --git a/methods/schema.json b/methods/schema.json new file mode 100644 index 00000000..bd14d803 --- /dev/null +++ b/methods/schema.json @@ -0,0 +1,9 @@ +{ + "name": "schema", + "status": "registered", + "verifiableDataRegistry": "Multiple storage networks, currently public IPFS and evan.network IPFS", + "contactName": "51nodes GmbH", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/51nodes/schema-registry-did-method/blob/master/README.md" +} \ No newline at end of file diff --git a/methods/scid.json b/methods/scid.json new file mode 100644 index 00000000..e68e027f --- /dev/null +++ b/methods/scid.json @@ -0,0 +1,9 @@ +{ + "name": "scid", + "status": "registered", + "verifiableDataRegistry": "StraitsChain", + "contactName": "Lorna", + "contactEmail": "lornayang@straitschain.com", + "contactWebsite": "https://straitschain.com/", + "specification": "https://github.com/StraitsChain/SCID/blob/main/README.md" +} diff --git a/methods/self.json b/methods/self.json new file mode 100644 index 00000000..4f0a132f --- /dev/null +++ b/methods/self.json @@ -0,0 +1,9 @@ +{ + "name": "self", + "status": "registered", + "specification": "https://github.com/excid-io/did-self", + "contactName": "Nikos Fotiou", + "contactEmail": "fotiou@excid.io", + "contactWebsite": "https://www.excid.io", + "verifiableDataRegistry": "Ledger agnostic" + } \ No newline at end of file diff --git a/methods/selfkey.json b/methods/selfkey.json new file mode 100644 index 00000000..591d9309 --- /dev/null +++ b/methods/selfkey.json @@ -0,0 +1,9 @@ +{ + "name": "selfkey", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "SelfKey", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/SelfKeyFoundation/selfkey-identity/blob/develop/DIDMethodSpecs.md" +} \ No newline at end of file diff --git a/methods/sideos.json b/methods/sideos.json new file mode 100644 index 00000000..43d59271 --- /dev/null +++ b/methods/sideos.json @@ -0,0 +1,9 @@ +{ + "name": "sideos", + "status": "registered", + "verifiableDataRegistry": "Ledger agnostic", + "contactName": "sideos GmbH", + "contactEmail": "", + "contactWebsite": "https://sideos.io", + "specification": "https://github.com/sideos/sideos-did-method" +} \ No newline at end of file diff --git a/methods/signor.json b/methods/signor.json new file mode 100644 index 00000000..88bcdc6f --- /dev/null +++ b/methods/signor.json @@ -0,0 +1,9 @@ +{ + "name": "signor", + "status": "registered", + "verifiableDataRegistry": "Ethereum, Hedera Hashgraph, Quorum, Hyperledger Besu", + "contactName": "Cryptonics", + "contactEmail": "", + "contactWebsite": "https://cryptonics.consulting/", + "specification": "https://github.com/cryptonicsconsulting/signor-did-contracts/blob/master/did-method-spec.md" +} \ No newline at end of file diff --git a/methods/sirius.json b/methods/sirius.json new file mode 100644 index 00000000..6e3fba3a --- /dev/null +++ b/methods/sirius.json @@ -0,0 +1,9 @@ +{ + "name": "sirius", + "status": "registered", + "verifiableDataRegistry": "ProximaX Sirius Chain", + "contactName": "ProximaX Singapore Pte. Ltd.", + "contactEmail": "", + "contactWebsite": "https://www.proximax.ltd", + "specification": "https://gitlab.com/proximax-enterprise/siriusid/sirius-id-specs/-/blob/master/docs/did-method-spec.md" +} \ No newline at end of file diff --git a/methods/snail.json b/methods/snail.json new file mode 100644 index 00000000..e3170369 --- /dev/null +++ b/methods/snail.json @@ -0,0 +1,9 @@ +{ + "name": "snail", + "status": "registered", + "verifiableDataRegistry": "Penpal network", + "contactName": "Amy Guy, Dmitri Zagidulin", + "contactEmail": "amy@rhiaro.co.uk", + "contactWebsite": "", + "specification": "https://🐌.amy.gy/" +} \ No newline at end of file diff --git a/methods/snplab.json b/methods/snplab.json new file mode 100644 index 00000000..d34c22c2 --- /dev/null +++ b/methods/snplab.json @@ -0,0 +1,9 @@ +{ + "name": "snplab", + "status": "registered", + "specification": "https://github.com/snplab-io/snplab-did-method/blob/main/snplab-did-method-spec.md", + "contactName": "SNPLab Inc.", + "contactEmail": "hellodata@snplab.io", + "contactWebsite": "https://www.snplab.io", + "verifiableDataRegistry": "SNPLab MyD Network" +} diff --git a/methods/sol.json b/methods/sol.json new file mode 100644 index 00000000..7862feb8 --- /dev/null +++ b/methods/sol.json @@ -0,0 +1,9 @@ +{ + "name": "sol", + "status": "registered", + "verifiableDataRegistry": "Solana", + "contactName": "Identity.com", + "contactEmail": "contact@identity.org", + "contactWebsite": "https://identity.com/contact-us", + "specification": "https://g.identity.com/sol-did/" +} diff --git a/methods/sov.json b/methods/sov.json new file mode 100644 index 00000000..70254b1f --- /dev/null +++ b/methods/sov.json @@ -0,0 +1,9 @@ +{ + "name": "sov", + "status": "registered", + "verifiableDataRegistry": "Sovrin", + "contactName": "Mike Lodder", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://sovrin-foundation.github.io/sovrin/spec/did-method-spec-template.html" +} \ No newline at end of file diff --git a/methods/ssb.json b/methods/ssb.json new file mode 100644 index 00000000..86fd1139 --- /dev/null +++ b/methods/ssb.json @@ -0,0 +1,9 @@ +{ + "name": "ssb", + "status": "registered", + "verifiableDataRegistry": "Secure Scuttlebutt", + "contactName": "Charles E. Lehner", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://viewer.scuttlebot.io/&5Bne/slGKH/i1361qemVlNBElWInSUfntlWvMXaD4M4=.sha256?hl=zQmdh4Ya6WasmjnS4UMn5ot6k5tbCypy1oyhhdJ6yB6MjfT" +} \ No newline at end of file diff --git a/methods/ssw.json b/methods/ssw.json new file mode 100644 index 00000000..2f4c2630 --- /dev/null +++ b/methods/ssw.json @@ -0,0 +1,9 @@ +{ + "name": "ssw", + "status": "registered", + "verifiableDataRegistry": "Initial Network", + "contactName": "SK telecom", + "contactEmail": "", + "contactWebsite": "https://www.sktelecom.com/index_en.html", + "specification": "https://sktston.github.io/ssw-did/did-method-spec.html" +} \ No newline at end of file diff --git a/methods/stack.json b/methods/stack.json new file mode 100644 index 00000000..4063490a --- /dev/null +++ b/methods/stack.json @@ -0,0 +1,9 @@ +{ + "name": "stack", + "status": "registered", + "verifiableDataRegistry": "Bitcoin", + "contactName": "Jude Nelson", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/blockstack/blockstack-core/blob/stacks-1.0/docs/blockstack-did-spec.md" +} \ No newline at end of file diff --git a/methods/tangle.json b/methods/tangle.json new file mode 100644 index 00000000..854fafd6 --- /dev/null +++ b/methods/tangle.json @@ -0,0 +1,9 @@ +{ + "name": "tangle", + "status": "deprecated", + "verifiableDataRegistry": "IOTA Tangle", + "contactName": "BiiLabs Co., Ltd.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/TangleID/TangleID/blob/develop/did-method-spec.md" +} diff --git a/methods/tdid.json b/methods/tdid.json new file mode 100644 index 00000000..2fa3a436 --- /dev/null +++ b/methods/tdid.json @@ -0,0 +1,9 @@ +{ + "name": "tdid", + "status": "registered", + "verifiableDataRegistry": "FISCO BCOS", + "contactName": "Tencent Technology (Shenzhen) Co.Ltd", + "contactEmail": "shuangclhan@tencent.com", + "contactWebsite": "https://cloud.tencent.com/product/tdid", + "specification": "https://github.com/TencentCloud-Blockchain/TDID-Method-Specification/blob/main/README.md" +} diff --git a/methods/theseries.json b/methods/theseries.json new file mode 100644 index 00000000..b5e49f51 --- /dev/null +++ b/methods/theseries.json @@ -0,0 +1,9 @@ +{ + "name": "theseries", + "status": "registered", + "specification": "https://github.com/theseriesteam/tsid-method/blob/main/ts-did-method-specification.md", + "contactName": "Hang Hang", + "contactEmail": "hanghang.dev@gmail.com", + "contactWebsite": "", + "verifiableDataRegistry": "IPFS" +} diff --git a/methods/ti.json b/methods/ti.json new file mode 100644 index 00000000..aee5b773 --- /dev/null +++ b/methods/ti.json @@ -0,0 +1,9 @@ +{ + "name": "ti", + "status": "registered", + "specification": "https://github.com/HTiBRI/TiDID-Method-Specification/blob/main/README.md", + "contactName": "Hunan tianhe Guoyun Technology Co.Ltd", + "contactEmail": "yangangao@tianhecloud.com", + "contactWebsite": "https://tianhecloud.com/", + "verifiableDataRegistry": "TiChain" +} diff --git a/methods/tls.json b/methods/tls.json new file mode 100644 index 00000000..0bdee6b3 --- /dev/null +++ b/methods/tls.json @@ -0,0 +1,9 @@ +{ + "name": "tls", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Ulrich Gallersdörfer, Kilian Käslin", + "contactEmail": "", + "contactWebsite": "", + "specification": "" +} \ No newline at end of file diff --git a/methods/trust.json b/methods/trust.json new file mode 100644 index 00000000..b65a8277 --- /dev/null +++ b/methods/trust.json @@ -0,0 +1,9 @@ +{ + "name": "trust", + "status": "registered", + "verifiableDataRegistry": "TrustChain", + "contactName": "TrustCerts GmbH", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/trustcerts/did-trust-method/blob/main/README.md" +} \ No newline at end of file diff --git a/methods/trustbloc.json b/methods/trustbloc.json new file mode 100644 index 00000000..40b48a2a --- /dev/null +++ b/methods/trustbloc.json @@ -0,0 +1,9 @@ +{ + "name": "trustbloc", + "status": "registered", + "verifiableDataRegistry": "Hyperledger Fabric", + "contactName": "SecureKey", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/trustbloc/trustbloc-did-method/blob/master/docs/spec/trustbloc-did-method.md" +} \ No newline at end of file diff --git a/methods/trx.json b/methods/trx.json new file mode 100644 index 00000000..21299841 --- /dev/null +++ b/methods/trx.json @@ -0,0 +1,9 @@ +{ + "name": "trx", + "status": "registered", + "verifiableDataRegistry": "TRON", + "contactName": "Ontology Foundation", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/ontology-tech/DID-method-specs/blob/master/did-trx/DID-Method-trx.md" +} \ No newline at end of file diff --git a/methods/ttm.json b/methods/ttm.json new file mode 100644 index 00000000..44c6e137 --- /dev/null +++ b/methods/ttm.json @@ -0,0 +1,9 @@ +{ + "name": "ttm", + "status": "registered", + "verifiableDataRegistry": "TMChain", + "contactName": "Token.TM", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/TokenTM/TM-DID/blob/master/docs/en/DID_spec.md" +} \ No newline at end of file diff --git a/methods/twit.json b/methods/twit.json new file mode 100644 index 00000000..b61fa62b --- /dev/null +++ b/methods/twit.json @@ -0,0 +1,9 @@ +{ + "name": "twit", + "status": "registered", + "verifiableDataRegistry": "Twit", + "contactName": "DID Twit GitHub", + "contactEmail": "", + "contactWebsite": "https://github.com/did-twit/did-twit/blob/master/spec/index.md", + "specification": "https://did-twit.github.io/did-twit/" +} \ No newline at end of file diff --git a/methods/tyron.json b/methods/tyron.json new file mode 100644 index 00000000..d2dae29c --- /dev/null +++ b/methods/tyron.json @@ -0,0 +1,9 @@ +{ + "name": "tyron", + "status": "registered", + "verifiableDataRegistry": "Zilliqa", + "contactName": "Julio Cabrapan Duarte", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://www.tyronzil.com" +} \ No newline at end of file diff --git a/methods/tys.json b/methods/tys.json new file mode 100644 index 00000000..c8864295 --- /dev/null +++ b/methods/tys.json @@ -0,0 +1,9 @@ +{ + "name": "tys", + "status": "registered", + "verifiableDataRegistry": "DID Specification", + "contactName": "Chainyard", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/chainyard-tys/tys/blob/master/README.md" +} \ No newline at end of file diff --git a/methods/tz.json b/methods/tz.json new file mode 100644 index 00000000..31ff7a9d --- /dev/null +++ b/methods/tz.json @@ -0,0 +1,9 @@ +{ + "name": "tz", + "status": "registered", + "verifiableDataRegistry": "Tezos", + "contactName": "Spruce Systems, Inc.", + "contactEmail": "", + "contactWebsite": "https://spruceid.com", + "specification": "https://did-tezos.spruceid.com" +} \ No newline at end of file diff --git a/methods/unik.json b/methods/unik.json new file mode 100644 index 00000000..349c161f --- /dev/null +++ b/methods/unik.json @@ -0,0 +1,9 @@ +{ + "name": "unik", + "status": "registered", + "verifiableDataRegistry": "uns.network", + "contactName": "Space Elephant SAS", + "contactEmail": "", + "contactWebsite": "https://www.spacelephant.org/", + "specification": "https://github.com/unik-name/did-method-spec/blob/main/did-unik/UNIK-DID-Specification.md" +} \ No newline at end of file diff --git a/methods/unisot.json b/methods/unisot.json new file mode 100644 index 00000000..e895c7d7 --- /dev/null +++ b/methods/unisot.json @@ -0,0 +1,9 @@ +{ + "name": "unisot", + "status": "registered", + "verifiableDataRegistry": "Bitcoin SV", + "contactName": "UNISOT AS", + "contactEmail": "", + "contactWebsite": "https://www.unisot.com", + "specification": "https://gitlab.com/unisot-did/unisot-did-method-specification" +} \ No newline at end of file diff --git a/methods/unitrust.json b/methods/unitrust.json new file mode 100644 index 00000000..02f9a4a6 --- /dev/null +++ b/methods/unitrust.json @@ -0,0 +1,9 @@ +{ + "name": "unitrust", + "status": "registered", + "specification": "https://github.com/sheca-bc/did-unitrust-specification/blob/main/README.md", + "contactName": "Shanghai Electronic Certification Authority Co., Ltd.", + "contactEmail": "wangzhitao@sheca.com", + "contactWebsite": "https://www.sheca.com/", + "verifiableDataRegistry": "Shanghai Identity Chain" +} \ No newline at end of file diff --git a/methods/uns.json b/methods/uns.json new file mode 100644 index 00000000..c7d94f88 --- /dev/null +++ b/methods/uns.json @@ -0,0 +1,9 @@ +{ + "name": "uns", + "status": "registered", + "verifiableDataRegistry": "uns.network", + "contactName": "Space Elephant SAS", + "contactEmail": "", + "contactWebsite": "https://www.spacelephant.org/", + "specification": "https://github.com/unik-name/did-method-spec/blob/main/did-uns/UNS-DID-Specification.md" +} \ No newline at end of file diff --git a/methods/uport.json b/methods/uport.json new file mode 100644 index 00000000..facc1381 --- /dev/null +++ b/methods/uport.json @@ -0,0 +1,9 @@ +{ + "name": "uport", + "status": "deprecated", + "verifiableDataRegistry": "Ethereum", + "contactName": "uPort", + "contactEmail": "", + "contactWebsite": "", + "specification": "" +} \ No newline at end of file diff --git a/methods/v1.json b/methods/v1.json new file mode 100644 index 00000000..1c7edaab --- /dev/null +++ b/methods/v1.json @@ -0,0 +1,9 @@ +{ + "name": "v1", + "status": "registered", + "verifiableDataRegistry": "Veres One DLT", + "contactName": "Veres One Maintainer (Digital Bazaar)", + "contactEmail": "maintainer@veres.one", + "contactWebsite": "https://veres.one/", + "specification": "https://w3c-ccg.github.io/did-method-v1/" +} diff --git a/methods/vaa.json b/methods/vaa.json new file mode 100644 index 00000000..c0a99c36 --- /dev/null +++ b/methods/vaa.json @@ -0,0 +1,9 @@ +{ + "name": "vaa", + "status": "registered", + "verifiableDataRegistry": "bif", + "contactName": "China Academy of Information and Communications Technology (CAICT)", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/caict-develop-zhangbo/vaa-method/blob/master/README.md" +} \ No newline at end of file diff --git a/methods/valyu.json b/methods/valyu.json new file mode 100644 index 00000000..abdc8e34 --- /dev/null +++ b/methods/valyu.json @@ -0,0 +1,8 @@ +{ + "name": "valyu", + "status": "registered", + "specification": "https://github.com/valyu-network/valyu-did/blob/main/Valyu-DID-Method.md", + "contactName": "Valyu Network LTD", + "contactEmail": "contact@valyu.network", + "contactWebsite": "https://www.valyu.network" +} diff --git a/methods/vaultie.json b/methods/vaultie.json new file mode 100644 index 00000000..9d4538f5 --- /dev/null +++ b/methods/vaultie.json @@ -0,0 +1,9 @@ +{ + "name": "vaultie", + "status": "registered", + "verifiableDataRegistry": "Ethereum", + "contactName": "Vaultie Inc.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/vaultie/vaultie-did-method/blob/master/vaultie-did-method-specification.md" +} \ No newline at end of file diff --git a/methods/vertu.json b/methods/vertu.json new file mode 100644 index 00000000..7b1d62d2 --- /dev/null +++ b/methods/vertu.json @@ -0,0 +1,9 @@ +{ + "name": "vertu", + "status": "registered", + "verifiableDataRegistry": "VERTU", + "contactName": "V2", + "contactEmail": "bigui.yin@vertu.com", + "contactWebsite": "", + "specification": "http://did.vertu.com/spec/" +} diff --git a/methods/vid.json b/methods/vid.json new file mode 100644 index 00000000..397613e2 --- /dev/null +++ b/methods/vid.json @@ -0,0 +1,9 @@ +{ + "name": "vid", + "status": "registered", + "verifiableDataRegistry": "VP", + "contactName": "VP Inc.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/vpayment/did-method-spec/blob/master/vid.md" +} \ No newline at end of file diff --git a/methods/vivid.json b/methods/vivid.json new file mode 100644 index 00000000..a9db6a62 --- /dev/null +++ b/methods/vivid.json @@ -0,0 +1,9 @@ +{ + "name": "vivid", + "status": "registered", + "verifiableDataRegistry": "NEO2, NEO3, Zilliqa", + "contactName": "Vivid", + "contactEmail": "", + "contactWebsite": "https://getviv.id/", + "specification": "https://github.com/Moonlight-io/specs/blob/master/did-method-spec.md" +} \ No newline at end of file diff --git a/methods/vtid.json b/methods/vtid.json new file mode 100644 index 00000000..46f89991 --- /dev/null +++ b/methods/vtid.json @@ -0,0 +1,9 @@ +{ + "name": "vtid", + "status": "registered", + "verifiableDataRegistry": "", + "contactName": "JianKong", + "contactEmail": "806916678@qq.com", + "contactWebsite": "", + "specification": "http://my-did.vertu.com/spec/" +} diff --git a/methods/vvo.json b/methods/vvo.json new file mode 100644 index 00000000..fb0ea0bb --- /dev/null +++ b/methods/vvo.json @@ -0,0 +1,9 @@ +{ + "name": "vvo", + "status": "registered", + "verifiableDataRegistry": "Vivvo", + "contactName": "Vivvo Application Studios", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://vivvo.github.io/vivvo-did-scheme/spec/did-method-spec-template.html" +} \ No newline at end of file diff --git a/methods/web.json b/methods/web.json new file mode 100644 index 00000000..f39d10f2 --- /dev/null +++ b/methods/web.json @@ -0,0 +1,9 @@ +{ + "name": "web", + "status": "registered", + "verifiableDataRegistry": "Web", + "contactName": "Oliver Terbu, Mike Xu, Dmitri Zagidulin, Amy Guy", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/w3c-ccg/did-method-web" +} \ No newline at end of file diff --git a/methods/web7.json b/methods/web7.json new file mode 100644 index 00000000..f6d3e9de --- /dev/null +++ b/methods/web7.json @@ -0,0 +1,9 @@ +{ + "name": "web7", + "status": "registered", + "verifiableDataRegistry": "Web 7.0 Foundation", + "contactName": "Web 7.0 Foundation", + "contactEmail": "mwherman@parallelspace.net", + "contactWebsite": "http://hyperonomy.com", + "specification": "https://github.com/Web7Foundation/Specifications/blob/main/methods/did-web7-1-0-1.md" +} diff --git a/methods/webs.json b/methods/webs.json new file mode 100644 index 00000000..4755e2fb --- /dev/null +++ b/methods/webs.json @@ -0,0 +1,9 @@ +{ + "name": "webs", + "status": "registered", + "specification": "https://trustoverip.github.io/tswg-did-method-webs-specification/", + "contactName": "Trust over IP (ToIP) DID Method webs Task Force", + "contactEmail": "technology-stack-wg@lists.trustoverip.org", + "contactWebsite": "https://wiki.trustoverip.org/display/HOME/DID+Method+webs+Task+Force", + "verifiableDataRegistry": "Web, and Key Event Receipt Infrastructure (KERI)" +} diff --git a/methods/wlk.json b/methods/wlk.json new file mode 100644 index 00000000..80ac43c7 --- /dev/null +++ b/methods/wlk.json @@ -0,0 +1,9 @@ +{ + "name": "wlk", + "status": "registered", + "verifiableDataRegistry": "Weelink Network", + "contactName": "Weelink", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://weelink-team.github.io/weelink/DIDDesignEn" +} \ No newline at end of file diff --git a/methods/work.json b/methods/work.json new file mode 100644 index 00000000..448bf214 --- /dev/null +++ b/methods/work.json @@ -0,0 +1,9 @@ +{ + "name": "work", + "status": "registered", + "verifiableDataRegistry": "Hyperledger Fabric", + "contactName": "Workday, Inc.", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://workday.github.io/work-did-method-spec/" +} \ No newline at end of file diff --git a/methods/yourd.json b/methods/yourd.json new file mode 100644 index 00000000..236c44b5 --- /dev/null +++ b/methods/yourd.json @@ -0,0 +1,9 @@ +{ + "name": "yourd", + "status": "registered", + "verifiableDataRegistry": "YourD compatible chains", + "contactName": "YourD", + "contactEmail": "", + "contactWebsite": "https://www.yourd.xyz/", + "specification": "https://github.com/DataSovereignty-YourD/YourD-did-sepcification" +} diff --git a/methods/zk.json b/methods/zk.json new file mode 100644 index 00000000..6f7b6813 --- /dev/null +++ b/methods/zk.json @@ -0,0 +1,9 @@ + { + "name": "zk", + "status": "registered", + "verifiableDataRegistry": "Arweave", + "contactName": "zCloak Network Research", + "contactEmail": "info@zcloak.network", + "contactWebsite": "https://zcloak.network/#/", + "specification": "https://github.com/zCloak-Network/zk-did-method-specs" + } diff --git a/methods/zkme.json b/methods/zkme.json new file mode 100644 index 00000000..160c1bdb --- /dev/null +++ b/methods/zkme.json @@ -0,0 +1,9 @@ +{ + "name": "zkme", + "status": "registered", + "verifiableDataRegistry": "EVM compatible chains. Primary on Polygon", + "contactName": "zkMe", + "contactEmail": "", + "contactWebsite": "", + "specification": "https://github.com/zkMeLabs/zkme-did-method-spec" + } \ No newline at end of file diff --git a/properties/index.html b/properties/index.html new file mode 100644 index 00000000..9fc2faf1 --- /dev/null +++ b/properties/index.html @@ -0,0 +1,1877 @@ + + + + +DID Document Property Extensions + + + + + + + + +
+

+This document serves as a collection of known DID Document properties and +property values. +

+
+ +
+ +

+Comments regarding this document are welcome. Please file issues +directly on +GitHub, +or send them +to public-did-wg@w3.org ( +subscribe, +archives). +

+ +

+Portions of the work on this specification have been funded by the +United States Department of Homeland Security's Science and Technology +Directorate under contracts HSHQDC-16-R00012-H-SB2016-1-002, 70RSAT20T00000010, +and HSHQDC-17-C-00019. The content of this specification does not +necessarily reflect the position or the policy of the U.S. Government +and no official endorsement should be inferred. +

+ +

+Work on this registry has also been supported by the Rebooting the +Web of Trust community facilitated by Christopher Allen, Shannon +Appelcline, Kiara Robles, Brian Weller, Betty Dhamers, Kaliya Young, +Kim Hamilton Duffy, Manu Sporny, Drummond Reed, Joe Andrieu, and +Heather Vescent, Dmitri Zagidulin, and Dan Burnett. +

+
+ +
+

Introduction

+ +

+This document serves as a collection of known DID Document properties and +property values. +

+ +
+

The Registration Process

+

+ The registration process is described in the [[[DID-EXTENSIONS]]]. +

+
+ +
+ +
+ +
+

Property Names

+ +

+The following section defines the properties available for use in a DID +document. Note that some of these properties are defined in the +DID Core Specification, and +others are defined elsewhere and may be method- or domain-specific. Please read +the associated specifications to ensure that the properties you use are +appropriate for your implementation. The properties are arranged here according +to the purpose they serve. +

+ +

+This registry is a work in progress and some properties are missing normative +definitions. We are working on this! This does NOT mean that in future it will +be possible to submit items to the registry without normative definitions (see ). +

+ +
+

DID document properties

+

+These properties are foundational to DID documents, and are expected to be +useful to all DID methods. + +

+

id

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  "id": "did:example:123",
+  ...
+}
+        
+
+ +
+

alsoKnownAs

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  "alsoKnownAs": "https://example.com/",
+  ...
+}
+        
+
+ +
+

controller

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  "controller": "did:example:123",
+  ...
+}
+        
+
+ + +
+

verificationMethod

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core Terminology + + DID Core +
+
+{
+  "id": "did:example:123",
+  "verificationMethod": [
+    {
+      "id": "did:example:123#key-1",
+      "type": "Ed25519VerificationKey2018",
+      "controller": "did:example:123",
+      "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
+    },
+    {
+      "id": "did:example:123#key-2",
+      "type": "JsonWebKey2020",
+      "controller": "did:example:123",
+      "publicKeyJwk": {
+        "kty": "OKP",
+        "crv": "Ed25519",
+        "x": "r7V8qmdFbwqSlj26eupPew1Lb22vVG5vnjhn3vwEA1Y"
+      },
+    }
+  ]
+}
+
+
+ +
+

publicKey

+ +Deprecated + +

+This property has been deprecated, use verificationMethod instead. +

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ security-vocab + + security-vocab context +
+ +
+{
+  "id": "did:example:123",
+  "publicKey": [
+    {
+      "id": "did:example:123#ZC2jXTO6t4R501bfCXv3RxarZyUbdP2w_psLwMuY6ec",
+      "type": "Ed25519VerificationKey2018",
+      "controller": "did:example:123",
+      "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
+    },
+    {
+      "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+      "type": "EcdsaSecp256k1VerificationKey2019",
+      "controller": "did:example:123",
+      "publicKeyJwk": {
+        "crv": "secp256k1",
+        "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+        "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+        "kty": "EC",
+        "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+      }
+    }
+  ]
+}
+        
+
+ +
+

service

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  ...
+  "service": [{
+    "id": "did:example:123#edv",
+    "type": "EncryptedDataVault",
+    "serviceEndpoint": "https://edv.example.com/"
+  }]
+}
+        
+ +
+
+

linkedResource

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID + Cosmos Linked Resources + + Cosmos JSON-LD + Context +
+ +
+    {
+        ...
+        "linkedResource" : [{
+          "id": "did:cosmos:1:impacthub:nft:abc123#resourceHashgraph",
+          "path": "did:cosmos:1:impacthub:nft:abc123/resourceHashgraph",
+          "type": "hashgraph",
+          "proof": "afybeiemxf5abjwjbikoz4mcb3a3dla6ual3jsgpdr4cjr3oz",
+          "endpoint" : "did:cosmos:1:impacthub:nft:abc123?service=mediator"
+      }]
+    }
+ +
+ +
+

dnsValidationDomain

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ High Assurance DIDs with DNS + + dnsValidationDomain JSON-LD + Context +
+ +
+{
+  "dnsValidationDomain": "mydomain.example"
+  ...
+}
+
+ +
+
+

Verification relationships

+

+These are properties that express the relationship between the DID subject and a +verification method using a + +verification relationship. +

+
+

assertionMethod

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  ...
+  "verificationMethod": [{
+    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+    "type": "EcdsaSecp256k1VerificationKey2019",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "crv": "secp256k1",
+      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+      "kty": "EC",
+      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+    }
+  }],
+  "assertionMethod": [{
+    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
+    "type": "Ed25519VerificationKey2018",
+    "controller": "did:example:123",
+    "publicKeyBase58": "BYEz8kVpPqSt5T7DeGoPVUrcTZcDeX5jGkGhUQBWmoBg"
+  },
+  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+  ]
+}
+        
+
+ +
+

authentication

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  ...
+  "verificationMethod": [{
+    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+    "type": "EcdsaSecp256k1VerificationKey2019",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "crv": "secp256k1",
+      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+      "kty": "EC",
+      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+    }
+  }],
+  "authentication": [{
+    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
+    "type": "Ed25519VerificationKey2018",
+    "controller": "did:example:123",
+    "publicKeyBase58": "BYEz8kVpPqSt5T7DeGoPVUrcTZcDeX5jGkGhUQBWmoBg"
+  },
+  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+  ]
+}
+        
+
+ +
+

capabilityDelegation

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+
+{
+  ...
+  "verificationMethod": [{
+    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+    "type": "EcdsaSecp256k1VerificationKey2019",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "crv": "secp256k1",
+      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+      "kty": "EC",
+      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+    }
+  }],
+  "capabilityDelegation": [{
+    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
+    "type": "Ed25519VerificationKey2020",
+    "controller": "did:example:123",
+    "publicKeyMultibase": "z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4"
+  },
+  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+  ]
+}
+        
+
+ +
+

capabilityInvocation

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  ...
+  "verificationMethod": [{
+    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+    "type": "EcdsaSecp256k1VerificationKey2019",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "crv": "secp256k1",
+      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+      "kty": "EC",
+      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+    }
+  }],
+  "capabilityInvocation": [{
+    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
+    "type": "Ed25519VerificationKey2020",
+    "controller": "did:example:123",
+    "publicKeyMultibase": "z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4"
+  },
+  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+  ]
+}
+        
+
+ +
+

keyAgreement

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  ...
+  "keyAgreement": [
+    {
+      "id": "did:example:123#zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS",
+      "type": "X25519KeyAgreementKey2019",
+      "controller": "did:example:123",
+      "publicKeyMultibase": "zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS"
+    }
+  ]
+}
+        
+
+
+ +
+

Verification method properties

+

+These properties are for use on a verification method object, in the value of +verificationMethod. An +implementer is expected to not be relying directly on the linked contexts +registered below in nearly every case and instead should be including the +context definitions registered by the +verificationMethod. +

+ +
+

publicKeyJwk

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ security-vocab + + https://w3id.org/security/suites/jws-2020/v1 +
+ +
+{
+  "id": "did:example:123#_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A",
+  "type": "JsonWebKey2020",
+  "controller": "did:example:123",
+  "publicKeyJwk": {
+    "crv": "Ed25519",
+    "x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ",
+    "kty": "OKP",
+    "kid": "_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A"
+  }
+},
+        
+
+ +
+

publicKeyBase58

+ Deprecated + +

+This property is deprecated in favor of publicKeyMultibase or +publicKeyJwk. It's generally expected that this term will still be +used in older suites and therefore needs be supported for legacy compatibility, +but is expected to not be used for newly defined suites. +

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ security-vocab + + https://w3id.org/security/v2 +
+
+ +
+

publicKeyHex

+ Deprecated + +

+This property is deprecated in favor of publicKeyMultibase or +publicKeyJwk. It's generally expected that this term will still be +used in older suites and therefore needs be supported for legacy compatibility, +but is expected to not be used for newly defined suites. +

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ security-vocab + + https://w3id.org/security/v3-unstable + +
+
+  {
+    "@context":[
+      "https://www.w3.org/ns/did/v1",
+      "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
+    ],
+    "id":"did:example:123",
+    "verificationMethod":[{
+      "id": "did:example:123#vm-2",
+      "controller": "did:example:123",
+      "type": "EcdsaSecp256k1RecoveryMethod2020",
+      "publicKeyHex": "027560af3387d375e3342a6968179ef3c6d04f5d33b2b611cf326d4708badd7770"
+    }]
+  }
+        
+
+ +
+

publicKeyMultibase

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ security-vocab + + https://w3id.org/security/v3-unstable +
+
+ +
+

blockchainAccountId

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ security-vocab + + https://w3id.org/security/v3-unstable +
+
+  {
+    "@context":[
+      "https://www.w3.org/ns/did/v1",
+      "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
+    ],
+    "id":"did:example:123",
+    "verificationMethod":[{
+      "id": "did:example:123#vm-3",
+      "controller": "did:example:123",
+      "type": "EcdsaSecp256k1RecoveryMethod2020",
+      "blockchainAccountId":"eip155:1:0xab16a96d359ec26a11e2c2b3d8f8b8942d5bfcdb"
+    }]
+  }
+        
+
+ +
+

ethereumAddress

+ Deprecated +

+This property is deprecated in favor of blockchainAccountId. It's +generally expected that this term will still be used in older suites and +therefore needs be supported for legacy compatibility, but is expected to not be +used for newly defined suites. +

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ security-vocab + + https://w3id.org/security/v3-unstable +
+
+  {
+    "@context":[
+      "https://www.w3.org/ns/did/v1",
+      "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
+    ],
+    "id":"did:example:123",
+    "verificationMethod":[{
+      "id": "did:example:123#vm-3",
+      "controller": "did:example:123",
+      "type": "EcdsaSecp256k1RecoveryMethod2020",
+      "ethereumAddress": "0xF3beAC30C498D9E26865F34fCAa57dBB935b0D74"
+    }]
+  }
+        
+
+
+ +
+

Service properties

+

+These properties are for use on a service object, in the value of +service. +

+
+

serviceEndpoint

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  ...
+  "service": [{
+    "id": "did:example:123#edv",
+    "type": "EncryptedDataVault",
+    "serviceEndpoint": "https://edv.example.com/"
+  }]
+}
+        
+ +
+ +
+ +
+ +
+

Property Values

+ +
+

Verification method types

+

+These are values to be used for the type in a verification method object. +

+ +
+

JsonWebKey2020

+ +

+Do not include private or extraneous information in verification methods. The +class of private information related to JWKs is defined here. Please review +the DID Core +specification for additional details on this topic. +

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ JSON Web Signature 2020 + + https://w3id.org/security/suite/jws-2020/v1 +
+ +
+  {
+    "id": "did:example:123#_TKzHv2jFIyvdTGF1Dsgwngfdg3SH6TpDv0Ta1aOEkw",
+    "type": "JsonWebKey2020",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "crv": "P-256",
+      "x": "38M1FDts7Oea7urmseiugGW7tWc3mLpJh6rKe7xINZ8",
+      "y": "nDQW6XZ7b_u2Sy9slofYLlG03sOEoug3I0aAPQ0exs4",
+      "kty": "EC",
+      "kid": "_TKzHv2jFIyvdTGF1Dsgwngfdg3SH6TpDv0Ta1aOEkw"
+    }
+  }
+        
+
+
+

EcdsaSecp256k1VerificationKey2019

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ Ecdsa Secp256k1 Signature 2019 + + https://w3id.org/security/suites/secp256k1-2019/v1 +
+ +
+{
+  "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+  "type": "EcdsaSecp256k1VerificationKey2019",
+  "controller": "did:example:123",
+  "publicKeyJwk": {
+    "crv": "secp256k1",
+    "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+    "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+    "kty": "EC",
+    "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+  }
+}
+        
+
+ +
+

Ed25519VerificationKey2018

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ Ed25519 Signature 2018 + + https://w3id.org/security/suites/ed25519-2018/v1 +
+ +
+          {
+            "id": "did:example:123#ZC2jXTO6t4R501bfCXv3RxarZyUbdP2w_psLwMuY6ec",
+            "type": "Ed25519VerificationKey2018",
+            "controller": "did:example:123",
+            "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
+          }
+        
+
+ +
+

Bls12381G1Key2020

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ BBS+ Signatures 2020 + + https://w3id.org/security/suites/bls12381-2020/v1 +
+ +
+          {
+            "id": "did:example:123#z3tEGVtEKzdhJB2rT5hLVjwQPis8k7bTM16t7vDZrQaoddk6wZ7or6xPPs1P8H9U16Xe75",
+            "type": "Bls12381G1Key2020",
+            "controller": "did:example:123",
+            "publicKeyBase58": "7bXhTVonHPizXP72AE92PPmRiaXipC519yU7F6NxUFExWpyQo57LuKKBoTyuZ3uWm9",
+          }
+        
+
+ +
+

Bls12381G2Key2020

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ BBS+ Signatures 2020 + + https://w3id.org/security/suites/bls12381-2020/v1 +
+ +
+          {
+            "id": "did:example:123#zUC7K51WYEsj8y6KPVa1XfwdW5ZJrW5kSbMV619j128T6atCLLXJjjovMZsJ3Ay4STdngRkvM4ygT4qm1mk6HR8FvipSY435nLgYS1TTcaqJAzDWzM1iB9vh3hTL1DEKitwn56i",
+            "type": "Bls12381G2Key2020",
+            "controller": "did:example:123",
+            "publicKeyBase58": "25ETdUZDVnME6yYuAMjFRCnCPcDmYQcoZDcZuXAfeMhXPvjZg35QmZ7uctBcovA69YDM3Jf7s5BHo4u1y89nY6mHiji8yphZ4AMm4iNCRh35edSg76Dkasu3MY2VS9LnuaVQ",
+
+          }
+        
+
+ +
+

PgpVerificationKey2021

+ + + + + + + + + + + + + + + + +
Normative DefinitionJSON-LDAdditional Details
+ Linked Data Signatures for PGP + + https://w3id.org/security/suites/pgp-2021/v1 + + Use of this verification key should be in line with the OpenPGP Message Format + as defined in RFC 4880 +
+
+{
+  "@context":[
+    "https://www.w3.org/ns/did/v1",
+    "https://gpg.jsld.org/contexts/lds-gpg2020-v0.0.jsonld"
+  ],
+  "id":"did:example:123",
+  "verificationMethod":[{
+    "id": "did:example:123#989ed1057a294c8a3665add842e784c4d08de1e2",
+    "type": "PgpVerificationKey2021",
+    "controller": "did:example:123",
+    "publicKeyPgp": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\nVersion: OpenPGP.js v4.9.0\r\nComment: https://openpgpjs.org\r\n\r\nxjMEXkm5LRYJKwYBBAHaRw8BAQdASmfrjYr7vrjwHNiBsdcImK397Vc3t4BL\r\nE8rnN......v6\r\nDw==\r\n=wSoi\r\n-----END PGP PUBLIC KEY BLOCK-----\r\n"
+  }]
+}
+        
+
+ +
+

RsaVerificationKey2018

+

+DID +Specification Registries Issue 370 This property should be moved into a +separate suite and linked to here rather than relying on the Verifiable +Credentials vocabulary. There are known issues with the first version of the +Security vocabulary JSON-LD context and the first version of the Verifiable +Credentials JSON-LD context which will prevent these contexts from being listed +in the same document. For now it's suggested that implementers rely upon the +first version of the Verifiable Credentials JSON-LD context and not rely on +the Security vocabulary JSON-LD context in the same document. +

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ RSA Signature Suite 2018 + + https://www.w3.org/2018/credentials/v1 +
+
+  {
+    "id": "did:example:123#key-0",
+    "type": "RsaVerificationKey2018",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "kty":"RSA",
+      "e":"AQAB",
+      "use":"sig",
+      "kid":"tNksV42EUs3Xct9AkgZyFWglItRGMxVZ1A1XM68SNq0
+      "n":"kO2d_qQTEBjYFGcoY_da7ziFY4L2QX14K7snCee09n-cY2eP-oJXk8T2_lL20YnpYhf4i
+      jhkWHGU8kY8-FWPRrzSeu3JUMVSZoqTgoAiKWdnSLNvPVxvGuD2CiA3T6AkwUC03D2AkOLCcJV
+      8h_hxUEPeDawF7ArpuJW5DXzEJjE7gOjN4r6d7VB6sd5y-3la54H2ADz2amHLdBWs30fL4BRBH
+      lVdx0YmF37V4u5yvnnb5Iyr3kBXJes8t0MUMPkjqEEXRmukpKUzZYNpWDXY0tVcXeK5sRx0DAn
+      lNgNNf14-vsyjGkj2Rz0oGW73jjWa8dw-yVlDEHyIkQU9-UY4dFXbVjdIO8j_5ghh62o1T7Y4w
+      5CWMc-FxPE3LHe-_teW97X__NN-ToYgfi42IvV2mYOdQMCbvnvY2oMdK3b9wmeVi0marToauL5
+      LMg5xHDKopmIR7E3VyRtNYwDFAZ89kadcbSrZ8zTR5APaB7Tmp2L2ZfXKxqKQuxlFTTCcZtg4e
+      5AN8QuYdI18DEDQn2umUU_Twj7k4CXvuIKVL8p4yRHC4CHAGIm9cH_t11dF3wXygaENVOGRXQu
+      0g1iKq0mO2rWpOqkGJ5uXMFb5lx54i8uOjCdZ9y2el28xA55Ve95KCxeTHp997Bn3TIgbeQ-B_
+      -3PBVTuuAAH8y9fFNKtu5E"
+    }
+  }
+        
+
+ +
+

X25519KeyAgreementKey2019

+
+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ Normative definition pending + + https://w3id.org/security/suites/x25519-2019/v1 +
+
+  {
+    ...
+    "keyAgreement": [
+      {
+        "id": "did:example:123#zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS",
+        "type": "X25519KeyAgreementKey2019",
+        "controller": "did:example:123",
+        "publicKeyBase58": "9hFgmPVfmBZwRvFEyniQDBkz9LmV7gDEqytWyGZLmDXE"
+      }
+    ]
+  }
+        
+ +
+ +
+

EcdsaSecp256k1RecoveryMethod2020

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ ECDSA Secp256k1 Recovery Signature 2020 + + https://w3id.org/security/suites/secp256k1recovery-2020/v1 +
+
+{
+  "@context": [
+    "https://www.w3.org/ns/did/v1",
+    "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
+  ],
+  "id":"did:example:123",
+  "verificationMethod": [
+    {
+      "id": "did:example:123#vm-1",
+      "controller": "did:example:123",
+      "type": "EcdsaSecp256k1RecoveryMethod2020",
+      "publicKeyJwk": {
+        "crv": "secp256k1",
+        "kid": "JUvpllMEYUZ2joO59UNui_XYDqxVqiFLLAJ8klWuPBw",
+        "kty": "EC",
+        "x": "dWCvM4fTdeM0KmloF57zxtBPXTOythHPMm1HCLrdd3A",
+        "y": "36uMVGM7hnw-N6GnjFcihWE3SkrhMLzzLCdPMXPEXlA"
+      }
+    },
+    {
+      "id": "did:example:123#vm-2",
+      "controller": "did:example:123",
+      "type": "EcdsaSecp256k1RecoveryMethod2020",
+      "publicKeyHex": "027560af3387d375e3342a6968179ef3c6d04f5d33b2b611cf326d4708badd7770"
+    },
+    {
+      "id": "did:example:123#vm-3",
+      "controller": "did:example:123",
+      "type": "EcdsaSecp256k1RecoveryMethod2020",
+      "ethereumAddress": "0xF3beAC30C498D9E26865F34fCAa57dBB935b0D74"
+    }
+  ]
+}
+        
+
+ +
+

VerifiableCondition2021

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ Verifiable + Conditions Verification Method Suite 2021 + + https://w3c-ccg.github.io/verifiable-conditions/contexts/verifiable-conditions-2021-v1.json +
+
+          {
+              "id": "did:example:123#1",
+              "controller": "did:example:123",
+              "type": "VerifiableCondition2021",
+              "conditionAnd": [{
+                  "id": "did:example:123#1-1",
+                  "controller": "did:example:123",
+                  "type": "VerifiableCondition2021",
+                  "conditionOr": [{
+                      "id": "did:example:123#1-1-1",
+                      "controller": "did:example:123",
+                      "type": "EcdsaSecp256k1VerificationKey2019",
+                      "publicKeyBase58": "5JBxKqYKzzoHrzeqwp6zXk8wZU3Ah94ChWAinSj1fYmyJvJS5rT"
+                  }, {
+                      "id": "did:example:123#1-1-2",
+                      "controller": "did:example:123",
+                      "type": "Ed25519VerificationKey2018",
+                      "publicKeyBase58": "PZ8Tyr4Nx8MHsRAGMpZmZ6TWY63dXWSCzamP7YTHkZc78MJgqWsAy"
+                  }]
+              }, {
+                  "id": "did:example:123#1-2",
+                  "controller": "did:example:123",
+                  "type": "Ed25519VerificationKey2018",
+                  "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
+              }]
+          }
+        
+
+ +
+ +
+

Service types

+

+These are values to be used for the type property +in a service object. +

+ +
+

LinkedDomains

+
+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ Well Known DID Configuration + + Well Known DID Configuration +
+ +
+{
+  "@context": ["https://www.w3.org/ns/did/v1","https://identity.foundation/.well-known/did-configuration/v1"],
+  "id": "did:example:123",
+  "verificationMethod": [{
+    "id": "did:example:123#456",
+    "type": "JsonWebKey2020",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "kty": "OKP",
+      "crv": "Ed25519",
+      "x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ"
+    }
+  }],
+  "service": [
+    {
+      "id":"did:example:123#foo",
+      "type": "LinkedDomains",
+      "serviceEndpoint": {
+        "origins": ["https://foo.example.com", "https://identity.foundation"]
+      }
+    },
+    {
+      "id":"did:example:123#bar",
+      "type": "LinkedDomains",
+      "serviceEndpoint": "https://bar.example.com"
+    }
+  ]
+}
+        
+ +
+ +
+

LinkedVerifiablePresentation

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ Linked Verifiable Presentation + + Linked Verifiable Presentation +
+ +
+{
+  "@context": [
+    "https://www.w3.org/ns/did/v1",
+    "https://identity.foundation/linked-vp/contexts/v1"
+  ],
+  "id": "did:example:123",
+  "verificationMethod": [{
+    "id": "did:example:123#_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A",
+    "type": "JsonWebKey2020",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "kty": "OKP",
+      "crv": "Ed25519",
+      "x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ"
+    }
+  }],
+  "service": [
+    {
+      "id": "did:example:123#foo",
+      "type": "LinkedVerifiablePresentation",
+      "serviceEndpoint": ["https://bar.example.com/verifiable-presentation.jsonld"]
+    },
+    {
+      "id": "did:example:123#baz",
+      "type": "LinkedVerifiablePresentation",
+      "serviceEndpoint": "ipfs://bafybeihkoviema7g3gxyt6la7vd5ho32ictqbilu3wnlo3rs7ewhnp7lly/verifiable-presentation.jwt"
+    }
+  ]
+}
+        
+ +
+ +
+

DIDCommMessaging

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DIDComm Messaging + + A valid JSON-LD context needs to be published. + DIDComm Messaging +
+ +
+{
+  "@context":[
+      "https://www.w3.org/ns/did/v1",
+      "https://didcomm.org/messaging/contexts/v2"
+  ],
+  "type":"DIDCommMessaging",
+  "serviceEndpoint": {
+    "uri": "http://example.com/path",
+    "accept":[ "didcomm/v2", "didcomm/aip2;env=rfc587" ],
+    "routingKeys":[ "did:example:somemediator#somekey" ]
+  }
+}
+        
+ +
+ +
+

Web of Things (WoT) Discovery

+

The WotThing and WotDirectory endpoints allow publication of service endpoints in a DID document + that can be used to fetch Web of Things (WoT) Thing Descriptions (TDs). + The WotThing endpoint is a REST service that returns a TD + when the GET method is used. + This can be used for self-describing devices or services, or be a service + separate from the actual device or service described by the TD. + The WotDirectory is also a REST service that returns a TD, but this service is always + a Web of Things (WoT) Thing Description Directory (TDD), + and the TD returned by a GET always describes the TDD's interface. + Details (including normative statements covering the above) are in the + WoT Discovery specification. +

+ + + + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ WoT Discovery + + WotThing +
+ WoT Discovery + + WotDirectory +
+
+{
+  "@context":[
+      "https://www.w3.org/ns/did/v1",
+      "https://www.w3.org/2022/wot/discovery-did"
+  ],
+  ...
+  "service": [{
+      "id": "did:example:wotdiscoveryexample#td",
+      "type": "WotThing",
+      "serviceEndpoint":
+          "https://wot.example.com/.well-known/wot"
+  }]
+  ...
+}
+
+ +
+{
+  "@context":[
+      "https://www.w3.org/ns/did/v1",
+      "https://www.w3.org/2022/wot/discovery-did"
+  ],
+  ...
+  "service": [{
+      "id": "did:example:wotdiscoveryexample#tdd",
+      "type": "WotDirectory",
+      "serviceEndpoint":
+          "https://wot.example.com/tdd"
+  }]
+  ...
+}
+
+ +
+ +
+

CredentialRegistry

+

The CredentialRegistry endpoint allows publication of a dedicated service endpoint in a DID document, through which verifiable credentials can be queried. Each registry endpoint is a REST endpoint. When a `GET` request is sent to the URI formed by appending the credentialSubject.id as a URL-encoded string to the given endpoint URI, the registry MUST return an array of verifiable credentials associated with the subject ID. A sample registry endpoint can be found here.

+

+ Verifiable credential registries are supposed to hold credentials that are publicly accessible by default, e.g., for product passports on a product type level. An additional authentication for limiting access to certain credentials is currently under development. +

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ Verifiable Credential Registry + + Verifiable Credential Registry +
+ +
+{
+  ...
+  "service": [
+    {
+      "id": "did:example:123#vcregistry-1",
+      "type": "CredentialRegistry",
+      "serviceEndpoint": {
+        "registries": ["https://registry.example.com/{credentialSubject.id}", "https://identity.foundation/vcs/{credentialSubject.id}"]
+      }
+    },
+    {
+      "id": "did:example:123#vcregistry-2",
+      "type": "CredentialRegistry",
+      "serviceEndpoint": "https://ssi.eecc.de/api/registry/vcs/{credentialSubject.id}"
+    }
+  ]
+}
+        
+
+$ curl 'https://ssi.eecc.de/api/registry/vcs/https%3A%2F%2Ftest.de%2Ftest1' -H 'accept: application/ld+json, application/json'
+
+[
+  {
+    "@context": ["https://www.w3.org/2018/credentials/v1",... ],
+    "type": ["VerifiableCredential",...],
+    "credentialSubject": {...},
+    "proof": {...},
+    ...
+  },
+  ...
+]
+        
+
+ +
+

OpenID4 Verifiable Credential Issuance

+

The OID4VCI service allows publication of a credential issuer that conforms to the OpenID for Verifiable Credential Issuance (OID4VCI) specification. +

The service endpoint `id` MUST be the Credential Issuer Identifier to get the Credential Issuer Metadata as described in Section Credential Issuer Metadata of OpenIDVCI.

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ OpenID4VCI + + OpenID4VCI +
+
+{
+  ...
+  "service": [
+    {
+      "id": "did:example:123#oid4vci",
+      "type": "OID4VCI",
+      "serviceEndpoint": "https://issuer.example.com/"
+    }
+  ]
+}
+        
+
+ +
+

OpenID4 Verifiable Presentation

+

The OID4VP service allows publication of how to interact with a credential wallet that conforms with the OpenID for Verifiable Presentation (OID4VP) specification.

+

The service endpoint `id` MUST be the Wallet (OAuth2) Issuer Identifier to obtain Wallet Metadata to invoke the wallet as described in section Wallet Invocation.

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ OpenID4VP + + OpenID4VP +
+ +
+{
+  ...
+  "service": [
+    {
+      "id": "did:example:123#oid4vp",
+      "type": "OID4VP",
+      "serviceEndpoint": "https://wallet.example.com"
+    }
+  ]
+}
+        
+
+ +
+ +
+ + + diff --git a/resolution/index.html b/resolution/index.html new file mode 100644 index 00000000..86dd3c64 --- /dev/null +++ b/resolution/index.html @@ -0,0 +1,1370 @@ + + + + +DID Resolution Extensions + + + + + + + + +
+

+This document serves as a collection of known DID Resolution and Dereferencing +extensions. +

+
+ +
+ +

+Comments regarding this document are welcome. Please file issues +directly on +GitHub, +or send them +to public-did-wg@w3.org ( +subscribe, +archives). +

+ +

+Portions of the work on this specification have been funded by the +United States Department of Homeland Security's Science and Technology +Directorate under contracts HSHQDC-16-R00012-H-SB2016-1-002, 70RSAT20T00000010, +and HSHQDC-17-C-00019. The content of this specification does not +necessarily reflect the position or the policy of the U.S. Government +and no official endorsement should be inferred. +

+ +

+Work on this registry has also been supported by the Rebooting the +Web of Trust community facilitated by Christopher Allen, Shannon +Appelcline, Kiara Robles, Brian Weller, Betty Dhamers, Kaliya Young, +Kim Hamilton Duffy, Manu Sporny, Drummond Reed, Joe Andrieu, and +Heather Vescent, Dmitri Zagidulin, and Dan Burnett. +

+
+ +
+

Introduction

+ +

+This document serves as a collection of known DID Resolution and Dereferencing +extensions. +

+ +
+

The Registration Process

+

+ The registration process is described in the [[[DID-EXTENSIONS]]]. +

+
+ +
+ +
+ +
+

Representations

+

This table provides a reference for media types and the associated specifications for producing and consuming those representations.

+ + + + + + + + + + + + + + + + + + + + + +
Media TypeSpecification
application/did+json + DID Core +
application/did+ld+json + DID Core +
application/did+cbor + The Plain CBOR Representation +
+ +
+ +
+

Representation-Specific Entries

+ +
+

JSON

+ +

+These are entries in DID documents that are specific to the +JSON representation. +

+

+(No entries yet) +

+
+ +
+

JSON-LD

+ +

+These are entries in DID documents that are specific to the +JSON-LD representation. +

+ +
+

@context

+ + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +

+The following values are acceptable values for the @context entry as +a JSON + String or first item of a JSON Array, +represented as a JSON + String. +

+ + + + + + + + + + + + +
`@context` ValuesSpecification Version
+ https://www.w3.org/ns/did/v1 + + DID Core 1.0 Working draft +
+ +
+{
+  "@context": [
+    "https://www.w3.org/ns/did/v1",
+    "https://example.com/blockchain-identity/v1"
+  ],
+  ...
+}
+        
+ +
+
+ +
+

CBOR

+ +

+These are entries in DID documents that are specific to the +CBOR representation. +

+

+(No entries yet) +

+
+
+ +
+

DID Resolution Options

+

+These properties contain information pertaining to the DID resolution request. +

+ +
+

accept

+ + + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+{
+  "accept": "application/did+ld+json"
+}
+      
+
+
+ +
+

DID Resolution Metadata

+

+These properties contain information pertaining to the DID resolution response. +

+
+

contentType

+ + + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+{
+  "contentType": "application/did+ld+json"
+}
+      
+
+ +
+

error

+ + + + + + + + + + + + + +
Normative Definition
+ DID Core + +
+ +
+{
+  "error": "notFound"
+}
+      
+ +
+

invalidDid

+ + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+{
+  "error": "invalidDid"
+}
+        
+
+ +
+

notFound

+ + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+{
+  "error": "notFound"
+}
+        
+
+ +
+

representationNotSupported

+ + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+{
+  "error": "representationNotSupported"
+}
+        
+
+ +
+

methodNotSupported

+ + + + + + + + + + + +
Normative Definition
+ DID Resolution +
+ +
+{
+  "error": "methodNotSupported"
+}
+        
+
+ +
+

internalError

+ + + + + + + + + + + +
Normative Definition
+ DID Resolution +
+ +
+{
+  "error": "internalError"
+}
+        
+
+
+

invalidPublicKey

+ + + + + + + + + + + +
Normative Definition
+ DID Resolution +
+ +
+{
+  "error": "invalidPublicKey"
+}
+        
+
+
+

invalidPublicKeyLength

+ + + + + + + + + + + +
Normative Definition
+ DID Resolution +
+ +
+{
+  "error": "invalidPublicKeyLength"
+}
+        
+
+
+

invalidPublicKeyType

+ + + + + + + + + + + +
Normative Definition
+ DID Resolution +
+ +
+{
+  "error": "invalidPublicKeyType"
+}
+        
+
+ +
+

unsupportedPublicKeyType

+ + + + + + + + + + + +
Normative Definition
+ DID Resolution +
+ +
+{
+  "error": "unsupportedPublicKeyType"
+}
+        
+
+ +
+

notAllowedVerificationMethodType

+ + + + + + + + + + + +
Normative Definition
+ DID Spec Extension: notAllowedVerificationMethodType +
+ +
+{
+  "error": "notAllowedVerificationMethodType"
+}
+        
+
+ +
+

notAllowedKeyType

+ + + + + + + + + + + +
Normative Definition
+ DID Spec Extension: notAllowedKeyType +
+ +
+{
+  "error": "notAllowedKeyType"
+}
+        
+
+ +
+

notAllowedMethod

+ + + + + + + + + + + +
Normative Definition
+ DID Spec Extension: notAllowedMethod +
+ +
+{
+  "error": "notAllowedMethod"
+}
+        
+
+ +
+

notAllowedCertificate

+ + + + + + + + + + + +
Normative Definition
+ DID Spec Extension: notAllowedCertificate +
+ +
+{
+  "error": "notAllowedCertificate"
+}
+        
+
+ +
+

notAllowedLocalDuplicateKey

+ + + + + + + + + + + +
Normative Definition
+ DID Spec Extension: notAllowedLocalDuplicateKey +
+ +
+{
+  "error": "notAllowedLocalDuplicateKey"
+}
+        
+
+ +
+

notAllowedLocalDerivedKey

+ + + + + + + + + + + +
Normative Definition
+ DID Spec Extension: notAllowedLocalDerivedKey +
+ +
+{
+  "error": "notAllowedLocalDerivedKey"
+}
+        
+
+ +
+

notAllowedGlobalDuplicateKey

+ + + + + + + + + + + +
Normative Definition
+ DID Spec Extension: notAllowedGlobalDuplicateKey +
+ +
+{
+  "error": "notAllowedGlobalDuplicateKey"
+}
+        
+
+
+
+
+

DID Dereferencing Metadata

+

+These properties contain information pertaining to the DID dereferencing response. +

+
+

error

+ + + + + + + + + + + + + +
Normative Definition
+ DID Core + +
+ +
+{
+  "error": "notFound"
+}
+      
+
+

invalidDidUrl

+ + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+{
+  "error": "invalidDidUrl"
+}
+        
+
+
+

notFound

+ + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+{
+  "error": "notFound"
+}
+        
+
+
+
+
+

DID Document Metadata

+

+These properties contain information pertaining to the DID document itself, +rather than the DID subject. +

+
+

created

+

+ See DID Core #203. +

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  "created": "2019-03-23T06:35:22Z"
+}
+      
+
+ +
+

updated

+

+ See DID Core #203. +

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  "updated": "2023-08-10T13:40:06Z"
+}
+      
+ +
+ +
+

deactivated

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  "deactivated": true
+}
+      
+ +
+ +
+

nextUpdate

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  "nextUpdate": "2023-08-10T13:40:06Z"
+}
+      
+ +
+ +
+

versionId

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  "versionId": "bafyreifederejlobaec6kwpl2mc3tw7qk3j3ey4uytkbiw2qw7dzylud6i"
+}
+      
+ +
+ +
+

nextVersionId

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  "nextVersionId": "bafyreifederejlobaec6kwpl2mc3tw7qk3j3ey4uytkbiw2qw7dzylud6i"
+}
+      
+ +
+ +
+

equivalentId

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  "equivalentId": ["did:example:ABC", "did:example:Abc"]
+}
+      
+ +
+ +
+

canonicalId

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+{
+  "canonicalId": "did:example:ABC"
+}
+      
+ +
+
+ +
+ +

Parameters

+ +
+

hl

+ + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+did:example:123?hl=zQmWvQxTqbG2Z9HPJgG57jjwR154cKhbtJenbyYTWkjgF3e
+      
+
+ +
+

service

+ + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+did:example:123?service=agent
+      
+
+ +
+

versionId

+ + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+did:example:123?versionId=4
+      
+
+ +
+

versionTime

+ + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+did:example:123?versionTime=2016-10-17T02:41:00Z
+      
+
+ +
+

relativeRef

+ + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+did:example:123?service=files&relativeRef=%2Fmyresume%2Fdoc%3Fversion%3Dlatest%23intro
+      
+
+ +
+

initialState

+ + + + + + + + + + + +
Normative Definition
+ DID Spec Extensions by DIF +
+ +
+did:example:123?initialState=eyJkZWx0YV9oYXNoIjoiRWlDUlRKZ2Q0U0V2YUZDLW9fNUZjQnZJUkRtWF94Z3RLX3g...
+      
+
+ +
+

transformKeys

+ + + + + + + + + + + +
Normative Definition
+ DID Spec Extensions by DIF +
+ +
+did:example:123?transformKeys=jwk
+      
+
+ +
+

signedIetfJsonPatch

+ + + + + + + + + + + +
Normative Definition
+ DID Spec Extensions by DIF +
+ +
+did:example:123?signedIetfJsonPatch=eyJraWQiOiJkaWQ6ZXhhbXBsZTo0NTYjX1FxMFVMMkZxNjUxUTBGamQ2VH...
+      
+
+ +
+

resource

+ + + + + + + + + + + +
Normative Definition
+ DID URL Resource Parameter Specification +
+ +
+did:foo:21tDAKCERh95uGgKbJNHYp?resource=true
+      
+
+ +
+ + + diff --git a/tooling/README.md b/tooling/README.md new file mode 100644 index 00000000..519080c3 --- /dev/null +++ b/tooling/README.md @@ -0,0 +1,26 @@ +## Registry Tooling + +This directory contains command line tooling and support scripts for the DID +Extensions. + +### Setup Tooling + +``` +npm i +``` + +### Validate DID Methods + +``` +npm run registry:validate +``` + +### Generate DID Methods Registry Index + +This command is run in CI, the index file produced is git ignored. This file is +used by the Respec build plugin to build the registry in client side javascript +at page load time. + +``` +npm run registry:generate:index +``` \ No newline at end of file diff --git a/tooling/did-method-registry-entry.yml b/tooling/did-method-registry-entry.yml new file mode 100644 index 00000000..10e02622 --- /dev/null +++ b/tooling/did-method-registry-entry.yml @@ -0,0 +1,53 @@ +--- +title: DID Method Registry Entry +description: This schema defines the shape of did method registrations in the did spec registries +type: object +additionalProperties: false +required: + - name + - status + - specification +properties: + name: + description: https://www.w3.org/TR/did-core/#dfn-did-methods + type: string + maxLength: 512 + status: + description: The status of the entry in the registry + type: string + enum: + - registered + - withdrawn + - deprecated + specification: + description: An active URL that resolves to a human readable did method specification + type: string + maxLength: 512 + contactName: + description: A person or organization which responds to contact requests + type: string + maxLength: 512 + contactEmail: + description: An email to send contact requests + type: string + maxLength: 512 + contactWebsite: + description: An website to send contact requests + type: string + maxLength: 512 + verifiableDataRegistry: + description: https://www.w3.org/TR/did-core/#dfn-verifiable-data-registry + type: string + maxLength: 512 + +example: { + # These fields are required + "name": "key", + "status": "registered", + "specification": "https://w3c-ccg.github.io/did-method-key/", + # These fields are optional + "contactName": "W3C Credentials Community Group", + "contactEmail": "public-credentials@w3.org", + "contactWebsite": "https://w3c-ccg.github.io/", + "verifiableDataRegistry": "None (ephemeral DID Method)" +} diff --git a/tooling/generate-index.js b/tooling/generate-index.js new file mode 100644 index 00000000..4bf166bb --- /dev/null +++ b/tooling/generate-index.js @@ -0,0 +1,41 @@ + +const fs = require('fs'); +const path = require('path'); + +// set directories and paths +const methodsDir = path.join(__dirname, '../methods'); +const indexFile = path.join(methodsDir, 'index.json'); + +// Process all method files and generate an index file +(async () => { + + const allMethods = []; + process.stdout.write('Processing:'); + fs.readdirSync(methodsDir).forEach(filename => { + // skip index file + if(['index.html', 'index.json'].includes(filename)) { + return; + } + + const methodFile = path.join(methodsDir, filename); + const methodData = fs.readFileSync(methodFile, 'utf-8'); + process.stdout.write(' ' + filename); + + try { + const methodJson = JSON.parse(methodData); + allMethods.push(methodJson); + } catch(e) { + console.error('\n\n❌ ERROR: Failed to parse', filename, e); + process.exit(1); + } + }); + + if(allMethods.length > 0) { + fs.writeFileSync(indexFile, JSON.stringify(allMethods, null, 2), 'utf-8'); + console.log('\n\nGenerated /methods/index.json.'); + } else { + console.error('\n\n❌ ERROR: No methods found in methods directory'); + process.exit(1); + } + +})(); diff --git a/tooling/package-lock.json b/tooling/package-lock.json new file mode 100644 index 00000000..fb7adc16 --- /dev/null +++ b/tooling/package-lock.json @@ -0,0 +1,78 @@ +{ + "name": "did-spec-registries-tooling", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "did-spec-registries-tooling", + "version": "0.0.1", + "license": "W3C", + "dependencies": { + "ajv": "^8.6.3", + "js-yaml": "^4.1.0" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "license": "BSD-3-Clause" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + } + } +} diff --git a/tooling/package.json b/tooling/package.json new file mode 100644 index 00000000..b0c9706e --- /dev/null +++ b/tooling/package.json @@ -0,0 +1,20 @@ +{ + "name": "did-spec-registries-tooling", + "version": "0.0.1", + "description": "DID Spec Registries tooling commands", + "private": true, + "main": "index.js", + "dependencies": { + "ajv": "^8.6.3", + "js-yaml": "^4.1.0" + }, + "scripts": { + "generate": "node ./generate-index.js", + "validate": "node ./validate-registry.js" + }, + "author": "Manu Sporny (https://manu.sporny.org/)", + "contributors": [ + "Orie Steele (https://github.com/OR13)" + ], + "license": "W3C" +} diff --git a/tooling/validate-registry.js b/tooling/validate-registry.js new file mode 100644 index 00000000..3d7f650e --- /dev/null +++ b/tooling/validate-registry.js @@ -0,0 +1,56 @@ + +const Ajv = require("ajv") +const yaml = require('js-yaml'); +const fs = require('fs'); +const path = require('path'); +const ajv = new Ajv({ strict: false }); + +const didMethodRegistryDirectory = path.join(__dirname, '../methods'); + +const schema = yaml.load(fs.readFileSync('./did-method-registry-entry.yml', 'utf8')); +const validate = ajv.compile(schema) + +const getAllRegistryEntries = () =>{ + const files = fs.readdirSync(didMethodRegistryDirectory); + const entries = files.filter((file)=>{ + // ignore the index file. + return !(['index.html', 'index.json'].includes(file)); + }).map((file) => { + const fileContent = fs.readFileSync(path.join(didMethodRegistryDirectory, file)).toString(); + let didMethod = { + error: 'methods/' + file + }; + try { + didMethod = JSON.parse(fileContent); + } catch(e) { + console.error('❌ Failed to parse DID Method registry entry: ' + + 'methods/' + file); + } + return didMethod; + }).sort((a, b)=>{ + return a.name > b.name ? 1 : -1; + }) + return entries +} + +const validateRegistryEntry = (entry)=>{ + const valid = validate(entry) + if (!valid) { + console.error(entry) + console.error(validate.errors) + } + return valid; +} + +(async ()=>{ + console.log('🧙 validating did method registry'); + const entries = getAllRegistryEntries(); + entries.forEach((entry)=>{ + const valid = validateRegistryEntry(entry) + if (!valid){ + console.error('❌ Invalid did method registry entry: ' + JSON.stringify(entry, null, 2)); + process.exit(1); + } + }) + console.log('✅ did method registry is valid'); +})(); diff --git a/transitions/2020/FPWD/index.html b/transitions/2020/FPWD/index.html new file mode 100644 index 00000000..2233d5a6 --- /dev/null +++ b/transitions/2020/FPWD/index.html @@ -0,0 +1,2913 @@ + + DID Specification Registries + + + + + + +
+

DID Specification Registries

+

The interoperability registry for Decentralized Identifiers

+

+ W3C Working Group Note + +

+
+
This version:
+ https://www.w3.org/TR/2020/NOTE-did-spec-registries-20200618/ +
Latest published version:
+ https://www.w3.org/TR/did-spec-registries/ +
+
Latest editor's draft:
https://w3c.github.io/did-spec-registries/
+ + + + + +
Editors:
+
Orie Steele + (Transmute) +
Manu Sporny + (Digital Bazaar) +
+ +
+ Authors: +
Orie Steele + (Transmute) +
Manu Sporny + (Digital Bazaar) +
+
Participate:
+ GitHub w3c/did-spec-registries +
+ File a bug +
+ Commit history +
+ Pull requests +
+
+ + + + +
+
+

Abstract

+

+

+

+This document serves as an official registry for all known global parameters, +properties, and values used by the Decentralized Identifier ecosystem. +

+
+ +

Status of This Document

This section describes the status of this + document at the time of its publication. Other documents may supersede + this document. A list of current W3C publications and the latest revision + of this technical report can be found in the + W3C technical reports index at + https://www.w3.org/TR/.

+ +

+This registry is under active development and implementers are advised +against using the registry unless they are directly involved with the +W3C DID Working Group. +

+ +

+Comments regarding this document are welcome. Please file issues +directly on GitHub, +or send them +to public-did-wg@w3.org ( +subscribe, +archives). +

+ +

+Portions of the work on this specification have been funded by the +United States Department of Homeland Security's Science and Technology +Directorate under contracts HSHQDC-16-R00012-H-SB2016-1-002, 70RSAT20T00000010, +and HSHQDC-17-C-00019. The content of this specification does not +necessarily reflect the position or the policy of the U.S. Government +and no official endorsement should be inferred. +

+ +

+Work on this registry has also been supported by the Rebooting the +Web of Trust community facilitated by Christopher Allen, Shannon +Appelcline, Kiara Robles, Brian Weller, Betty Dhamers, Kaliya Young, +Kim Hamilton Duffy, Manu Sporny, Drummond Reed, Joe Andrieu, and +Heather Vescent, Dmitri Zagidulin, and Dan Burnett. +

+

+ This document was published by the Decentralized Identifier Working Group as a + First Public Working Group Note. + +

+ GitHub Issues are preferred for + discussion of this specification. + + Alternatively, you can send comments to our mailing list. + Please send them to + public-did-wg@w3.org + (archives). + +

+ Publication as a Working Group Note does not imply endorsement by the W3C + Membership. This is a draft document and may be updated, replaced or + obsoleted by other documents at any time. It is inappropriate to cite this + document as other than work in progress. +

+ + This document was produced by a group + operating under the + W3C Patent Policy. + + + +

+ This document is governed by the + 1 March 2019 W3C Process Document. +

+ +

1. Conformance

+ As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative. +

+ The key words MAY, MUST, MUST NOT, and SHOULD in this document + are to be interpreted as described in + BCP 14 + [RFC2119] [RFC8174] + when, and only when, they appear in all capitals, as shown here. +

+ +
+

2. Introduction

This section is non-normative.

+ +

+This document serves as an official registry for all known global parameters, +properties, and values used by the Decentralized Identifier ecosystem. +

+
+ +
+

3. The Registration Process

+

+Software implementers might find that the existing Decentralized Identifier Core +specification [DID-CORE] is not entirely capable of addressing their use case +and might need to add a new parameters, properties, or values to this registry +in order to achieve their use case in a globally interoperable fashion. In order +to add a new parameter, property, or value to this registry, an implementer MUST +submit a modification request for this registry, as a Github Pull Request, where +the modification request adheres to the following rules: +

+ +
    +
  1. +Any addition to the DID Core Registries MUST specify a human readable +description of the addition. +
  2. +
  3. +Any addition to the DID Core Registries MUST link, via at least a URL, +preferably a content-integrity protected one, to the defining specification so +that implementers can implement the property. +
  4. +
  5. +Any addition to the DID Core Registries that is a property or value, MUST +specify a machine readable JSON-LD Context for the addition. +
      +
    • +The JSON-LD Context MUST be included in full as part of the submission. +
    • +
    • +A namespace URI MUST be provided for the JSON-LD Context so that consumer +implementations can consistently map a URI to the full context. +
    • +
    • +The URI provided MUST be persistent, and link all terms to their associated +human readable descriptions. +
    • +
    • +The URI provided SHOULD resolve or link to the full context contents. +
    • +
    • +JSON-LD Contexts MUST be versioned and MUST NOT be date stamped. +
    • +
    • +JSON-LD Contexts SHOULD use scoped terms and MUST use the @protected +feature to eliminate the possibility of term conflicts. +
    • +
    +
  6. +
  7. +Any addition to the DID Core Registries MUST specify a non-normative JSON Schema +(the defining specification is normative) for the addition. +
  8. +
  9. +Properties in the DID Core Registries MUST NOT be removed, only deprecated. +
  10. +
+ +

+Additions that do not meet these criteria MUST NOT be accepted. Entries that +are identified to cause interoperability problems MAY be marked as such +at the discretion of the maintainers of this registry, and if possible, after +consultation with the entry maintainer. +

+
+ + +
+

4. Properties

+

+The following section defines the properties available for use in a DID +document. Note that some of these properties are defined in the +DID Core Specification, and +others are defined elsewhere and may be method- or domain-specific. Please read +the associated specifications to ensure that the properties you use are +appropriate for your implementation. The properties are arranged here according +to the purpose they serve. +

+ +
Issue

+This registry is a work in progress and some properties are missing normative +definitions. We are working on this! This does NOT mean that in future it will +be possible to submit items to the registry without normative definitions (see § 3. The Registration Process). +

+ +
+

4.1 Base properties

+

+These properties are foundational to DID documents, and are expected to be +useful to all DID methods. +

+

4.1.1 @context

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ DID Core + + JSON Schema + + /did/v1 + +
+ +
+
+ Example 1: Example of @context property +
{
+  "@context": [
+    "https://www.w3.org/ns/did/v1",
+    "https://example.com/blockchain-identity/v1"
+  ],
+  ...
+}
+
+ +
+ +
+

4.1.2 id

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ DID Core + + JSON Schema + + /did/v1 + +
+ +
+
+ Example 2: Example of id property +
{
+  "id": "did:example:123",
+  ...
+}
+
+
+ +
+

4.1.3 controller

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ DID Core + + JSON Schema + + /did/v1 + +
+ +
+
+ Example 3: Example of controller property +
{
+  "controller": "did:example:123",
+  ...
+}
+
+
+ + +
+

4.1.4 verificationMethod

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ DID Core Terminology (property definition pending) + + + /did/v1 + +
+
+ +
+

4.1.5 publicKey

+ +
Issue

+This property may be replaced entirely by verificationMethod in +DID Core. See issue +#283. +

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ DID Core + + JSON Schema + + /did/v1 + +
+ +
+
+ Example 4: Example of publicKey property +
{
+  "id": "did:example:123",
+  "publicKey": [
+    {
+      "id": "did:example:123#ZC2jXTO6t4R501bfCXv3RxarZyUbdP2w_psLwMuY6ec",
+      "type": "Ed25519VerificationKey2018",
+      "controller": "did:example:123",
+      "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
+    },
+    {
+      "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+      "type": "EcdsaSecp256k1VerificationKey2019",
+      "controller": "did:example:123",
+      "publicKeyJwk": {
+        "crv": "secp256k1",
+        "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+        "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+        "kty": "EC",
+        "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+      }
+    }
+  ]
+}
+
+
+ +
+

4.1.6 service

+ + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ DID Core + + JSON Schema + + /did/v1 + +
+ +
+
+ Example 5: Example of service and serviceEndpoint properties +
{
+  ...
+  "service": [{
+    "id": "did:example:123#edv",
+    "type": "EncryptedDataVault",
+    "serviceEndpoint": "https://edv.example.com/"
+  }]
+}
+
+ +
+ +
+

4.1.7 proof

+
Issue

+Subject to removal from DID Core - see +issue #293. +

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ DID Core + + + /did/v1 + +
+ +
+ +
+ +
+

4.2 Services

+

+These terms are properties or types belonging to objects in the value of +service. +

+
+

4.2.1 serviceEndpoint

+ + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ DID Core + + JSON Schema + + /did/v1 + +
+ +
+
+ Example 6: Example of service and serviceEndpoint properties +
{
+  ...
+  "service": [{
+    "id": "did:example:123#edv",
+    "type": "EncryptedDataVault",
+    "serviceEndpoint": "https://edv.example.com/"
+  }]
+}
+
+ +
+
+ +
+

4.3 Verification relationships

+

+A DID document expresses the relationship between the DID subject and a +verification method using a + +verification relationship. +

+
+

4.3.1 assertionMethod

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ security-vocab + + JSON Schema + + /did/v1 + +
+ +
+
+ Example 7: Example of assertionMethod property +
{
+  ...
+  "publicKey": [{
+    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+    "type": "EcdsaSecp256k1VerificationKey2019",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "crv": "secp256k1",
+      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+      "kty": "EC",
+      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+    }
+  }],
+  "assertionMethod": [{
+    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
+    "type": "Ed25519VerificationKey2018",
+    "controller": "did:example:123",
+    "publicKeyBase58": "BYEz8kVpPqSt5T7DeGoPVUrcTZcDeX5jGkGhUQBWmoBg"
+  },
+  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+  ]
+}
+
+
+ +
+

4.3.2 authentication

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ DID Core + + JSON Schema + + /did/v1 + +
+ +
+
+ Example 8: Example of authentication property +
{
+  ...
+  "publicKey": [{
+    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+    "type": "EcdsaSecp256k1VerificationKey2019",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "crv": "secp256k1",
+      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+      "kty": "EC",
+      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+    }
+  }],
+  "authentication": [{
+    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
+    "type": "Ed25519VerificationKey2018",
+    "controller": "did:example:123",
+    "publicKeyBase58": "BYEz8kVpPqSt5T7DeGoPVUrcTZcDeX5jGkGhUQBWmoBg"
+  },
+  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+  ]
+}
+
+
+ +
+

4.3.3 capabilityDelegation

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ security-vocab + + JSON Schema + + /did/v1 + +
+
+
+ Example 9: Example of capabilityDelegation property +
{
+  ...
+  "publicKey": [{
+    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+    "type": "EcdsaSecp256k1VerificationKey2019",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "crv": "secp256k1",
+      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+      "kty": "EC",
+      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+    }
+  }],
+  "capabilityDelegation": [{
+    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
+    "type": "Ed25519VerificationKey2018",
+    "controller": "did:example:123",
+    "publicKeyBase58": "BYEz8kVpPqSt5T7DeGoPVUrcTZcDeX5jGkGhUQBWmoBg"
+  },
+  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+  ]
+}
+
+
+ +
+

4.3.4 capabilityInvocation

+ + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ security-vocab + + JSON Schema + + /did/v1 + +
+ +
+
+ Example 10: Example of capabilityInvocation property +
{
+  ...
+  "publicKey": [{
+    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+    "type": "EcdsaSecp256k1VerificationKey2019",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "crv": "secp256k1",
+      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+      "kty": "EC",
+      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+    }
+  }],
+  "capabilityInvocation": [{
+    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
+    "type": "Ed25519VerificationKey2018",
+    "controller": "did:example:123",
+    "publicKeyBase58": "BYEz8kVpPqSt5T7DeGoPVUrcTZcDeX5jGkGhUQBWmoBg"
+  },
+  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+  ]
+}
+
+
+ +
+

4.3.5 keyAgreement

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ security-vocab + + JSON Schema + + /did/v1 + +
+ +
+
+ Example 11: Example of keyAgreement property +
{
+  ...
+  "keyAgreement": [
+    {
+      "id": "did:example:123#zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS",
+      "type": "X25519KeyAgreementKey2019",
+      "controller": "did:example:123",
+      "publicKeyBase58": "9hFgmPVfmBZwRvFEyniQDBkz9LmV7gDEqytWyGZLmDXE"
+    }
+  ]
+}
+
+
+
+ +
+

4.4 Verification method properties

+

+These properties are for use on a verification method object, not on the DID document itself. +

+
+

4.4.1 ethereumAddress

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ ESRS2020 + + + esrs2020 + +
+
+
+ Example 12: Example of ethereumAddress property +
{
+  "@context":[
+    "https://www.w3.org/ns/did/v1",
+    "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
+  ],
+  "id":"did:example:123",
+  "publicKey":[{
+    "id": "did:example:123#vm-3",
+    "controller": "did:example:123",
+    "type": "EcdsaSecp256k1RecoveryMethod2020",
+    "ethereumAddress": "0xF3beAC30C498D9E26865F34fCAa57dBB935b0D74"
+  }]
+}
+
+
+ +
+

4.4.2 publicKeyHex

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ ESRS2020 + + + esrs2020 + +
+
+
+ Example 13: Example of publicKeyHex property +
{
+  "@context":[
+    "https://www.w3.org/ns/did/v1",
+    "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
+  ],
+  "id":"did:example:123",
+  "publicKey":[{
+    "id": "did:example:123#vm-2",
+    "controller": "did:example:123",
+    "type": "EcdsaSecp256k1RecoveryMethod2020",
+    "publicKeyHex": "027560af3387d375e3342a6968179ef3c6d04f5d33b2b611cf326d4708badd7770"
+  }]
+}
+
+
+ +
+

4.4.3 publicKeyJwk

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ Normative definition pending + + + /did/v1 + +
+ +
+
+ Example 14: Example of publicKeyJwk property +
{
+  "id": "did:example:123#_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A",
+  "type": "JsonWebKey2020",
+  "controller": "did:example:123",
+  "publicKeyJwk": {
+    "crv": "Ed25519",
+    "x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ",
+    "kty": "OKP",
+    "kid": "_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A"
+  }
+},
+
+
+ +
+

4.4.4 publicKeyBase58

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ security-vocab + + + /did/v1 + +
+ +
+ +
+

4.4.5 publicKeyPem

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ security-vocab + + + /did/v1 + +
+ +
+
+ +
+

4.5 Verification method types

+

+These are classes not a properties - in other words, use them +for the value of type in a verification method object. +

+
+

4.5.1 JwsVerificationKey2020

+ +
Issue

+ISSUE 240 on DID Core: The duplication and/or possible interaction of properties held in a JWK and a verification method are an active topic of discussion in the Working Group. Implementers are cautioned that the behavior of values associated with this property are not stable and might change in the future. +

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ Normative definition pending + + JSON Schema + + +
+ +
+
+ Example 15: Example of JwsVerificationKey2020 class +
{
+  "id": "did:example:123#_TKzHv2jFIyvdTGF1Dsgwngfdg3SH6TpDv0Ta1aOEkw",
+  "type": "JwsVerificationKey2020",
+  "controller": "did:example:123",
+  "publicKeyJwk": {
+    "crv": "P-256",
+    "x": "38M1FDts7Oea7urmseiugGW7tWc3mLpJh6rKe7xINZ8",
+    "y": "nDQW6XZ7b_u2Sy9slofYLlG03sOEoug3I0aAPQ0exs4",
+    "kty": "EC",
+    "kid": "_TKzHv2jFIyvdTGF1Dsgwngfdg3SH6TpDv0Ta1aOEkw"
+  }
+}
+
+
+
+

4.5.2 EcdsaSecp256k1VerificationKey2019

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ Ecdsa Secp256k1 Signature 2019 + + JSON Schema + + /did/v1 + +
+ +
+
+ Example 16: Example of EcdsaSecp256k1VerificationKey2019 class +
{
+  "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+  "type": "EcdsaSecp256k1VerificationKey2019",
+  "controller": "did:example:123",
+  "publicKeyJwk": {
+    "crv": "secp256k1",
+    "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+    "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+    "kty": "EC",
+    "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+  }
+}
+
+
+ +
+

4.5.3 Ed25519VerificationKey2018

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ Ed25519 Signature 2018 + + JSON Schema + + /did/v1 + +
+ +
+
+ Example 17: Example of Ed25519VerificationKey2018 class +
{
+  "id": "did:example:123#ZC2jXTO6t4R501bfCXv3RxarZyUbdP2w_psLwMuY6ec",
+  "type": "Ed25519VerificationKey2018",
+  "controller": "did:example:123",
+  "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
+}
+
+
+ +
+

4.5.4 GpgVerificationKey2020

+
Warning

+ No support for "Pure JSON" or "CBOR" is currently provided. +

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ Linked Data Signatures for GPG + + Not supported + + gpg.jsld.org + + Not supported +
+
+
{
+  "@context":[
+    "https://www.w3.org/ns/did/v1",
+    "https://gpg.jsld.org/contexts/lds-gpg2020-v0.0.jsonld"
+  ],
+  "id":"did:example:123",
+  "publicKey":[{
+    "id": "did:example:123#989ed1057a294c8a3665add842e784c4d08de1e2",
+    "type": "GpgVerificationKey2020",
+    "controller": "did:example:123",
+    "publicKeyGpg": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\nVersion: OpenPGP.js v4.9.0\r\nComment: https://openpgpjs.org\r\n\r\nxjMEXkm5LRYJKwYBBAHaRw8BAQdASmfrjYr7vrjwHNiBsdcImK397Vc3t4BL\r\nE8rnN......v6\r\nDw==\r\n=wSoi\r\n-----END PGP PUBLIC KEY BLOCK-----\r\n"
+  }]
+}
+
+
+ +
+

4.5.5 RsaVerificationKey2018

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ RSA Signature Suite 2018 + + + /did/v1 + +
+
+
{
+  "id": "did:example:123#key-0",
+  "type": "RsaVerificationKey2018",
+  "controller": "did:example:123",
+  "publicKeyPem": "-----BEGIN PUBLIC KEY...END PUBLIC KEY-----\r\n"
+}
+
+
+ +
+

4.5.6 X25519KeyAgreementKey2019

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ Normative definition pending + + + +
+
+
+ Example 20: Example of X25519KeyAgreementKey2019 +
{
+  ...
+  "keyAgreement": [
+    {
+      "id": "did:example:123#zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS",
+      "type": "X25519KeyAgreementKey2019",
+      "controller": "did:example:123",
+      "publicKeyBase58": "9hFgmPVfmBZwRvFEyniQDBkz9LmV7gDEqytWyGZLmDXE"
+    }
+  ]
+}
+
+ +
+ +
+

4.5.7 SchnorrSecp256k1VerificationKey2019

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ security-vocab Link is to a placeholder! Definition pending + + + /did/v1 + +
+
+ +
+

4.5.8 EcdsaSecp256k1RecoveryMethod2020

+ + + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ ESRS2020 + + + esrs2020 + +
+
+
{
+"@context":[
+  "https://www.w3.org/ns/did/v1",
+  "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
+],
+"id":"did:example:123",
+"publicKey":[{
+  "id": "did:example:123#vm-1",
+  "controller": "did:example:123",
+  "type": "EcdsaSecp256k1RecoveryMethod2020",
+  "publicKeyJwk": {
+    "crv": "secp256k1",
+    "kid": "JUvpllMEYUZ2joO59UNui_XYDqxVqiFLLAJ8klWuPBw",
+    "kty": "EC",
+    "x": "dWCvM4fTdeM0KmloF57zxtBPXTOythHPMm1HCLrdd3A",
+    "y": "36uMVGM7hnw-N6GnjFcihWE3SkrhMLzzLCdPMXPEXlA"
+  }
+},
+{
+  "id": "did:example:123#vm-2",
+  "controller": "did:example:123",
+  "type": "EcdsaSecp256k1RecoveryMethod2020",
+  "publicKeyHex": "027560af3387d375e3342a6968179ef3c6d04f5d33b2b611cf326d4708badd7770"
+},
+{
+  "id": "did:example:123#vm-3",
+    "controller": "did:example:123",
+    "type": "EcdsaSecp256k1RecoveryMethod2020",
+    "ethereumAddress": "0xF3beAC30C498D9E26865F34fCAa57dBB935b0D74"
+  }]
+}
+
+
+ +
+ +
+

4.6 DID resolution options

+

+These properties contain information pertaining to the DID resolution request. +

+ +
+

4.6.1 accept

+ + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ + + +
+
+
+ +
+

4.7 DID resolution metadata

+

+These properties contain information pertaining to the DID resolution response. +

+
+

4.7.1 content-type

+ + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ + + +
+
+ +
+

4.7.2 error

+ + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ + + +
+
+ +
+

4.7.3 invalid-did

+ + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ + + +
+
+ +
+

4.7.4 unauthorized

+ + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ + + +
+
+
+ +
+

4.8 DID document metadata

+

+These properties contain information pertaining to the DID document iself, +rather than the DID subject. +

+
+

4.8.1 created

+ + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ DID Core + + JSON Schema + + /did/v1 + + CBOR +
+ +
+
{
+  "created": "2002-10-10T17:00:00Z"
+}
+
+
+ +
+

4.8.2 updated

+ + + + + + + + + + + + + + + + + +
Normative DefinitionJSON SchemaJSON-LDCBOR
+ DID Core + + JSON Schema + + /did/v1 + + CBOR +
+ +
+
+ Example 23: Example of updated property +
{
+  "updated": "2016-10-17T02:41:00Z"
+}
+
+ +
+
+ +
+ +
+ +

5. Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Name + +Description + +Specification +
+hl + +A resource hash of the DID document to add integrity protection, as +specified in +Hashlink specification. + +[DID-CORE] +
+service + +Identifies a service from the DID document by service ID. + +[DID-CORE] +
+version-id + +Identifies a specific version of a DID document to be resolved (the +version ID could be sequential, or a UUID, or method-specific). Note that +this parameter might not be supported by all DID methods. + +[DID-CORE] +
+version-time + +Identifies a certain version timestamp of a DID document to be resolved. +That is, the DID document that was valid for a DID at a certain +time. Note that this parameter might not be supported by all DID methods. + +[DID-CORE] +
+ +
Issue 32: Add Example to The Core Parameters

+ Example needed. +

+
Issue 30: Add Example to The Parameters Extension Registry

+ Example needed. +

+ +
+ +
+

6. DID Methods

+ + +

+This table summarizes the DID method specifications currently in development. +The links will be updated as subsequent Implementer’s Drafts are produced. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Method NameStatusDLT or NetworkAuthorsLink
+ did:abt: + + PROVISIONAL + + ABT Network + + ArcBlock + + ABT DID Method +
+ did:btcr: + + PROVISIONAL + + Bitcoin + + Christopher Allen, Ryan Grant, Kim Hamilton Duffy + + BTCR DID Method +
+ did:stack: + + PROVISIONAL + + Bitcoin + + Jude Nelson + + Blockstack DID Method +
+ did:erc725: + + PROVISIONAL + + Ethereum + + Markus Sabadello, Fabian Vogelsteller, Peter Kolarov + + erc725 DID Method +
+ did:example: + + PROVISIONAL + + DID Specification + + W3C Credentials Community Group + + DID Specification +
+ did:ipid: + + PROVISIONAL + + IPFS + + TranSendX + + IPID DID method +
+ did:life: + + PROVISIONAL + + RChain + + lifeID Foundation + + lifeID DID Method +
+ did:sov: + + PROVISIONAL + + Sovrin + + Mike Lodder + + Sovrin DID Method +
+ did:uport: + + DEPRECATED + + Ethereum + + uPort + +
+ did:ethr: + + PROVISIONAL + + Ethereum + + uPort + + ETHR DID Method +
+ did:v1: + + PROVISIONAL + + Veres One + + Digital Bazaar + + Veres One DID Method +
+ did:com: + + PROVISIONAL + + commercio.network + + Commercio Consortium + + Commercio.network DID Method +
+ did:dom: + + PROVISIONAL + + Ethereum + + Dominode + +
+ did:ont: + + PROVISIONAL + + Ontology + + Ontology Foundation + + Ontology DID Method +
+ did:vvo: + + PROVISIONAL + + Vivvo + + Vivvo Application Studios + + Vivvo DID Method +
+ did:aergo: + + PROVISIONAL + + Aergo + + Blocko + + Aergo DID Method +
+ did:icon: + + PROVISIONAL + + ICON + + ICONLOOP + + ICON DID Method +
+ did:iwt: + + PROVISIONAL + + InfoWallet + + Raonsecure + + InfoWallet DID Method +
+ did:ockam: + + PROVISIONAL + + Ockam + + Ockam + + Ockam DID Method +
+ did:ala: + + PROVISIONAL + + Alastria + + Alastria National Blockchain Ecosystem + + Alastria DID Method +
+ did:op: + + PROVISIONAL + + Ocean Protocol + + Ocean Protocol + + Ocean Protocol DID Method +
+ did:jlinc: + + PROVISIONAL + + JLINC Protocol + + Victor Grey + + JLINC Protocol DID Method +
+ did:ion: + + PROVISIONAL + + Bitcoin + + Various DIF contributors + + ION DID Method +
+ did:jolo: + + PROVISIONAL + + Ethereum + + Jolocom + + Jolocom DID Method +
+ did:bryk: + + PROVISIONAL + + bryk + + Marcos Allende, Sandra Murcia, Flavia Munhoso, Ruben Cessa + + bryk DID Method +
+ did:peer: + + PROVISIONAL + + peer + + Daniel Hardman + + peer DID Method +
+ did:selfkey: + + PROVISIONAL + + Ethereum + + SelfKey + + SelfKey DID Method +
+ did:meta: + + PROVISIONAL + + Metadium + + Metadium Foundation + + Metadium DID Method +
+ did:tys: + + PROVISIONAL + + DID Specification + + Chainyard + + TYS DID Method +
+ did:git: + + PROVISIONAL + + DID Specification + + Internet Identity Workshop + + Git DID Method +
+ did:tangle: + + PROVISIONAL + + IOTA Tangle + + BiiLabs Co., Ltd. + + TangleID DID Method +
+ did:emtrust: + + PROVISIONAL + + Hyperledger Fabric + + Halialabs Pte Ltd. + + Emtrust DID Method +
+ did:ttm: + + PROVISIONAL + + TMChain + + Token.TM + + TM DID Method +
+ did:wlk: + + PROVISIONAL + + Weelink Network + + Weelink + + Weelink DID Method +
+ did:pistis: + + PROVISIONAL + + Ethereum + + Andrea Taglia, Matteo Sinico + + Pistis DID Method +
+ did:holo: + + PROVISIONAL + + Holochain + + Holo.Host + + Holochain DID Method +
+ did:web: + + PROVISIONAL + + Web + + Oliver Terbu, Mike Xu, Dmitri Zagidulin, Amy Guy + + Web DID Method +
+ did:io: + + PROVISIONAL + + IoTeX + + IoTeX Foundation + + IoTeX DID Method +
+ did:vaultie: + + PROVISIONAL + + Ethereum + + Vaultie Inc. + + Vaultie DID Method +
+ did:moac: + + PROVISIONAL + + MOAC + + MOAC Blockchain Tech, Inc. + + MOAC DID Method +
+ did:omn: + + PROVISIONAL + + OmniOne + + OmniOne + + OmniOne DID Method +
+ did:work: + + PROVISIONAL + + Hyperledger Fabric + + Workday, Inc. + + Workday DID Method +
+ did:vid: + + PROVISIONAL + + VP + + VP Inc. + + VP DID Method +
+ did:ccp: + + PROVISIONAL + + Quorum + + Baidu, Inc. + + Cloud DID Method +
+ did:jnctn: + + PROVISIONAL + + Jnctn Network + + Jnctn Limited + + JNCTN DID Method +
+ did:evan: + + PROVISIONAL + + evan.network + + evan GmbH + + evan.network DID Method +
+ did:elastos: + + PROVISIONAL + + Elastos ID Sidechain + + Elastos Foundation + + Elastos DID Method +
+ did:kilt: + + PROVISIONAL + + KILT Blockchain + + BOTLabs GmbH + + KILT DID Method +
+ did:elem: + + PROVISIONAL + + Element DID + + Transmute + + ELEM DID Method +
+ did:github: + + PROVISIONAL + + Github + + Transmute + + GitHub DID Method +
+ did:bid: + + PROVISIONAL + + bif + + teleinfo caict + + BIF DID Method +
+ did:ptn: + + PROVISIONAL + + PalletOne + + PalletOne + + PalletOne DID Method +
+ did:echo: + + PROVISIONAL + + Echo + + Echo Technological Solutions LLC + + Echo DID Method +
+ did:trustbloc: + + PROVISIONAL + + Hyperledger Fabric + + SecureKey + + TrustBloc DID Method +
+ did:san: + + PROVISIONAL + + SAN Cloudchain + + YLZ Inc. + + SAN DID Method +
+ did:gatc: + + PROVISIONAL + + Ethereum, Hyperledger Fabric, Hyperledger Besu, Alastria + + Gataca + + Gataca DID Method +
+ did:factom: + + PROVISIONAL + + Factom + + Sphereon, Factomatic, Factom Inc + + Factom DID Method +
+ did:signor: + + PROVISIONAL + + Ethereum, Hedera Hashgraph, Quorum, Hyperledger Besu + + Cryptonics + + Signor DID Method +
+ did:hedera: + + PROVISIONAL + + Hedera Hashgraph + + Hedera Hashgraph, Swisscom Blockchain AG + + Hedera Hashgraph DID Method +
+ did:schema: + + PROVISIONAL + + Multiple storage networks, currently public IPFS and evan.network IPFS + + 51nodes GmbH + + Schema Registry DID Method +
+ +
+ + + + +

A. References

+

A.1 + Normative references +

+
+
[DID-CORE]
Decentralized Identifiers (DIDs) v1.0. Drummond Reed; Manu Sporny; Markus Sabadello; Dave Longley; Christopher Allen. W3C. 21 April 2020. W3C Working Draft. URL: https://www.w3.org/TR/did-core/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://tools.ietf.org/html/rfc8174
+
\ No newline at end of file diff --git a/transitions/2024/NOTE/did-extensions-methods/index.html b/transitions/2024/NOTE/did-extensions-methods/index.html new file mode 100644 index 00000000..623f7bbb --- /dev/null +++ b/transitions/2024/NOTE/did-extensions-methods/index.html @@ -0,0 +1,648 @@ + + + + + + +DID Methods + + + + + + + + + + + + + + + +
+

+

DID Methods

Known DID Methods in the Decentralized Identifier Ecosystem

+

W3C Group Note

+
+ More details about this document +
+
This version:
+ https://www.w3.org/TR/2024/NOTE-did-extensions-methods-20241119/ +
+
Latest published version:
+ https://www.w3.org/TR/did-extensions-methods/ +
+
Latest editor's draft:
https://w3c.github.io/did-extensions/methods/
+
History:
+ https://www.w3.org/standards/history/did-extensions-methods/ +
+ Commit history +
+ + + + + +
Editors:
+ Manu Sporny (Digital Bazaar) (2017-present) +
+ Markus Sabadello (Danube Tech) (2020-present) +
+
+ Former editors: +
+ Orie Steele (Transmute) (2020-2022) +
+ Amy Guy (Digital Bazaar) (2020-2022) +
+ Ivan Herman + + + + (W3C) (2020-2022) +
+
Author:
+ The Decentralized Identifier Working Group (W3C) +
+
Feedback:
+ GitHub w3c/did-extensions + (pull requests, + new issue, + open issues) +
public-did-wg@w3.org with subject line [did-extensions-methods] … message topic … (archives)
+ +
Related Documents
+ DID Core +
+ DID Core Implementation Report +
+ DID Use Cases and Requirements +
+
+
+ + + +
+
+

Abstract

+

+This document serves as a collection of known DID Methods. +

+
+ +

Status of This Document

This section describes the status of this + document at the time of its publication. A list of current W3C + publications and the latest revision of this technical report can be found + in the W3C technical reports index at + https://www.w3.org/TR/.

+ +

+Comments regarding this document are welcome. Please file issues +directly on +GitHub, +or send them +to public-did-wg@w3.org ( +subscribe, +archives). +

+ +

+Portions of the work on this specification have been funded by the +United States Department of Homeland Security's Science and Technology +Directorate under contracts HSHQDC-16-R00012-H-SB2016-1-002, 70RSAT20T00000010, +and HSHQDC-17-C-00019. The content of this specification does not +necessarily reflect the position or the policy of the U.S. Government +and no official endorsement should be inferred. +

+ +

+Work on this registry has also been supported by the Rebooting the +Web of Trust community facilitated by Christopher Allen, Shannon +Appelcline, Kiara Robles, Brian Weller, Betty Dhamers, Kaliya Young, +Kim Hamilton Duffy, Manu Sporny, Drummond Reed, Joe Andrieu, and +Heather Vescent, Dmitri Zagidulin, and Dan Burnett. +

+

+ This document was published by the Decentralized Identifier Working Group as + a Group Note using the + Note track. +

This Group Note is endorsed by + the Decentralized Identifier Working Group, but is not endorsed by + W3C itself nor its + Members.

+ This is a draft document and may be updated, replaced or obsoleted by other + documents at any time. It is inappropriate to cite this document as other + than work in progress. + +

+ + The + W3C Patent + Policy + does not carry any licensing requirements or commitments on this + document. + + +

+ This document is governed by the + 03 November 2023 W3C Process Document. +

+ +

1. Introduction

This section is non-normative.

+ + +

+This document serves as a collection of known DID Methods. +

+ +

1.1 The Registration Process

+ +

+The registration process is described in the Decentralized Identifier Extensions. +

+
+ +

1.2 Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

+ +
+ +

2. DID Methods

+ + +

+This table summarizes the DID method specifications currently in development. +The links will be updated as subsequent Implementer’s Drafts are produced. +This registry does not act as an endorsement of any particular DID method or its +underlying technologies by the W3C, the W3C Decentralized Identifier Working Group, +or any affiliated members of the W3C. It exists as a mechanism for developers to +discover various DID methods that they might wish to implement. +

+

+The normative requirements for DID method specifications can be found in +Decentralized Identifiers +v1.0: Methods [DID-CORE]. DID methods that do not meet these requirements +will not be accepted. We encourage DID method authors to provide an email +address in the Author Links column, as this helps with maintenance. +If an email address is omitted, a label noting that there is no +contact information for the author will be applied to the registry entry. +

+ +
DID MethodRegistryContact
3Ceramic Network3Box Labs (email) (website)
abtABT NetworkArcBlock
aergoAergoBlocko (website)
alaAlastriaAlastria National Blockchain Ecosystem
amoAMO blockchain mainnetAMO Labs (website)
antelopeAntelopeTonomy Foundation (website)
artArtwork ID MethodDaniel Chun (email) (website)
assetLedger-independent generative DID method based on CAIP-19 identifiersBOTLabs GmbH (email) (website)
bbaArdorAttila Aldemir (email)
beeLedger agnosticmesur.io (email) (website)
bidbifteleinfo caict
bitd.idd.id (email) (website)
bluetoqueagentTrusted Digital WebHyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website)
bluetoquedeedTrusted Digital WebHyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website)
bluetoquenfeTrusted Digital WebHyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website)
bluetoqueprocTrusted Digital WebHyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website)
bnbBinance Smart ChainOntology Foundation
brykbrykMarcos Allende, Sandra Murcia, Flavia Munhoso, Ruben Cessa
bsvBSVThomas Moretti (email) (website)
btcoBTCAviary Tech (email) (website)
btcrBitcoinChristopher Allen, Ryan Grant, Kim Hamilton Duffy
candidQuorumEric Lin (email) (website)
ccdConcordiumConcordium development team (email) (website)
ccfConfidential Consortium Framework (CCF)Microsoft (email) (website)
ccpQuorumBaidu, Inc.
celoCeloOntology Foundation
cheqdcheqdCHEQD FOUNDATION LIMITED (email) (website)
comcommercio.networkCommercio Consortium
contentMizuki Sonoko (email) (website)
cordaCordaNitesh Solanki,Moritz Platt,Pranav Kirtani
cosmosCosmos application chainsShaun Conway (email) (website)
cotCoTChainCoTNetwork, Inc. (website)
crHyperledger Fabric (email)
ctCircular Trust (email) (website)
ctidBeijing Zhongdun Anxin Science and Technology Development Co., Ltd (email) (website)
dhtMainline DHTTBD (website)
didDecentralized IdentifiersSpruce Systems, Inc. (website)
dnsDomain Name System (DNS)Danube Tech (email) (website)
dockDockDock.io (website)
domEthereumDominode
dotbitd.idd.id (email) (website)
dsrvdsrv (email) (website)
dualEthereumSmart ID Card Alliance
dxdfabric.data-alliace.comData Alliance Co., Ltd. (email) (website)
dyneDyne.org FoundationAndrea D'Intino (email) (website)
echoEchoEcho Technological Solutions LLC
elastosElastos ID SidechainElastos Foundation
elemElement DIDTransmute
emtrustHyperledger FabricHalialabs Pte Ltd.
ensEthereumConsenSys MESH (email) (website)
eosioEOSIOGimly Blockchain (website)
eratDID SpecificationERATOSTHENES project (email) (website)
erc725EthereumMarkus Sabadello, Fabian Vogelsteller, Peter Kolarov (email)
ethoEthereumOntology Foundation
ethrEthereumuPort
evAny Ethereum or EVM-compatible ledgerDavid Ammouial (NTT DATA) (email) (website)
evanevan.networkevan GmbH
everscaleEverscale blockchainDmitry V. Samorodkin (email) (website)
exampleDID SpecificationW3C DID Working Group
factomFactomSphereon, Factomatic, Factom Inc
fairxFairX NodeMichael Dowling (email) (website)
futureNetease ChainNetease Blockchain Team
gatcEthereum, Hyperledger Fabric, Hyperledger Besu, AlastriaGataca (website)
gnsGNU Name SystemGNUnet (email) (website)
grgGrgChainGRGBanking Blockchain Express Co. Ltd.
grnAny CosmWasm-compatible ledgerEG-easy
gwmGreat Wall ChainGreat Wall Motor Company Limited
healthDID Healthsupport (email) (website)
hederaHedera HashgraphHedera Hashgraph, Swisscom Blockchain AG
hidHypersign Blockchain NetworkHypermine Limited (email) (website)
holoHolochainHolo.Host
hpassHyperledger FabricIBM
hpoHippocrat DAO
hskPlatONHashKey DID (email)
iamxundefinedIAMX AG, 6300 Zug, Switzerland (email) (website)
ibmdcHyperledger FabricIBM Digital Credentials (email) (website)
iconICONICONLOOP
idID ServiceMastercard (website)
iden3EVM compatible chainsZK ID Labs AG, Polygon ID (website)
iidInspur Chainzoe Yian (email)
indyAny Hyperledger Indy LedgerStephen Curran (email)
infraInfraBlockchainBlockchain Labs
ioIoTeXIoTeX Foundation
ionBitcoinVarious DIF contributors
iotaIOTAIOTA Foundation (website)
ipidIPFSTranSendX
isBlockcoreBlockcore
isccPublic BlockchainsISCC Foundation (email) (website)
itnHyperledger Fabric (Private Network) and Arbitrum OneUmed Khudoiberdiev (email) (website)
iwtInfoWalletRaonsecure
jlincJLINC ProtocolVictor Grey
jlinxJLINX ProtocolVictor Grey (email)
jnctnJnctn NetworkJnctn Limited
joloEthereumJolocom
jwkLedger agnosticJeremie Miller (email)
kanameAny EVM Compatible Blockchains (website)
kdidFISCO BCOSKINGDOM FINTECH(BEIJING)CO,LTD. (email)
keriLedger agnosticDr. Sam Smith, Charles Cunningham, Phil Feairheller (email)
keyLedger-independent DID method based on public/private key pairsRick Astley (thank you for your inspiration), Manu Sporny, Dmitri Zagidulin, Dave Longley, Orie Steele
kiltKILT BlockchainBOTLabs GmbH (email) (website)
klayKlaytnOntology Foundation
klayrKlayr SidechainAldo Suhartono Putra (email) (website)
knoxKnox NetworksFrancis Kim (email) (website)
krKorea Mobile Identity SystemMinistry of the Interior and Safety, korea (website)
kscircKSChain BlockchainK4-Security (website)
lacLACChain NetworkLACChain Alliance
ldidChainMakerShujin Public Service (Qingdao) Co., Ltd. (email)
lifeRChainlifeID Foundation
lingLINGK4-Security (email) (website)
litLEDGISIBCT (website)
m2mHyperledger IndySmartM2M. Co., Ltd (email) (website)
memeIPFS & DNS & HTTPDID Meme Maintainers (email) (website)
meshTrusted Digital WebHyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website)
metaMetadiumMetadium Foundation
moacMOACMOAC Blockchain Tech, Inc.
monidEthereumMin Ju
morpheusHydraInternet of People (website)
myDiDDID Specification (email) (website)
mydataiGrant.ioiGrant.io (website)
nearNEAROntology Foundation
nextNextme DIDs NetworkNext Labs (email) (website)
nftCeramic Network3Box Labs (email) (website)
nsWeb 7.0 FoundationWeb 7.0 Foundation (email) (website)
nuggetsNuggets NetworkNuggets Ltd (email) (website)
nutsNuts networkNuts community (email) (website)
objectTrusted Digital WebHyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website)
ockamOckamOckam
omnOmniOneOmniOne
onionLedger agnosticBlockchain Commons (website)
ontOntologyOntology Foundation
opOcean ProtocolOcean Protocol
orbLedger agnosticAvast (email) (website)
oydLedger agnosticOwnYourData.eu (email) (website)
panaceaPanaceaMediBloc
peaqpeaq BlockchainPeaq Technology GmbH (email) (website)
peerpeerDaniel Hardman (email)
pidProofID BlockchainAlvin Reyes (email) (website)
pistisEthereumAndrea Taglia, Matteo Sinico
pkhLedger-independent generative DID method based on CAIP-10 keypair expressionsWayne Chang, Charles Lehner, Juan Caballero, Joel Thorstensson
plchttps://plc.directoryBluesky PBLLC (email) (website)
pmlPML ChainPurple Mountain Laboratories
polygonPolygon (Previously MATIC)AyanWorks, MATIC
polygonidEVM compatible chainsZK ID Labs AG, Polygon ID (website)
prismThe Cardano blockchainInput Output Global Inc (IOG) (email) (website)
psiLEDGISPolice Science Institution (website)
psqrPublic SquareChristian Gribneau (email) (website)
ptnPalletOnePalletOne
qesQESIDnow GmbH (email) (website)
quiQuiHyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website)
rayEthereumRay Peng (email)
realEthereumReal Items (email) (website)
resumeResume DID Method and ProtocolMing-lam Ng with Real Matter Technology and Talent Connect (email) (website)
rmReal-world Asset Tokenization DID MethodMing-lam Ng (RealMatter) (email) (website)
safeSafeSafe Ecosystem Foundation (email) (website)
sanSAN CloudchainYLZ Inc.
schemaMultiple storage networks, currently public IPFS and evan.network IPFS51nodes GmbH
scidStraitsChainLorna (email) (website)
selfLedger agnosticNikos Fotiou (email) (website)
selfkeyEthereumSelfKey
sideosLedger agnosticsideos GmbH (website)
signorEthereum, Hedera Hashgraph, Quorum, Hyperledger BesuCryptonics (website)
siriusProximaX Sirius ChainProximaX Singapore Pte. Ltd. (website)
snailPenpal networkAmy Guy, Dmitri Zagidulin (email)
snplabSNPLab MyD NetworkSNPLab Inc. (email) (website)
solSolanaIdentity.com (email) (website)
sovSovrinMike Lodder
ssbSecure ScuttlebuttCharles E. Lehner
sswInitial NetworkSK telecom (website)
stackBitcoinJude Nelson
tangleIOTA TangleBiiLabs Co., Ltd.
tdidFISCO BCOSTencent Technology (Shenzhen) Co.Ltd (email) (website)
theseriesIPFSHang Hang (email)
tiTiChainHunan tianhe Guoyun Technology Co.Ltd (email) (website)
tlsEthereumUlrich Gallersdörfer, Kilian Käslin
trustTrustChainTrustCerts GmbH
trustblocHyperledger FabricSecureKey
trxTRONOntology Foundation
ttmTMChainToken.TM
twitTwitDID Twit GitHub (website)
tyronZilliqaJulio Cabrapan Duarte
tysDID SpecificationChainyard
tzTezosSpruce Systems, Inc. (website)
unikuns.networkSpace Elephant SAS (website)
unisotBitcoin SVUNISOT AS (website)
unsuns.networkSpace Elephant SAS (website)
uportEthereumuPort
v1Veres One DLTVeres One Maintainer (Digital Bazaar) (email) (website)
vaabifChina Academy of Information and Communications Technology (CAICT)
valyuundefinedValyu Network LTD (email) (website)
vaultieEthereumVaultie Inc.
vertuVERTUV2 (email)
vidVPVP Inc.
vividNEO2, NEO3, ZilliqaVivid (website)
vtidJianKong (email)
vvoVivvoVivvo Application Studios
webWebOliver Terbu, Mike Xu, Dmitri Zagidulin, Amy Guy
web7Web 7.0 FoundationWeb 7.0 Foundation (email) (website)
websWeb, and Key Event Receipt Infrastructure (KERI)Trust over IP (ToIP) DID Method webs Task Force (email) (website)
wlkWeelink NetworkWeelink
workHyperledger FabricWorkday, Inc.
yourdYourD compatible chainsYourD (website)
zkArweavezCloak Network Research (email) (website)
zkmeEVM compatible chains. Primary on PolygonzkMe
+ +
+ + + +

A. References

A.1 Normative references

+ +
[DID-CORE]
+ Decentralized Identifiers (DIDs) v1.0. Manu Sporny; Amy Guy; Markus Sabadello; Drummond Reed. W3C. 19 July 2022. W3C Recommendation. URL: https://www.w3.org/TR/did-core/ +
+

A.2 Informative references

+ +
[DID-EXTENSIONS]
+ Decentralized Identifier Extensions. Manu Sporny. Decentralized Identifier Working Group. W3C Working Group Note. URL: https://www.w3.org/TR/did-extensions/ +
+
\ No newline at end of file diff --git a/transitions/2024/NOTE/did-extensions-properties/index.html b/transitions/2024/NOTE/did-extensions-properties/index.html new file mode 100644 index 00000000..04daadb2 --- /dev/null +++ b/transitions/2024/NOTE/did-extensions-properties/index.html @@ -0,0 +1,2360 @@ + + + + + + + + +DID Document Property Extensions + + + + + + + + + + + + + + + +
+

+

DID Document Property Extensions

Known Extensions for DID Document properties and values

+

W3C Group Note

+
+ More details about this document +
+
This version:
+ https://www.w3.org/TR/2024/NOTE-did-extensions-properties-20241119/ +
+
Latest published version:
+ https://www.w3.org/TR/did-extensions-properties/ +
+
Latest editor's draft:
https://w3c.github.io/did-extensions/properties/
+
History:
+ https://www.w3.org/standards/history/did-extensions-properties/ +
+ Commit history +
+ + + + + +
Editors:
+ Manu Sporny (Digital Bazaar) (2017-present) +
+ Markus Sabadello (Danube Tech) (2020-present) +
+
+ Former editors: +
+ Orie Steele (Transmute) (2020-2022) +
+ Amy Guy (Digital Bazaar) (2020-2022) +
+
Author:
+ The Decentralized Identifier Working Group (W3C) +
+
Feedback:
+ GitHub w3c/did-extensions + (pull requests, + new issue, + open issues) +
public-did-wg@w3.org with subject line [did-extensions-properties] … message topic … (archives)
+ +
Related Documents
+ DID Core +
+ DID Core Implementation Report +
+ DID Use Cases and Requirements +
+
+
+ + + +
+
+

Abstract

+

+This document serves as a collection of known DID Document properties and +property values. +

+
+ +

Status of This Document

This section describes the status of this + document at the time of its publication. A list of current W3C + publications and the latest revision of this technical report can be found + in the W3C technical reports index at + https://www.w3.org/TR/.

+ +

+Comments regarding this document are welcome. Please file issues +directly on +GitHub, +or send them +to public-did-wg@w3.org ( +subscribe, +archives). +

+ +

+Portions of the work on this specification have been funded by the +United States Department of Homeland Security's Science and Technology +Directorate under contracts HSHQDC-16-R00012-H-SB2016-1-002, 70RSAT20T00000010, +and HSHQDC-17-C-00019. The content of this specification does not +necessarily reflect the position or the policy of the U.S. Government +and no official endorsement should be inferred. +

+ +

+Work on this registry has also been supported by the Rebooting the +Web of Trust community facilitated by Christopher Allen, Shannon +Appelcline, Kiara Robles, Brian Weller, Betty Dhamers, Kaliya Young, +Kim Hamilton Duffy, Manu Sporny, Drummond Reed, Joe Andrieu, and +Heather Vescent, Dmitri Zagidulin, and Dan Burnett. +

+

+ This document was published by the Decentralized Identifier Working Group as + a Group Note using the + Note track. +

This Group Note is endorsed by + the Decentralized Identifier Working Group, but is not endorsed by + W3C itself nor its + Members.

+ This is a draft document and may be updated, replaced or obsoleted by other + documents at any time. It is inappropriate to cite this document as other + than work in progress. + +

+ + The + W3C Patent + Policy + does not carry any licensing requirements or commitments on this + document. + + +

+ This document is governed by the + 03 November 2023 W3C Process Document. +

+ +

1. Introduction

This section is non-normative.

+ + +

+This document serves as a collection of known DID Document properties and +property values. +

+ +

1.1 The Registration Process

+ +

+ The registration process is described in the Decentralized Identifier Extensions. +

+
+ +

1.2 Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

+ The key word MUST in this document + is to be interpreted as described in + BCP 14 + [RFC2119] [RFC8174] + when, and only when, they appear in all capitals, as shown here. +

+ +
+ +

2. Property Names

+ + +

+The following section defines the properties available for use in a DID +document. Note that some of these properties are defined in the +DID Core Specification, and +others are defined elsewhere and may be method- or domain-specific. Please read +the associated specifications to ensure that the properties you use are +appropriate for your implementation. The properties are arranged here according +to the purpose they serve. +

+ +
Issue

+This registry is a work in progress and some properties are missing normative +definitions. We are working on this! This does NOT mean that in future it will +be possible to submit items to the registry without normative definitions (see 1.1 The Registration Process). +

+ +

2.1 DID document properties

+ +

+These properties are foundational to DID documents, and are expected to be +useful to all DID methods. + +

2.1.1 id

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 1: Example of id property +
{
+  "id": "did:example:123",
+  ...
+}
+
+
+ +

2.1.2 alsoKnownAs

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 2: Example of alsoKnownAs property +
{
+  "alsoKnownAs": "https://example.com/",
+  ...
+}
+
+
+ +

2.1.3 controller

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 3: Example of controller property +
{
+  "controller": "did:example:123",
+  ...
+}
+
+
+ + +

2.1.4 verificationMethod

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core Terminology + + DID Core +
+
+
+ Example 4: Example of verificationMethod property +
{
+  "id": "did:example:123",
+  "verificationMethod": [
+    {
+      "id": "did:example:123#key-1",
+      "type": "Ed25519VerificationKey2018",
+      "controller": "did:example:123",
+      "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
+    },
+    {
+      "id": "did:example:123#key-2",
+      "type": "JsonWebKey2020",
+      "controller": "did:example:123",
+      "publicKeyJwk": {
+        "kty": "OKP",
+        "crv": "Ed25519",
+        "x": "r7V8qmdFbwqSlj26eupPew1Lb22vVG5vnjhn3vwEA1Y"
+      },
+    }
+  ]
+}
+
+
+ +

2.1.5 publicKey

+ + +Deprecated + +

+This property has been deprecated, use verificationMethod instead. +

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ security-vocab + + security-vocab context +
+ +
+
+ Example 5: Example of publicKey property +
{
+  "id": "did:example:123",
+  "publicKey": [
+    {
+      "id": "did:example:123#ZC2jXTO6t4R501bfCXv3RxarZyUbdP2w_psLwMuY6ec",
+      "type": "Ed25519VerificationKey2018",
+      "controller": "did:example:123",
+      "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
+    },
+    {
+      "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+      "type": "EcdsaSecp256k1VerificationKey2019",
+      "controller": "did:example:123",
+      "publicKeyJwk": {
+        "crv": "secp256k1",
+        "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+        "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+        "kty": "EC",
+        "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+      }
+    }
+  ]
+}
+
+
+ +

2.1.6 service

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 6: Example of service and serviceEndpoint properties +
{
+  ...
+  "service": [{
+    "id": "did:example:123#edv",
+    "type": "EncryptedDataVault",
+    "serviceEndpoint": "https://edv.example.com/"
+  }]
+}
+
+ +
+

2.1.7 linkedResource

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID + Cosmos Linked Resources + + Cosmos JSON-LD + Context +
+ +
+
+ Example 7: Example of linked resource properties +
{
+    ...
+    "linkedResource" : [{
+      "id": "did:cosmos:1:impacthub:nft:abc123#resourceHashgraph",
+      "path": "did:cosmos:1:impacthub:nft:abc123/resourceHashgraph",
+      "type": "hashgraph",
+      "proof": "afybeiemxf5abjwjbikoz4mcb3a3dla6ual3jsgpdr4cjr3oz",
+      "endpoint" : "did:cosmos:1:impacthub:nft:abc123?service=mediator"
+  }]
+}
+
+ +
+ +

2.1.8 dnsValidationDomain

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ High Assurance DIDs with DNS + + dnsValidationDomain JSON-LD + Context +
+ +
+
+ Example 8: Example of dnsValidationDomain property +
{
+  "dnsValidationDomain": "mydomain.example"
+  ...
+}
+
+
+ +
+

2.2 Verification relationships

+ +

+These are properties that express the relationship between the DID subject and a +verification method using a + +verification relationship. +

+

2.2.1 assertionMethod

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 9: Example of assertionMethod property +
{
+  ...
+  "verificationMethod": [{
+    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+    "type": "EcdsaSecp256k1VerificationKey2019",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "crv": "secp256k1",
+      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+      "kty": "EC",
+      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+    }
+  }],
+  "assertionMethod": [{
+    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
+    "type": "Ed25519VerificationKey2018",
+    "controller": "did:example:123",
+    "publicKeyBase58": "BYEz8kVpPqSt5T7DeGoPVUrcTZcDeX5jGkGhUQBWmoBg"
+  },
+  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+  ]
+}
+
+
+ +

2.2.2 authentication

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 10: Example of authentication property +
{
+  ...
+  "verificationMethod": [{
+    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+    "type": "EcdsaSecp256k1VerificationKey2019",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "crv": "secp256k1",
+      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+      "kty": "EC",
+      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+    }
+  }],
+  "authentication": [{
+    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
+    "type": "Ed25519VerificationKey2018",
+    "controller": "did:example:123",
+    "publicKeyBase58": "BYEz8kVpPqSt5T7DeGoPVUrcTZcDeX5jGkGhUQBWmoBg"
+  },
+  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+  ]
+}
+
+
+ +

2.2.3 capabilityDelegation

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+
+
+ Example 11: Example of capabilityDelegation property +
{
+  ...
+  "verificationMethod": [{
+    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+    "type": "EcdsaSecp256k1VerificationKey2019",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "crv": "secp256k1",
+      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+      "kty": "EC",
+      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+    }
+  }],
+  "capabilityDelegation": [{
+    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
+    "type": "Ed25519VerificationKey2020",
+    "controller": "did:example:123",
+    "publicKeyMultibase": "z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4"
+  },
+  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+  ]
+}
+
+
+ +

2.2.4 capabilityInvocation

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 12: Example of capabilityInvocation property +
{
+  ...
+  "verificationMethod": [{
+    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+    "type": "EcdsaSecp256k1VerificationKey2019",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "crv": "secp256k1",
+      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+      "kty": "EC",
+      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+    }
+  }],
+  "capabilityInvocation": [{
+    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
+    "type": "Ed25519VerificationKey2020",
+    "controller": "did:example:123",
+    "publicKeyMultibase": "z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4"
+  },
+  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+  ]
+}
+
+
+ +

2.2.5 keyAgreement

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 13: Example of keyAgreement property +
{
+  ...
+  "keyAgreement": [
+    {
+      "id": "did:example:123#zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS",
+      "type": "X25519KeyAgreementKey2019",
+      "controller": "did:example:123",
+      "publicKeyMultibase": "zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS"
+    }
+  ]
+}
+
+
+
+ +

2.3 Verification method properties

+ +
Note

+These properties are for use on a verification method object, in the value of +verificationMethod. An +implementer is expected to not be relying directly on the linked contexts +registered below in nearly every case and instead should be including the +context definitions registered by the +verificationMethod. +

+ +

2.3.1 publicKeyJwk

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ security-vocab + + https://w3id.org/security/suites/jws-2020/v1 +
+ +
+
+ Example 14: Example of publicKeyJwk property +
{
+  "id": "did:example:123#_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A",
+  "type": "JsonWebKey2020",
+  "controller": "did:example:123",
+  "publicKeyJwk": {
+    "crv": "Ed25519",
+    "x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ",
+    "kty": "OKP",
+    "kid": "_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A"
+  }
+},
+
+
+ +

2.3.2 publicKeyBase58

+ + Deprecated + +

+This property is deprecated in favor of publicKeyMultibase or +publicKeyJwk. It's generally expected that this term will still be +used in older suites and therefore needs be supported for legacy compatibility, +but is expected to not be used for newly defined suites. +

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ security-vocab + + https://w3id.org/security/v2 +
+
+ +

2.3.3 publicKeyHex

+ + Deprecated + +

+This property is deprecated in favor of publicKeyMultibase or +publicKeyJwk. It's generally expected that this term will still be +used in older suites and therefore needs be supported for legacy compatibility, +but is expected to not be used for newly defined suites. +

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ security-vocab + + https://w3id.org/security/v3-unstable + +
+
+
+ Example 15: Example of publicKeyHex property +
{
+  "@context":[
+    "https://www.w3.org/ns/did/v1",
+    "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
+  ],
+  "id":"did:example:123",
+  "verificationMethod":[{
+    "id": "did:example:123#vm-2",
+    "controller": "did:example:123",
+    "type": "EcdsaSecp256k1RecoveryMethod2020",
+    "publicKeyHex": "027560af3387d375e3342a6968179ef3c6d04f5d33b2b611cf326d4708badd7770"
+  }]
+}
+
+
+ +

2.3.4 publicKeyMultibase

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ security-vocab + + https://w3id.org/security/v3-unstable +
+
+ +

2.3.5 blockchainAccountId

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ security-vocab + + https://w3id.org/security/v3-unstable +
+
+
+ Example 16: Example of blockchainAccountId property +
{
+  "@context":[
+    "https://www.w3.org/ns/did/v1",
+    "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
+  ],
+  "id":"did:example:123",
+  "verificationMethod":[{
+    "id": "did:example:123#vm-3",
+    "controller": "did:example:123",
+    "type": "EcdsaSecp256k1RecoveryMethod2020",
+    "blockchainAccountId":"eip155:1:0xab16a96d359ec26a11e2c2b3d8f8b8942d5bfcdb"
+  }]
+}
+
+
+ +

2.3.6 ethereumAddress

+ + Deprecated +

+This property is deprecated in favor of blockchainAccountId. It's +generally expected that this term will still be used in older suites and +therefore needs be supported for legacy compatibility, but is expected to not be +used for newly defined suites. +

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ security-vocab + + https://w3id.org/security/v3-unstable +
+
+
+ Example 17: Example of ethereumAddress property +
{
+  "@context":[
+    "https://www.w3.org/ns/did/v1",
+    "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
+  ],
+  "id":"did:example:123",
+  "verificationMethod":[{
+    "id": "did:example:123#vm-3",
+    "controller": "did:example:123",
+    "type": "EcdsaSecp256k1RecoveryMethod2020",
+    "ethereumAddress": "0xF3beAC30C498D9E26865F34fCAa57dBB935b0D74"
+  }]
+}
+
+
+
+ +

2.4 Service properties

+ +

+These properties are for use on a service object, in the value of +service. +

+

2.4.1 serviceEndpoint

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 18: Example of service and serviceEndpoint properties +
{
+  ...
+  "service": [{
+    "id": "did:example:123#edv",
+    "type": "EncryptedDataVault",
+    "serviceEndpoint": "https://edv.example.com/"
+  }]
+}
+
+ +
+ +
+ +
+ +

3. Property Values

+ + +

3.1 Verification method types

+ +

+These are values to be used for the type in a verification method object. +

+ +

3.1.1 JsonWebKey2020

+ + +

+Do not include private or extraneous information in verification methods. The +class of private information related to JWKs is defined here. Please review +the DID Core +specification for additional details on this topic. +

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ JSON Web Signature 2020 + + https://w3id.org/security/suite/jws-2020/v1 +
+ +
+
+ Example 19: Example of JsonWebKey2020 class +
{
+  "id": "did:example:123#_TKzHv2jFIyvdTGF1Dsgwngfdg3SH6TpDv0Ta1aOEkw",
+  "type": "JsonWebKey2020",
+  "controller": "did:example:123",
+  "publicKeyJwk": {
+    "crv": "P-256",
+    "x": "38M1FDts7Oea7urmseiugGW7tWc3mLpJh6rKe7xINZ8",
+    "y": "nDQW6XZ7b_u2Sy9slofYLlG03sOEoug3I0aAPQ0exs4",
+    "kty": "EC",
+    "kid": "_TKzHv2jFIyvdTGF1Dsgwngfdg3SH6TpDv0Ta1aOEkw"
+  }
+}
+
+
+

3.1.2 EcdsaSecp256k1VerificationKey2019

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ Ecdsa Secp256k1 Signature 2019 + + https://w3id.org/security/suites/secp256k1-2019/v1 +
+ +
+
+ Example 20: Example of EcdsaSecp256k1VerificationKey2019 class +
{
+  "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
+  "type": "EcdsaSecp256k1VerificationKey2019",
+  "controller": "did:example:123",
+  "publicKeyJwk": {
+    "crv": "secp256k1",
+    "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
+    "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
+    "kty": "EC",
+    "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
+  }
+}
+
+
+ +

3.1.3 Ed25519VerificationKey2018

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ Ed25519 Signature 2018 + + https://w3id.org/security/suites/ed25519-2018/v1 +
+ +
+
+ Example 21: Example of Ed25519VerificationKey2018 class +
{
+  "id": "did:example:123#ZC2jXTO6t4R501bfCXv3RxarZyUbdP2w_psLwMuY6ec",
+  "type": "Ed25519VerificationKey2018",
+  "controller": "did:example:123",
+  "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
+}
+
+
+ +

3.1.4 Bls12381G1Key2020

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ BBS+ Signatures 2020 + + https://w3id.org/security/suites/bls12381-2020/v1 +
+ +
+
+ Example 22: Example of Bls12381G1Key2020 class +
{
+  "id": "did:example:123#z3tEGVtEKzdhJB2rT5hLVjwQPis8k7bTM16t7vDZrQaoddk6wZ7or6xPPs1P8H9U16Xe75",
+  "type": "Bls12381G1Key2020",
+  "controller": "did:example:123",
+  "publicKeyBase58": "7bXhTVonHPizXP72AE92PPmRiaXipC519yU7F6NxUFExWpyQo57LuKKBoTyuZ3uWm9",
+}
+
+
+ +

3.1.5 Bls12381G2Key2020

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ BBS+ Signatures 2020 + + https://w3id.org/security/suites/bls12381-2020/v1 +
+ +
+
+ Example 23: Example of Bls12382G2Key2020 class +
{
+  "id": "did:example:123#zUC7K51WYEsj8y6KPVa1XfwdW5ZJrW5kSbMV619j128T6atCLLXJjjovMZsJ3Ay4STdngRkvM4ygT4qm1mk6HR8FvipSY435nLgYS1TTcaqJAzDWzM1iB9vh3hTL1DEKitwn56i",
+  "type": "Bls12381G2Key2020",
+  "controller": "did:example:123",
+  "publicKeyBase58": "25ETdUZDVnME6yYuAMjFRCnCPcDmYQcoZDcZuXAfeMhXPvjZg35QmZ7uctBcovA69YDM3Jf7s5BHo4u1y89nY6mHiji8yphZ4AMm4iNCRh35edSg76Dkasu3MY2VS9LnuaVQ",
+
+}
+
+
+ +

3.1.6 PgpVerificationKey2021

+ + + + + + + + + + + + + + + + + +
Normative DefinitionJSON-LDAdditional Details
+ Linked Data Signatures for PGP + + https://w3id.org/security/suites/pgp-2021/v1 + + Use of this verification key should be in line with the OpenPGP Message Format + as defined in RFC 4880 +
+
+
{
+  "@context":[
+    "https://www.w3.org/ns/did/v1",
+    "https://gpg.jsld.org/contexts/lds-gpg2020-v0.0.jsonld"
+  ],
+  "id":"did:example:123",
+  "verificationMethod":[{
+    "id": "did:example:123#989ed1057a294c8a3665add842e784c4d08de1e2",
+    "type": "PgpVerificationKey2021",
+    "controller": "did:example:123",
+    "publicKeyPgp": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\nVersion: OpenPGP.js v4.9.0\r\nComment: https://openpgpjs.org\r\n\r\nxjMEXkm5LRYJKwYBBAHaRw8BAQdASmfrjYr7vrjwHNiBsdcImK397Vc3t4BL\r\nE8rnN......v6\r\nDw==\r\n=wSoi\r\n-----END PGP PUBLIC KEY BLOCK-----\r\n"
+  }]
+}
+
+
+ +

3.1.7 RsaVerificationKey2018

+ +
Issue

+DID +Specification Registries Issue 370 This property should be moved into a +separate suite and linked to here rather than relying on the Verifiable +Credentials vocabulary. There are known issues with the first version of the +Security vocabulary JSON-LD context and the first version of the Verifiable +Credentials JSON-LD context which will prevent these contexts from being listed +in the same document. For now it's suggested that implementers rely upon the +first version of the Verifiable Credentials JSON-LD context and not rely on +the Security vocabulary JSON-LD context in the same document. +

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ RSA Signature Suite 2018 + + https://www.w3.org/2018/credentials/v1 +
+
+
{
+  "id": "did:example:123#key-0",
+  "type": "RsaVerificationKey2018",
+  "controller": "did:example:123",
+  "publicKeyJwk": {
+    "kty":"RSA",
+    "e":"AQAB",
+    "use":"sig",
+    "kid":"tNksV42EUs3Xct9AkgZyFWglItRGMxVZ1A1XM68SNq0
+    "n":"kO2d_qQTEBjYFGcoY_da7ziFY4L2QX14K7snCee09n-cY2eP-oJXk8T2_lL20YnpYhf4i
+    jhkWHGU8kY8-FWPRrzSeu3JUMVSZoqTgoAiKWdnSLNvPVxvGuD2CiA3T6AkwUC03D2AkOLCcJV
+    8h_hxUEPeDawF7ArpuJW5DXzEJjE7gOjN4r6d7VB6sd5y-3la54H2ADz2amHLdBWs30fL4BRBH
+    lVdx0YmF37V4u5yvnnb5Iyr3kBXJes8t0MUMPkjqEEXRmukpKUzZYNpWDXY0tVcXeK5sRx0DAn
+    lNgNNf14-vsyjGkj2Rz0oGW73jjWa8dw-yVlDEHyIkQU9-UY4dFXbVjdIO8j_5ghh62o1T7Y4w
+    5CWMc-FxPE3LHe-_teW97X__NN-ToYgfi42IvV2mYOdQMCbvnvY2oMdK3b9wmeVi0marToauL5
+    LMg5xHDKopmIR7E3VyRtNYwDFAZ89kadcbSrZ8zTR5APaB7Tmp2L2ZfXKxqKQuxlFTTCcZtg4e
+    5AN8QuYdI18DEDQn2umUU_Twj7k4CXvuIKVL8p4yRHC4CHAGIm9cH_t11dF3wXygaENVOGRXQu
+    0g1iKq0mO2rWpOqkGJ5uXMFb5lx54i8uOjCdZ9y2el28xA55Ve95KCxeTHp997Bn3TIgbeQ-B_
+    -3PBVTuuAAH8y9fFNKtu5E"
+  }
+}
+
+
+ +

3.1.8 X25519KeyAgreementKey2019

+ +
Issue 164: X25519KeyAgreementKey2019 has no normative definition

Normative definition in a suite is required for registration, this entry should be updated or removed.

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ Normative definition pending + + https://w3id.org/security/suites/x25519-2019/v1 +
+
+
+ Example 26: Example of X25519KeyAgreementKey2019 +
{
+  ...
+  "keyAgreement": [
+    {
+      "id": "did:example:123#zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS",
+      "type": "X25519KeyAgreementKey2019",
+      "controller": "did:example:123",
+      "publicKeyBase58": "9hFgmPVfmBZwRvFEyniQDBkz9LmV7gDEqytWyGZLmDXE"
+    }
+  ]
+}
+
+ +
+ +

3.1.9 EcdsaSecp256k1RecoveryMethod2020

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ ECDSA Secp256k1 Recovery Signature 2020 + + https://w3id.org/security/suites/secp256k1recovery-2020/v1 +
+
+
{
+  "@context": [
+    "https://www.w3.org/ns/did/v1",
+    "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
+  ],
+  "id":"did:example:123",
+  "verificationMethod": [
+    {
+      "id": "did:example:123#vm-1",
+      "controller": "did:example:123",
+      "type": "EcdsaSecp256k1RecoveryMethod2020",
+      "publicKeyJwk": {
+        "crv": "secp256k1",
+        "kid": "JUvpllMEYUZ2joO59UNui_XYDqxVqiFLLAJ8klWuPBw",
+        "kty": "EC",
+        "x": "dWCvM4fTdeM0KmloF57zxtBPXTOythHPMm1HCLrdd3A",
+        "y": "36uMVGM7hnw-N6GnjFcihWE3SkrhMLzzLCdPMXPEXlA"
+      }
+    },
+    {
+      "id": "did:example:123#vm-2",
+      "controller": "did:example:123",
+      "type": "EcdsaSecp256k1RecoveryMethod2020",
+      "publicKeyHex": "027560af3387d375e3342a6968179ef3c6d04f5d33b2b611cf326d4708badd7770"
+    },
+    {
+      "id": "did:example:123#vm-3",
+      "controller": "did:example:123",
+      "type": "EcdsaSecp256k1RecoveryMethod2020",
+      "ethereumAddress": "0xF3beAC30C498D9E26865F34fCAa57dBB935b0D74"
+    }
+  ]
+}
+
+
+ +

3.1.10 VerifiableCondition2021

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ Verifiable + Conditions Verification Method Suite 2021 + + https://w3c-ccg.github.io/verifiable-conditions/contexts/verifiable-conditions-2021-v1.json +
+
+
{
+    "id": "did:example:123#1",
+    "controller": "did:example:123",
+    "type": "VerifiableCondition2021",
+    "conditionAnd": [{
+        "id": "did:example:123#1-1",
+        "controller": "did:example:123",
+        "type": "VerifiableCondition2021",
+        "conditionOr": [{
+            "id": "did:example:123#1-1-1",
+            "controller": "did:example:123",
+            "type": "EcdsaSecp256k1VerificationKey2019",
+            "publicKeyBase58": "5JBxKqYKzzoHrzeqwp6zXk8wZU3Ah94ChWAinSj1fYmyJvJS5rT"
+        }, {
+            "id": "did:example:123#1-1-2",
+            "controller": "did:example:123",
+            "type": "Ed25519VerificationKey2018",
+            "publicKeyBase58": "PZ8Tyr4Nx8MHsRAGMpZmZ6TWY63dXWSCzamP7YTHkZc78MJgqWsAy"
+        }]
+    }, {
+        "id": "did:example:123#1-2",
+        "controller": "did:example:123",
+        "type": "Ed25519VerificationKey2018",
+        "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
+    }]
+}
+
+
+ +
+ +

3.2 Service types

+ +

+These are values to be used for the type property +in a service object. +

+ +

3.2.1 LinkedDomains

+ +
Issue 167: LinkedDomains IRI is not stable

https://identity.foundation/.well-known/resources/did-configuration/#LinkedDomains

+

^ if this link changes the term defintion registered in did core will need to change, we should be sure we like this URL as is... forever.

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ Well Known DID Configuration + + Well Known DID Configuration +
+ +
+
+ Example 29: Example of service and serviceEndpoint properties +
{
+  "@context": ["https://www.w3.org/ns/did/v1","https://identity.foundation/.well-known/did-configuration/v1"],
+  "id": "did:example:123",
+  "verificationMethod": [{
+    "id": "did:example:123#456",
+    "type": "JsonWebKey2020",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "kty": "OKP",
+      "crv": "Ed25519",
+      "x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ"
+    }
+  }],
+  "service": [
+    {
+      "id":"did:example:123#foo",
+      "type": "LinkedDomains",
+      "serviceEndpoint": {
+        "origins": ["https://foo.example.com", "https://identity.foundation"]
+      }
+    },
+    {
+      "id":"did:example:123#bar",
+      "type": "LinkedDomains",
+      "serviceEndpoint": "https://bar.example.com"
+    }
+  ]
+}
+
+ +
+ +

3.2.2 LinkedVerifiablePresentation

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ Linked Verifiable Presentation + + Linked Verifiable Presentation +
+ +
+
+ Example 30: Example of service and serviceEndpoint properties +
{
+  "@context": [
+    "https://www.w3.org/ns/did/v1",
+    "https://identity.foundation/linked-vp/contexts/v1"
+  ],
+  "id": "did:example:123",
+  "verificationMethod": [{
+    "id": "did:example:123#_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A",
+    "type": "JsonWebKey2020",
+    "controller": "did:example:123",
+    "publicKeyJwk": {
+      "kty": "OKP",
+      "crv": "Ed25519",
+      "x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ"
+    }
+  }],
+  "service": [
+    {
+      "id": "did:example:123#foo",
+      "type": "LinkedVerifiablePresentation",
+      "serviceEndpoint": ["https://bar.example.com/verifiable-presentation.jsonld"]
+    },
+    {
+      "id": "did:example:123#baz",
+      "type": "LinkedVerifiablePresentation",
+      "serviceEndpoint": "ipfs://bafybeihkoviema7g3gxyt6la7vd5ho32ictqbilu3wnlo3rs7ewhnp7lly/verifiable-presentation.jwt"
+    }
+  ]
+}
+
+ +
+ +

3.2.3 DIDCommMessaging

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DIDComm Messaging + + A valid JSON-LD context needs to be published. + DIDComm Messaging +
+ +
+
+ Example 31: Example of service and serviceEndpoint properties +
{
+  "@context":[
+      "https://www.w3.org/ns/did/v1",
+      "https://didcomm.org/messaging/contexts/v2"
+  ],
+  "type":"DIDCommMessaging",
+  "serviceEndpoint": {
+    "uri": "http://example.com/path",
+    "accept":[ "didcomm/v2", "didcomm/aip2;env=rfc587" ],
+    "routingKeys":[ "did:example:somemediator#somekey" ]
+  }
+}
+
+ +
+ +

3.2.4 Web of Things (WoT) Discovery

+ +

The WotThing and WotDirectory endpoints allow publication of service endpoints in a DID document + that can be used to fetch Web of Things (WoT) Thing Descriptions (TDs). + The WotThing endpoint is a REST service that returns a TD + when the GET method is used. + This can be used for self-describing devices or services, or be a service + separate from the actual device or service described by the TD. + The WotDirectory is also a REST service that returns a TD, but this service is always + a Web of Things (WoT) Thing Description Directory (TDD), + and the TD returned by a GET always describes the TDD's interface. + Details (including normative statements covering the above) are in the + WoT Discovery specification. +

+ + + + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ WoT Discovery + + WotThing +
+ WoT Discovery + + WotDirectory +
+
+
+ Example 32: Example of WotThing serviceEndpoint properties +
{
+  "@context":[
+      "https://www.w3.org/ns/did/v1",
+      "https://www.w3.org/2022/wot/discovery-did"
+  ],
+  ...
+  "service": [{
+      "id": "did:example:wotdiscoveryexample#td",
+      "type": "WotThing",
+      "serviceEndpoint":
+          "https://wot.example.com/.well-known/wot"
+  }]
+  ...
+}
+
+ +
+
+ Example 33: Example of WotDirectory serviceEndpoint properties +
{
+  "@context":[
+      "https://www.w3.org/ns/did/v1",
+      "https://www.w3.org/2022/wot/discovery-did"
+  ],
+  ...
+  "service": [{
+      "id": "did:example:wotdiscoveryexample#tdd",
+      "type": "WotDirectory",
+      "serviceEndpoint":
+          "https://wot.example.com/tdd"
+  }]
+  ...
+}
+
+ +
+ +

3.2.5 CredentialRegistry

+ +

The CredentialRegistry endpoint allows publication of a dedicated service endpoint in a DID document, through which verifiable credentials can be queried. Each registry endpoint is a REST endpoint. When a GET request is sent to the URI formed by appending the credentialSubject.id as a URL-encoded string to the given endpoint URI, the registry MUST return an array of verifiable credentials associated with the subject ID. A sample registry endpoint can be found here.

+
Note

+ Verifiable credential registries are supposed to hold credentials that are publicly accessible by default, e.g., for product passports on a product type level. An additional authentication for limiting access to certain credentials is currently under development. +

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ Verifiable Credential Registry + + Verifiable Credential Registry +
+ +
+
+ Example 34: Example of service and serviceEndpoint properties +
{
+  ...
+  "service": [
+    {
+      "id": "did:example:123#vcregistry-1",
+      "type": "CredentialRegistry",
+      "serviceEndpoint": {
+        "registries": ["https://registry.example.com/{credentialSubject.id}", "https://identity.foundation/vcs/{credentialSubject.id}"]
+      }
+    },
+    {
+      "id": "did:example:123#vcregistry-2",
+      "type": "CredentialRegistry",
+      "serviceEndpoint": "https://ssi.eecc.de/api/registry/vcs/{credentialSubject.id}"
+    }
+  ]
+}
+
+
+
+ Example 35: Example of a concrete call to the specified serviceEndpoint and example answer +
$ curl 'https://ssi.eecc.de/api/registry/vcs/https%3A%2F%2Ftest.de%2Ftest1' -H 'accept: application/ld+json, application/json'
+
+[
+  {
+    "@context": ["https://www.w3.org/2018/credentials/v1",... ],
+    "type": ["VerifiableCredential",...],
+    "credentialSubject": {...},
+    "proof": {...},
+    ...
+  },
+  ...
+]
+
+
+ +

3.2.6 OpenID4 Verifiable Credential Issuance

+ +

The OID4VCI service allows publication of a credential issuer that conforms to the OpenID for Verifiable Credential Issuance (OID4VCI) specification. +

The service endpoint id MUST be the Credential Issuer Identifier to get the Credential Issuer Metadata as described in Section Credential Issuer Metadata of OpenIDVCI.

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ OpenID4VCI + + OpenID4VCI +
+
+
+ Example 36: Example of service and serviceEndpoint properties +
{
+  ...
+  "service": [
+    {
+      "id": "did:example:123#oid4vci",
+      "type": "OID4VCI",
+      "serviceEndpoint": "https://issuer.example.com/"
+    }
+  ]
+}
+
+
+ +

3.2.7 OpenID4 Verifiable Presentation

+ +

The OID4VP service allows publication of how to interact with a credential wallet that conforms with the OpenID for Verifiable Presentation (OID4VP) specification.

+

The service endpoint id MUST be the Wallet (OAuth2) Issuer Identifier to obtain Wallet Metadata to invoke the wallet as described in section Wallet Invocation.

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ OpenID4VP + + OpenID4VP +
+ +
+
+ Example 37: Example of service and serviceEndpoint properties +
{
+  ...
+  "service": [
+    {
+      "id": "did:example:123#oid4vp",
+      "type": "OID4VP",
+      "serviceEndpoint": "https://wallet.example.com"
+    }
+  ]
+}
+
+
+ +
+ +
+ + + +

A. References

A.1 Normative references

+ +
[RFC2119]
+ Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119 +
[RFC8174]
+ Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc8174 +
+

A.2 Informative references

+ +
[DID-EXTENSIONS]
+ Decentralized Identifier Extensions. Manu Sporny. Decentralized Identifier Working Group. W3C Working Group Note. URL: https://www.w3.org/TR/did-extensions/ +
+
\ No newline at end of file diff --git a/transitions/2024/NOTE/did-extensions-resolution/index.html b/transitions/2024/NOTE/did-extensions-resolution/index.html new file mode 100644 index 00000000..e8d7d83b --- /dev/null +++ b/transitions/2024/NOTE/did-extensions-resolution/index.html @@ -0,0 +1,1867 @@ + + + + + + + + +DID Resolution Extensions + + + + + + + + + + + + + + + +
+

+

DID Resolution Extensions

Known Extensions for DID Resolution and Dereferencing

+

W3C Group Note

+
+ More details about this document +
+
This version:
+ https://www.w3.org/TR/2024/NOTE-did-extensions-resolution-20241119/ +
+
Latest published version:
+ https://www.w3.org/TR/did-extensions-resolution/ +
+
Latest editor's draft:
https://w3c.github.io/did-extensions/resolution/
+
History:
+ https://www.w3.org/standards/history/did-extensions-resolution/ +
+ Commit history +
+ + + + + +
Editors:
+ Manu Sporny (Digital Bazaar) (2017-present) +
+ Markus Sabadello (Danube Tech) (2020-present) +
+
+ Former editors: +
+ Orie Steele (Transmute) (2020-2022) +
+ Amy Guy (Digital Bazaar) (2020-2022) +
+ Ivan Herman + + + + (W3C) (2020-2022) +
+
Author:
+ The Decentralized Identifier Working Group (W3C) +
+
Feedback:
+ GitHub w3c/did-extensions + (pull requests, + new issue, + open issues) +
public-did-wg@w3.org with subject line [did-extensions-resolution] … message topic … (archives)
+ +
Related Documents
+ DID Core +
+ DID Core Implementation Report +
+ DID Use Cases and Requirements +
+
+
+ + + +
+
+

Abstract

+

+This document serves as a collection of known DID Resolution and Dereferencing +extensions. +

+
+ +

Status of This Document

This section describes the status of this + document at the time of its publication. A list of current W3C + publications and the latest revision of this technical report can be found + in the W3C technical reports index at + https://www.w3.org/TR/.

+ +

+Comments regarding this document are welcome. Please file issues +directly on +GitHub, +or send them +to public-did-wg@w3.org ( +subscribe, +archives). +

+ +

+Portions of the work on this specification have been funded by the +United States Department of Homeland Security's Science and Technology +Directorate under contracts HSHQDC-16-R00012-H-SB2016-1-002, 70RSAT20T00000010, +and HSHQDC-17-C-00019. The content of this specification does not +necessarily reflect the position or the policy of the U.S. Government +and no official endorsement should be inferred. +

+ +

+Work on this registry has also been supported by the Rebooting the +Web of Trust community facilitated by Christopher Allen, Shannon +Appelcline, Kiara Robles, Brian Weller, Betty Dhamers, Kaliya Young, +Kim Hamilton Duffy, Manu Sporny, Drummond Reed, Joe Andrieu, and +Heather Vescent, Dmitri Zagidulin, and Dan Burnett. +

+

+ This document was published by the Decentralized Identifier Working Group as + a Group Note using the + Note track. +

This Group Note is endorsed by + the Decentralized Identifier Working Group, but is not endorsed by + W3C itself nor its + Members.

+ This is a draft document and may be updated, replaced or obsoleted by other + documents at any time. It is inappropriate to cite this document as other + than work in progress. + +

+ + The + W3C Patent + Policy + does not carry any licensing requirements or commitments on this + document. + + +

+ This document is governed by the + 03 November 2023 W3C Process Document. +

+ +

1. Introduction

This section is non-normative.

+ + +

+This document serves as a collection of known DID Resolution and Dereferencing +extensions. +

+ +

1.1 The Registration Process

+ +

+ The registration process is described in the Decentralized Identifier Extensions. +

+
+ +

1.2 Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

+ +
+ +

2. Representations

+ +

This table provides a reference for media types and the associated specifications for producing and consuming those representations.

+ + + + + + + + + + + + + + + + + + + + + +
Media TypeSpecification
application/did+json + DID Core +
application/did+ld+json + DID Core +
application/did+cbor + The Plain CBOR Representation +
+ +
+ +

3. Representation-Specific Entries

+ + +

3.1 JSON

+ + +

+These are entries in DID documents that are specific to the +JSON representation. +

+

+(No entries yet) +

+
+ +

3.2 JSON-LD

+ + +

+These are entries in DID documents that are specific to the +JSON-LD representation. +

+ +

3.2.1 @context

+ + + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +

+The following values are acceptable values for the @context entry as +a JSON + String or first item of a JSON Array, +represented as a JSON + String. +

+ + + + + + + + + + + + +
@context ValuesSpecification Version
+ https://www.w3.org/ns/did/v1 + + DID Core 1.0 Working draft +
+ +
+
+ Example 1: Example of @context in the JSON-LD representation +
{
+  "@context": [
+    "https://www.w3.org/ns/did/v1",
+    "https://example.com/blockchain-identity/v1"
+  ],
+  ...
+}
+
+ +
+
+ +

3.3 CBOR

+ + +

+These are entries in DID documents that are specific to the +CBOR representation. +

+

+(No entries yet) +

+
+
+ +

4. DID Resolution Options

+ +

+These properties contain information pertaining to the DID resolution request. +

+ +

4.1 accept

+ + + + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+
+ Example 2: Example of accept metadata property +
{
+  "accept": "application/did+ld+json"
+}
+
+
+
+ +

5. DID Resolution Metadata

+ +

+These properties contain information pertaining to the DID resolution response. +

+

5.1 contentType

+ + + + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+
+ Example 3: Example of contentType metadata property +
{
+  "contentType": "application/did+ld+json"
+}
+
+
+ +

5.2 error

+ + + + + + + + + + + + + + +
Normative Definition
+ DID Core + +
+ +
+
+ Example 4: Example of error metadata property +
{
+  "error": "notFound"
+}
+
+ +

5.2.1 invalidDid

+ + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+
+ Example 5: Example of invalidDid error value +
{
+  "error": "invalidDid"
+}
+
+
+ +

5.2.2 notFound

+ + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+
+ Example 6: Example of notFound error value +
{
+  "error": "notFound"
+}
+
+
+ +

5.2.3 representationNotSupported

+ + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+
+ Example 7: Example of representationNotSupported error value +
{
+  "error": "representationNotSupported"
+}
+
+
+ +

5.2.4 methodNotSupported

+ + + + + + + + + + + + +
Normative Definition
+ DID Resolution +
+ +
+
+ Example 8: Example of methodNotSupported error value +
{
+  "error": "methodNotSupported"
+}
+
+
+ +

5.2.5 internalError

+ + + + + + + + + + + + +
Normative Definition
+ DID Resolution +
+ +
+
+ Example 9: Example of internalError error value +
{
+  "error": "internalError"
+}
+
+
+

5.2.6 invalidPublicKey

+ + + + + + + + + + + + +
Normative Definition
+ DID Resolution +
+ +
+
+ Example 10: Example of invalidPublicKey error value +
{
+  "error": "invalidPublicKey"
+}
+
+
+

5.2.7 invalidPublicKeyLength

+ + + + + + + + + + + + +
Normative Definition
+ DID Resolution +
+ +
+
+ Example 11: Example of invalidPublicKeyLength error value +
{
+  "error": "invalidPublicKeyLength"
+}
+
+
+

5.2.8 invalidPublicKeyType

+ + + + + + + + + + + + +
Normative Definition
+ DID Resolution +
+ +
+
+ Example 12: Example of invalidPublicKeyType error value +
{
+  "error": "invalidPublicKeyType"
+}
+
+
+ +

5.2.9 unsupportedPublicKeyType

+ + + + + + + + + + + + +
Normative Definition
+ DID Resolution +
+ +
+
+ Example 13: Example of unsupportedPublicKeyType error value +
{
+  "error": "unsupportedPublicKeyType"
+}
+
+
+ +

5.2.10 notAllowedVerificationMethodType

+ + + + + + + + + + + + +
Normative Definition
+ DID Spec Extension: notAllowedVerificationMethodType +
+ +
+
+ Example 14: Example of notAllowedVerificationMethodType error value +
{
+  "error": "notAllowedVerificationMethodType"
+}
+
+
+ +

5.2.11 notAllowedKeyType

+ + + + + + + + + + + + +
Normative Definition
+ DID Spec Extension: notAllowedKeyType +
+ +
+
+ Example 15: Example of notAllowedKeyType error value +
{
+  "error": "notAllowedKeyType"
+}
+
+
+ +

5.2.12 notAllowedMethod

+ + + + + + + + + + + + +
Normative Definition
+ DID Spec Extension: notAllowedMethod +
+ +
+
+ Example 16: Example of notAllowedMethod error value +
{
+  "error": "notAllowedMethod"
+}
+
+
+ +

5.2.13 notAllowedCertificate

+ + + + + + + + + + + + +
Normative Definition
+ DID Spec Extension: notAllowedCertificate +
+ +
+
+ Example 17: Example of notAllowedCertificate error value +
{
+  "error": "notAllowedCertificate"
+}
+
+
+ +

5.2.14 notAllowedLocalDuplicateKey

+ + + + + + + + + + + + +
Normative Definition
+ DID Spec Extension: notAllowedLocalDuplicateKey +
+ +
+
+ Example 18: Example of notAllowedLocalDuplicateKey error value +
{
+  "error": "notAllowedLocalDuplicateKey"
+}
+
+
+ +

5.2.15 notAllowedLocalDerivedKey

+ + + + + + + + + + + + +
Normative Definition
+ DID Spec Extension: notAllowedLocalDerivedKey +
+ +
+
+ Example 19: Example of notAllowedLocalDerivedKey error value +
{
+  "error": "notAllowedLocalDerivedKey"
+}
+
+
+ +

5.2.16 notAllowedGlobalDuplicateKey

+ + + + + + + + + + + + +
Normative Definition
+ DID Spec Extension: notAllowedGlobalDuplicateKey +
+ +
+
+ Example 20: Example of notAllowedGlobalDuplicateKey error value +
{
+  "error": "notAllowedGlobalDuplicateKey"
+}
+
+
+
+
+

6. DID Dereferencing Metadata

+ +

+These properties contain information pertaining to the DID dereferencing response. +

+

6.1 error

+ + + + + + + + + + + + + + +
Normative Definition
+ DID Core + +
+ +
+
+ Example 21: Example of error metadata property +
{
+  "error": "notFound"
+}
+
+

6.1.1 invalidDidUrl

+ + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+
+ Example 22: Example of invalidDidUrl error value +
{
+  "error": "invalidDidUrl"
+}
+
+
+

6.1.2 notFound

+ + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+
+ Example 23: Example of notFound error value +
{
+  "error": "notFound"
+}
+
+
+
+
+

7. DID Document Metadata

+ +

+These properties contain information pertaining to the DID document itself, +rather than the DID subject. +

+

7.1 created

+ +
Issue 1

+ See DID Core #203. +

+ + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 24: Example of created property +
{
+  "created": "2019-03-23T06:35:22Z"
+}
+
+
+ +

7.2 updated

+ +
Issue 2

+ See DID Core #203. +

+ + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 25: Example of updated property +
{
+  "updated": "2023-08-10T13:40:06Z"
+}
+
+ +
+ +

7.3 deactivated

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 26: Example of deactivated property +
{
+  "deactivated": true
+}
+
+ +
+ +

7.4 nextUpdate

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 27: Example of nextUpdate property +
{
+  "nextUpdate": "2023-08-10T13:40:06Z"
+}
+
+ +
+ +

7.5 versionId

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 28: Example of versionId property +
{
+  "versionId": "bafyreifederejlobaec6kwpl2mc3tw7qk3j3ey4uytkbiw2qw7dzylud6i"
+}
+
+ +
+ +

7.6 nextVersionId

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 29: Example of nextVersionId property +
{
+  "nextVersionId": "bafyreifederejlobaec6kwpl2mc3tw7qk3j3ey4uytkbiw2qw7dzylud6i"
+}
+
+ +
+ +

7.7 equivalentId

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 30: Example of equivalentId property +
{
+  "equivalentId": ["did:example:ABC", "did:example:Abc"]
+}
+
+ +
+ +

7.8 canonicalId

+ + + + + + + + + + + + + + + +
Normative DefinitionJSON-LD
+ DID Core + + DID Core +
+ +
+
+ Example 31: Example of canonicalId property +
{
+  "canonicalId": "did:example:ABC"
+}
+
+ +
+
+ +

8. Parameters

+ + + +

8.1 hl

+ + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+
+ Example 32: Example of hl parameter +
did:example:123?hl=zQmWvQxTqbG2Z9HPJgG57jjwR154cKhbtJenbyYTWkjgF3e
+
+
+ +

8.2 service

+ + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+
+ Example 33: Example of service parameter +
did:example:123?service=agent
+
+
+ +

8.3 versionId

+ + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+
+ Example 34: Example of versionId parameter +
did:example:123?versionId=4
+
+
+ +

8.4 versionTime

+ + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+
+ Example 35: Example of versionTime parameter +
did:example:123?versionTime=2016-10-17T02:41:00Z
+
+
+ +

8.5 relativeRef

+ + + + + + + + + + + + +
Normative Definition
+ DID Core +
+ +
+
+ Example 36: Example of relativeRef parameter +
did:example:123?service=files&relativeRef=%2Fmyresume%2Fdoc%3Fversion%3Dlatest%23intro
+
+
+ +

8.6 initialState

+ + + + + + + + + + + + +
Normative Definition
+ DID Spec Extensions by DIF +
+ +
+
+ Example 37: Example of initialState parameter +
did:example:123?initialState=eyJkZWx0YV9oYXNoIjoiRWlDUlRKZ2Q0U0V2YUZDLW9fNUZjQnZJUkRtWF94Z3RLX3g...
+
+
+ +

8.7 transformKeys

+ + + + + + + + + + + + +
Normative Definition
+ DID Spec Extensions by DIF +
+ +
+
+ Example 38: Example of transformKeys parameter +
did:example:123?transformKeys=jwk
+
+
+ +

8.8 signedIetfJsonPatch

+ + + + + + + + + + + + +
Normative Definition
+ DID Spec Extensions by DIF +
+ +
+
+ Example 39: Example of signedIetfJsonPatch parameter +
did:example:123?signedIetfJsonPatch=eyJraWQiOiJkaWQ6ZXhhbXBsZTo0NTYjX1FxMFVMMkZxNjUxUTBGamQ2VH...
+
+
+ +

8.9 resource

+ + + + + + + + + + + + +
Normative Definition
+ DID URL Resource Parameter Specification +
+ +
+
+ Example 40: A DID URL with a 'resource' DID parameter +
did:foo:21tDAKCERh95uGgKbJNHYp?resource=true
+
+
+ +
+ + + +

A. References

A.1 Informative references

+ +
[DID-EXTENSIONS]
+ Decentralized Identifier Extensions. Manu Sporny. Decentralized Identifier Working Group. W3C Working Group Note. URL: https://www.w3.org/TR/did-extensions/ +
+
\ No newline at end of file diff --git a/transitions/2024/NOTE/index.html b/transitions/2024/NOTE/index.html new file mode 100644 index 00000000..1ef4fb5a --- /dev/null +++ b/transitions/2024/NOTE/index.html @@ -0,0 +1,759 @@ + + + + + + +Decentralized Identifier Extensions + + + + + + + + + + + + + + +
+

+

Decentralized Identifier Extensions

Known Extensions for the Decentralized Identifier Ecosystem

+

W3C Group Note

+
+ More details about this document +
+
This version:
+ https://www.w3.org/TR/2024/NOTE-did-extensions-20241119/ +
+
Latest published version:
+ https://www.w3.org/TR/did-extensions/ +
+
Latest editor's draft:
https://w3c.github.io/did-extensions/
+
History:
+ https://www.w3.org/standards/history/did-extensions/ +
+ Commit history +
+ + + + +
Latest Recommendation:
https://www.w3.org/TR/did-spec-registries
+
Editors:
+ Manu Sporny (Digital Bazaar) (2017-present) +
+ Markus Sabadello (Danube Tech) (2020-present) +
+
+ Former editors: +
+ Orie Steele (Transmute) (2020-2022) +
+ Amy Guy (Digital Bazaar) (2020-2022) +
+ Ivan Herman + + + + (W3C) (2020-2022) +
+
Author:
+ The Decentralized Identifier Working Group (W3C) +
+
Feedback:
+ GitHub w3c/did-extensions + (pull requests, + new issue, + open issues) +
public-did-wg@w3.org with subject line [did-extensions] … message topic … (archives)
+ +
Related Documents
+ DID Core +
+ DID Core Implementation Report +
+ DID Use Cases and Requirements +
+
+
+ + + +
+
+

Abstract

+

+This document serves as a repository for all known global parameters, +properties, and values used by the Decentralized Identifier ecosystem. +

+
+ +

Status of This Document

This section describes the status of this + document at the time of its publication. A list of current W3C + publications and the latest revision of this technical report can be found + in the W3C technical reports index at + https://www.w3.org/TR/.

+ +

+This repository is under active development and implementers are advised +against using the repository unless they are directly involved with the +W3C DID Working Group. +

+ +

+Comments regarding this document are welcome. Please file issues +directly on +GitHub, +or send them +to public-did-wg@w3.org ( +subscribe, +archives). +

+ +

+Portions of the work on this specification have been funded by the +United States Department of Homeland Security's Science and Technology +Directorate under contracts HSHQDC-16-R00012-H-SB2016-1-002, 70RSAT20T00000010, +and HSHQDC-17-C-00019. The content of this specification does not +necessarily reflect the position or the policy of the U.S. Government +and no official endorsement should be inferred. +

+ +

+Work on this repository has also been supported by the Rebooting the +Web of Trust community facilitated by Christopher Allen, Shannon +Appelcline, Kiara Robles, Brian Weller, Betty Dhamers, Kaliya Young, +Kim Hamilton Duffy, Manu Sporny, Drummond Reed, Joe Andrieu, and +Heather Vescent, Dmitri Zagidulin, and Dan Burnett. +

+

+ This document was published by the Decentralized Identifier Working Group as + a Group Note using the + Note track. +

This Group Note is endorsed by + the Decentralized Identifier Working Group, but is not endorsed by + W3C itself nor its + Members.

+ This is a draft document and may be updated, replaced or obsoleted by other + documents at any time. It is inappropriate to cite this document as other + than work in progress. + +

+ + The + W3C Patent + Policy + does not carry any licensing requirements or commitments on this + document. + + +

+ This document is governed by the + 03 November 2023 W3C Process Document. +

+ +

1. Introduction

This section is non-normative.

+ + +

+This document serves as an official repository for all known global parameters, +properties, and values used by the Decentralized Identifier ecosystem. +

+ +

1.1 Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

+ The key words MAY, MUST, MUST NOT, and SHOULD in this document + are to be interpreted as described in + BCP 14 + [RFC2119] [RFC8174] + when, and only when, they appear in all capitals, as shown here. +

+ +
+ +

2. The Registration Process

+ +

+Software implementers might find that the existing Decentralized Identifier Core +specification [DID-CORE] is not entirely capable of addressing their use case +and might need to add a new parameters, properties, or values to this repository +in order to achieve their use case in a globally interoperable fashion. In order +to add a new parameter, property, or value to this repository, an implementer MUST +submit a modification request for this repository, as a pull request on the +repository where this repository is hosted, where the modification request adheres +to the following policies: +

+ +
    +
  1. +Any addition to the DID Extensions MUST specify a human readable +description of the addition. +
  2. +
  3. +Any name or value of a property or parameter MUST be indicative of +its function. Avoid generic terms such as "myProperty" or "foo". +
  4. +
  5. +Any method name SHOULD avoid generic terms such as "mymethod" or "registry". +
  6. +
  7. +If there are copyright, trademark, or any intellectual property rights +concerns, the addition and use MUST be authorized in writing by the intellectual +property rights holder under a +F/RAND +license. Examples include DID Methods that use trademarked brand names, +property names that utilize the titles of copyrighted works, and patented +technology that would cause the use of the extension to require licensing a +patent. +
  8. +
  9. +Any addition MUST NOT create unreasonable legal, security, moral, or privacy +issues that will result in direct harm to others. Examples of unacceptable +additions include any containing racist language, technologies used to +persecute minority populations, and unconsented pervasive tracking. +
  10. +
  11. +Any addition to the DID Extensions MUST link, via at least a URL, +preferably a content-integrity protected one, to the defining specification so +that implementers can implement the property. +
  12. +
  13. +Any addition to the DID Extensions that is a property or value, MUST +specify a machine readable JSON-LD Context for the addition. +
      +
    • +The JSON-LD Context MUST be included in full as part of the submission. +
    • +
    • +A namespace URI MUST be provided for the JSON-LD Context so that consumer +implementations can consistently map a URI to the full context. +
    • +
    • +The URI provided MUST be persistent, and link all terms to their associated +human readable descriptions. +
    • +
    • +The URI provided SHOULD resolve or link to the full context contents. +
    • +
    • +JSON-LD Contexts MUST be versioned and MUST NOT be date stamped. +
    • +
    • +JSON-LD Contexts SHOULD use scoped terms and MUST use the @protected +feature to eliminate the possibility of term conflicts. +
    • +
    +
  14. +
  15. +Properties in the DID Extensions MUST NOT be removed, only deprecated. +
  16. +
+ +

+The Editors of the DID Specification Registries MUST consider all of the +policies above when reviewing additions to the repository and MUST reject repository +entries if they violate any of the policies in this section. Entities +registering additions can challenge rejections first with the W3C DID Working +Group and then, if they are not satisfied with the outcome, with the W3C Staff. +W3C Staff need not be consulted on changes to the DID Specification Registries, +but do have the final authority on repository contents. This is to ensure that W3C +can adequately respond to time sensitive legal, privacy, security, moral, or +other pressing concerns without putting an undue operational burden on W3C +Staff. +

+ +

+Entries that are identified to cause interoperability problems MAY be marked as +such at the discretion of the maintainers of this repository, and if possible, +after consultation with the entry maintainer. +

+ +

+Any submission to the registries that meet all the criteria listed above will be +accepted for inclusion. These registries enumerate all known mechanisms that +meet a minimum bar, without choosing between them. +

+
+ +

3. Extensions

+ + +

+The following documents list known extensions to the DID Ecosystem: +

+ + + + + + + + + + + + + + + + + + + + +
DocumentDescription
+Property and Value Extensions + Extensions to DID Document properties and values.
+Resolution Extensions + Extensions to DID Resolution parameters and results.
+DID Methods + +Ephemeral, distributed, and fully decentralized mechanisms for supporting +Decentralized Identifiers across a variety of technology platforms. +
+ +
+ + + +

A. References

A.1 Normative references

+ +
[DID-CORE]
+ Decentralized Identifiers (DIDs) v1.0. Manu Sporny; Amy Guy; Markus Sabadello; Drummond Reed. W3C. 19 July 2022. W3C Recommendation. URL: https://www.w3.org/TR/did-core/ +
[RFC2119]
+ Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119 +
[RFC8174]
+ Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc8174 +
+
\ No newline at end of file diff --git a/vocabs/README.md b/vocabs/README.md new file mode 100644 index 00000000..4016598d --- /dev/null +++ b/vocabs/README.md @@ -0,0 +1,66 @@ +# DID Contexts + +## Terms + +The terms present in the DID Core context (v1) are normatively defined in +the [DID Core Specification](https://www.w3.org/TR/did-core), except for +the following terms, which are defined in [the Security Vocabulary](https://w3id.org/security/) +and maintained here for developer convenience. + +* `publicKey` +* `blockchainAccountId` +* `EcdsaSecp256k1VerificationKey2019` +* `Ed25519Signature2018` +* `Ed25519VerificationKey2018` +* `JsonWebKey2020` +* `JsonWebSignature2020` +* `RsaVerificationKey2018` +* `SchnorrSecp256k1VerificationKey2019` +* `X25519KeyAgreementKey2019` +* `ServiceEndpointProxyService` + +## DID Context Versions + +### Background + +JSON-LD context versioning (and schema versioning in general) is a complex +topic, involving the need to balance security with developer convenience. + +On one end of the spectrum, some use cases require cryptographically bound and +immutable contexts, and will need to enforce immutability at the code level +(for example, by using a content-addressable URL scheme such as the in-progress +[Hashlink](https://tools.ietf.org/html/draft-sporny-hashlink-03) spec, by +forcing the resolution of a given URL to a known hard-coded embedded context, +or any other appropriate mechanism). + +On the opposite end of the spectrum, developers that can tolerate the fact that +the DID context is still changing (in the Credentials Community Group and the +forthcoming DID Working Group), may want a way to just say "I want to use the +latest in-progress `@context`", without constraining the versions. + +And between the two extremes, some developers may want to use strongly versioned +contexts (without necessarily cryptographically binding assurance). + +### Versioning + +The current system for DID context versioning is: + +1. Use `https://www.w3.org/ns/did/v1` as an alias to the latest version of the + spec. Once the DID Working Group work concludes, the final v1 version will be + frozen and made immutable. +2. Use intermediate pre-v1 versioned URLs such as `https://w3id.org/did/v0.11` + if you need to refer to a specific context version. +3. Use additional immutability enforcement mechanisms if your use case requires + it. + +Contexts will be versioned according to a modified Semantic Versioning scheme. + +Before v1.0 (minted at the end of the Working Group process), **all changes to +the context will be marked as BREAKING changes**, by incrementing the minor +`v0.x` version, with no patch component. + +## Changelog + +### v0.11 - `https://w3id.org/did/v0.11` + +Start of changelog diff --git a/vocabs/did-v0.11.jsonld b/vocabs/did-v0.11.jsonld new file mode 100644 index 00000000..7423d72b --- /dev/null +++ b/vocabs/did-v0.11.jsonld @@ -0,0 +1,138 @@ +{ + "@context": { + "@version": 1.1, + "id": "@id", + "type": "@type", + "dc": "http://purl.org/dc/terms/", + "schema": "http://schema.org/", + "sec": "https://w3id.org/security#", + "didv": "https://w3id.org/did#", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "EcdsaSecp256k1Signature2019": "sec:EcdsaSecp256k1Signature2019", + "EcdsaSecp256k1VerificationKey2019": "sec:EcdsaSecp256k1VerificationKey2019", + "Ed25519Signature2018": "sec:Ed25519Signature2018", + "Ed25519VerificationKey2018": "sec:Ed25519VerificationKey2018", + "RsaSignature2018": "sec:RsaSignature2018", + "RsaVerificationKey2018": "sec:RsaVerificationKey2018", + "X25519KeyAgreementKey2019": "sec:X25519KeyAgreementKey2019", + "SchnorrSecp256k1Signature2019": "sec:SchnorrSecp256k1Signature2019", + "SchnorrSecp256k1VerificationKey2019": "sec:SchnorrSecp256k1VerificationKey2019", + "ServiceEndpointProxyService": "didv:ServiceEndpointProxyService", + "allowedAction": "sec:allowedAction", + "assertionMethod": { + "@id": "sec:assertionMethod", + "@type": "@id", + "@container": "@set" + }, + "authentication": { + "@id": "sec:authenticationMethod", + "@type": "@id", + "@container": "@set" + }, + "capability": { + "@id": "sec:capability", + "@type": "@id" + }, + "capabilityAction": "sec:capabilityAction", + "capabilityChain": { + "@id": "sec:capabilityChain", + "@type": "@id", + "@container": "@list" + }, + "capabilityDelegation": { + "@id": "sec:capabilityDelegationMethod", + "@type": "@id", + "@container": "@set" + }, + "capabilityInvocation": { + "@id": "sec:capabilityInvocationMethod", + "@type": "@id", + "@container": "@set" + }, + "capabilityStatusList": { + "@id": "sec:capabilityStatusList", + "@type": "@id" + }, + "canonicalizationAlgorithm": "sec:canonicalizationAlgorithm", + "caveat": { + "@id": "sec:caveat", + "@type": "@id", + "@container": "@set" + }, + "challenge": "sec:challenge", + "controller": { + "@id": "sec:controller", + "@type": "@id" + }, + "created": { + "@id": "dc:created", + "@type": "xsd:dateTime" + }, + "creator": { + "@id": "dc:creator", + "@type": "@id" + }, + "delegator": { + "@id": "sec:delegator", + "@type": "@id" + }, + "domain": "sec:domain", + "expirationDate": { + "@id": "sec:expiration", + "@type": "xsd:dateTime" + }, + "invocationTarget": { + "@id": "sec:invocationTarget", + "@type": "@id" + }, + "invoker": { + "@id": "sec:invoker", + "@type": "@id" + }, + "jws": "sec:jws", + "keyAgreement": { + "@id": "sec:keyAgreementMethod", + "@type": "@id", + "@container": "@set" + }, + "nonce": "sec:nonce", + "owner": { + "@id": "sec:owner", + "@type": "@id" + }, + "proof": { + "@id": "sec:proof", + "@type": "@id", + "@container": "@graph" + }, + "proofPurpose": { + "@id": "sec:proofPurpose", + "@type": "@vocab" + }, + "proofValue": "sec:proofValue", + "publicKey": { + "@id": "sec:publicKey", + "@type": "@id", + "@container": "@set" + }, + "publicKeyBase58": "sec:publicKeyBase58", + "publicKeyPem": "sec:publicKeyPem", + "revoked": { + "@id": "sec:revoked", + "@type": "xsd:dateTime" + }, + "service": { + "@id": "didv:service", + "@type": "@id", + "@container": "@set" + }, + "serviceEndpoint": { + "@id": "didv:serviceEndpoint", + "@type": "@id" + }, + "verificationMethod": { + "@id": "sec:verificationMethod", + "@type": "@id" + } + } +} diff --git a/vocabs/v1/context.html b/vocabs/v1/context.html new file mode 100644 index 00000000..992aea0c --- /dev/null +++ b/vocabs/v1/context.html @@ -0,0 +1,147 @@ + + + + +DID Core v1.0 Terms + + + + + + + + +
+

+This document lists the terms used in the DID Core v1.0 data model, and +provides a namespace so each term has an URI. +

+
+ +
+
+ +
+

+Introduction +

+

+The DID Core v1.0 namespace URI is: https://www.w3.org/ns/did#. +

+

+This namespace contains the vocabulary terms used in the DID Core v1.0 data +model [[DID-CORE]], as well as provides a +JSON-LD Context. +

+

+Terms which are extensions to DID Core v1.0 can be found in the DID +Specification Registries [[DID-SPEC-REGISTRIES]]. Extensions have their own +namespaces and JSON-LD Contexts. +

+
+ +
+

+Vocabulary +

+ +

+Terms are listed here in alphabetical order, and link to their definitions in +the DID Core v1.0 specification. +

+ + +
+ + + diff --git a/vocabs/v1/context.jsonld b/vocabs/v1/context.jsonld new file mode 100644 index 00000000..b447d010 --- /dev/null +++ b/vocabs/v1/context.jsonld @@ -0,0 +1,58 @@ +{ + "@context": { + "@protected": true, + "id": "@id", + "type": "@type", + + "alsoKnownAs": { + "@id": "https://www.w3.org/ns/activitystreams#alsoKnownAs", + "@type": "@id" + }, + "assertionMethod": { + "@id": "https://w3id.org/security#assertionMethod", + "@type": "@id", + "@container": "@set" + }, + "authentication": { + "@id": "https://w3id.org/security#authenticationMethod", + "@type": "@id", + "@container": "@set" + }, + "capabilityDelegation": { + "@id": "https://w3id.org/security#capabilityDelegationMethod", + "@type": "@id", + "@container": "@set" + }, + "capabilityInvocation": { + "@id": "https://w3id.org/security#capabilityInvocationMethod", + "@type": "@id", + "@container": "@set" + }, + "controller": { + "@id": "https://w3id.org/security#controller", + "@type": "@id" + }, + "keyAgreement": { + "@id": "https://w3id.org/security#keyAgreementMethod", + "@type": "@id", + "@container": "@set" + }, + "service": { + "@id": "https://www.w3.org/ns/did#service", + "@type": "@id", + "@context": { + "@protected": true, + "id": "@id", + "type": "@type", + "serviceEndpoint": { + "@id": "https://www.w3.org/ns/did#serviceEndpoint", + "@type": "@id" + } + } + }, + "verificationMethod": { + "@id": "https://w3id.org/security#verificationMethod", + "@type": "@id" + } + } +} diff --git a/vocabs/v1/readme.md b/vocabs/v1/readme.md new file mode 100644 index 00000000..028d7e84 --- /dev/null +++ b/vocabs/v1/readme.md @@ -0,0 +1,18 @@ +# Machine-readable specification for the DID Core vocabulary + +The folder contains: + +* [RDFS vocabulary definition](https://www.w3.org/TR/rdf11-primer/#section-vocabulary) in [Turtle](./vocab.ttl), [JSON-LD](./vocab.jsonld), and [RDF/XML](./vocab.rdf) formats, as well as a human readable [HTML](./vocab.html) document. +* JSON-Context file + * the core [JSON-LD Context](./context.jsonld); + * a human readable [HTML](./context.html) version of the context file. +* RDF Graph constraints defined using + * the [Shapes Constraint Language (SHACL)](https://www.w3.org/TR/shacl/) in [Turtle](./shacl.ttl) and [JSON-LD](./shacl.jsonld) formats; + * the [Shape Expressions (ShEx)](http://shex.io/shex-primer/) in [ShExC](./shex.shex) format. + + These file patterns are used to set up the redirects and content negotiations from `https://www.w3.org/ns` to the vocabulary, context, and constraint files. + +## Notes + +* SHACL and ShEx are [_alternative_ formats](https://book.validatingrdf.com/bookHtml013.html) to express constraints on an RDF Graph and provide validity checking. +* The [HTML version of the context file](./context.html) is currently not served from `https://www.w3.org/ns` diff --git a/vocabs/v1/shacl.jsonld b/vocabs/v1/shacl.jsonld new file mode 100644 index 00000000..e138098e --- /dev/null +++ b/vocabs/v1/shacl.jsonld @@ -0,0 +1,179 @@ +{ + "@context": { + "path": { + "@id": "http://www.w3.org/ns/shacl#path", + "@type": "@id" + }, + "pattern": { + "@id": "http://www.w3.org/ns/shacl#pattern" + }, + "nodeKind": { + "@id": "http://www.w3.org/ns/shacl#nodeKind", + "@type": "@id" + }, + "datatype": { + "@id": "http://www.w3.org/ns/shacl#datatype", + "@type": "@id" + }, + "maxCount": { + "@id": "http://www.w3.org/ns/shacl#maxCount", + "@type": "http://www.w3.org/2001/XMLSchema#integer" + }, + "minCount": { + "@id": "http://www.w3.org/ns/shacl#minCount", + "@type": "http://www.w3.org/2001/XMLSchema#integer" + }, + "targetObjectsOf": { + "@id": "http://www.w3.org/ns/shacl#targetObjectsOf", + "@type": "@id" + }, + "targetClass": { + "@id": "http://www.w3.org/ns/shacl#targetClass", + "@type": "@id" + }, + "not": { + "@id": "http://www.w3.org/ns/shacl#not", + "@type": "@id" + }, + "property": { + "@id": "http://www.w3.org/ns/shacl#property", + "@type": "@id" + }, + "targetSubjectsOf": { + "@id": "http://www.w3.org/ns/shacl#targetSubjectsOf", + "@type": "@id" + }, + "sec": "https://w3id.org/security#", + "as": "https://www.w3.org/ns/activitystreams#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "sh": "http://www.w3.org/ns/shacl#", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "did": "https://www.w3.org/ns/did#" + }, + "@graph": [ + { + "@id": "_:ObjectShape", + "@type": "sh:NodeShape", + "property": [ + { + "nodeKind": "sh:IRI", + "path": "sec:capabilityDelegationMethod" + }, + { + "nodeKind": "sh:IRI", + "path": "sec:verificationMethod" + }, + { + "nodeKind": "sh:IRI", + "path": "sec:authenticationMethod" + }, + { + "nodeKind": "sh:IRI", + "path": "did:capabilityInvocationMethod" + }, + { + "nodeKind": "sh:IRI", + "path": "as:alsoKnownAs" + }, + { + "path": "sec:controller", + "pattern": "^did:[a-z0-9]+:[a-zA-Z0-9.-_:]+" + }, + { + "nodeKind": "sh:IRI", + "path": "sec:keyAgreementMethod" + }, + { + "nodeKind": "sh:IRI", + "path": "sec:assertionMethod" + }, + { + "nodeKind": "sh:IRI", + "path": "did:service" + } + ], + "targetClass": "did:DIDSubject", + "targetSubjectsOf": [ + "as:alsoKnownAs", + "sec:authenticationMethod", + "did:service", + "sec:capabilityDelegationMethod", + "sec:keyAgreementMethod", + "sec:verificationMethod", + "sec:assertionMethod", + "sec:capabilityInvocationMethod" + ] + }, + { + "@id": "_:VerificationMethodShape", + "@type": "sh:NodeShape", + "not": { + "@id": "_:b5", + "@type": "sh:NodeShape", + "property": [ + { + "sh:minCount": 1, + "path": "sec:publicKeyMultibase" + }, + { + "sh:minCount": 1, + "path": "sec:publicKeyJwk" + } + ] + }, + "property": [ + { + "datatype": "rdf:JSON", + "sh:maxCount": 1, + "nodeKind": "sh:Literal", + "path": "sec:publicKeyJwk" + }, + { + "sh:minCount": 1, + "path": "sec:controller", + "pattern": "^did:[a-z0-9]+:[a-zA-Z0-9.-_:]+" + }, + { + "sh:minCount": 1, + "nodeKind": "sh:IRI", + "path": "rdf:type" + }, + { + "datatype": "xsd:string", + "sh:maxCount": 1, + "nodeKind": "sh:Literal", + "path": "sec:publicKeyMultibase" + } + ], + "targetClass": "did:VerificationMethod", + "targetObjectsOf": [ + "sec:capabilityInvocationMethod", + "sec:assertionMethod", + "sec:keyAgreementMethod", + "sec:verificationMethod", + "sec:capabilityDelegationMethod", + "sec:authenticationMethod" + ] + }, + { + "@id": "_:ServiceShape", + "@type": "sh:NodeShape", + "property": [ + { + "@id": "_:b3", + "sh:minCount": 1, + "nodeKind": "sh:BlankNodeOrIRI", + "path": "did:serviceEndpoint" + }, + { + "@id": "_:b19", + "sh:minCount": 1, + "nodeKind": "sh:IRI", + "path": "rdf:type" + } + ], + "targetClass": "did:ServiceEndpoint", + "targetObjectsOf": "did:service" + } + ] +} diff --git a/vocabs/v1/shacl.ttl b/vocabs/v1/shacl.ttl new file mode 100644 index 00000000..c02e304c --- /dev/null +++ b/vocabs/v1/shacl.ttl @@ -0,0 +1,126 @@ +# This shape file is hosted at https://www.w3.org/ns/did/v1/shex +# +# You can run this (using https://pypi.org/project/pyshacl/), for example, with: +# pyshacl -s shacl.ttl -e vocab.ttl -f human test.ttl +# + +@prefix did: . +@prefix as: . +@prefix sec: . +@prefix rdf: . +@prefix xsd: . +@prefix sh: . + + +_:ObjectShape a sh:NodeShape ; + # Some properties are valid only on DID Subjects and they will set the right shape + # Note that this is not the case sec:controller (that can also be used on did:VerificationMethod) + + sh:targetClass did:DIDSubject ; + sh:targetSubjectsOf + as:alsoKnownAs, + sec:verificationMethod, + sec:authenticationMethod, + sec:assertionMethod, + sec:keyAgreementMethod, + sec:capabilityDelegationMethod, + sec:capabilityInvocationMethod, + did:service ; + sh:property + [ + sh:path as:alsoKnownAs ; + sh:nodeKind sh:IRI ; + ],[ + sh:path sec:controller ; + sh:pattern "^did:[a-z0-9]+:[a-zA-Z0-9.-_:]+" ; + ],[ + sh:path sec:verificationMethod ; + sh:nodeKind sh:IRI ; + ],[ + sh:path sec:authenticationMethod ; + sh:nodeKind sh:IRI ; + ],[ + sh:path sec:assertionMethod ; + sh:nodeKind sh:IRI ; + ],[ + sh:path sec:keyAgreementMethod ; + sh:nodeKind sh:IRI ; + ],[ + sh:path sec:capabilityDelegationMethod ; + sh:nodeKind sh:IRI ; + ],[ + sh:path did:capabilityInvocationMethod ; + sh:nodeKind sh:IRI ; + ],[ + sh:path did:service ; + sh:nodeKind sh:IRI ; + ]; +. + + +####################################################################################### +# Verification Methods +####################################################################################### + +_:VerificationMethodShape a sh:NodeShape ; + # Generic shape for verification method, putting constraints on the allowed properties + sh:targetClass did:VerificationMethod ; + sh:targetObjectsOf + sec:verificationMethod, + sec:authenticationMethod, + sec:assertionMethod, + sec:keyAgreementMethod, + sec:capabilityDelegationMethod, + sec:capabilityInvocationMethod ; + sh:property + [ + sh:path sec:publicKeyJwk ; + sh:nodeKind sh:Literal ; + sh:datatype rdf:JSON ; + sh:maxCount 1; + ],[ + sh:path sec:publicKeyBase58 ; + sh:nodeKind sh:Literal ; + sh:datatype xsd:string ; + sh:maxCount 1; + ],[ + sh:path sec:controller ; + # A controller must be identified with a DID... + sh:pattern "^did:[a-z0-9]+:[a-zA-Z0-9.-_:]+" ; + sh:minCount 1 + ],[ + # The type must be identified, ie, there must be at least one 'type' + sh:path rdf:type ; + sh:nodeKind sh:IRI ; + sh:minCount 1 ; + ]; + sh:not [ + a sh:NodeShape ; + sh:property + [ + sh:path sec:publicKeyMultibase ; + sh:minCount 1 ; + ],[ + sh:path sec:publicKeyJwk ; + sh:minCount 1 ; + ]; + ] ; +. + +####################################################################################### +# Constraint on services +####################################################################################### + +_:ServiceShape a sh:NodeShape ; + sh:targetClass did:ServiceEndpoint ; + sh:targetObjectsOf did:service ; + sh:property [ + sh:path did:serviceEndpoint ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:minCount 1 ; + ],[ + sh:path rdf:type ; + sh:nodeKind sh:IRI ; + sh:minCount 1 ; + ] ; +. diff --git a/vocabs/v1/shex.shex b/vocabs/v1/shex.shex new file mode 100644 index 00000000..72662796 --- /dev/null +++ b/vocabs/v1/shex.shex @@ -0,0 +1,42 @@ +# This shape expression is hosted at https://www.w3.org/ns/did/v1/shex +# +# You can run this (using https://www.npmjs.com/package/shex/v/0.5.5), for example, with: +# shex -x shex.shex -d test.ttl -n did:ex:12345 -s SubjectShape +# + +# +PREFIX did: +PREFIX rdf: +PREFIX as: +PREFIX sec: + + +# A controller must have a DID as an identifier +_:ControllerShape IRI /^did:[a-z0-9]+:[a-zA-Z0-9.-_:]+/ + +_:VerificationMethodShape IRI { + sec:controller @_:ControllerShape+ ; + rdf:type IRI+ ; + ( sec:publicKeyJwk rdf:JSON {0,1} | sec:publicKeyMultibase LITERAL {0,1} ) {0,1}; +} + +_:ServiceShape IRI { + rdf:type IRI+ ; + # At least one type must to be set, as well at least one service endpoint, whose value can be either a blank node or a URI + (did:serviceEndpoint IRI | did:serviceEndpoint BNode)+; +} + +# A DID document must have a DID as an identifier +# The id is not a blank node, because that is the node referred to from the outside world + IRI /^did:[a-z0-9]+:[a-zA-Z0-9.-_:]+/ { + as:alsoKnownAs IRI* ; + sec:controller @_:ControllerShape* ; + sec:verificationMethod @_:VerificationMethodShape* ; + sec:authenticationMethod @_:VerificationMethodShape* ; + sec:assertionMethod @_:VerificationMethodShape* ; + sec:keyAgreementMethod @_:VerificationMethodShape* ; + sec:capabilityDelegationMethod @_:VerificationMethodShape* ; + sec:capabilityInvocationMethod @_:VerificationMethodShape* ; + did:service @_:ServiceShape* ; +} + diff --git a/vocabs/v1/vocab.html b/vocabs/v1/vocab.html new file mode 100644 index 00000000..ff15a1ec --- /dev/null +++ b/vocabs/v1/vocab.html @@ -0,0 +1,304 @@ + + + + + + DID Core v1.0 Terms + + + + + + + + + + +
+

+ This the namespace document for the Linked Data Vocabulary representation of the DID Core v1.0 data model. +

+
+ +
+
+ +
+

+ Introduction +

+ +

+ This document contains the vocabulary terms defined in the DID Core v1.0 data model [[did-core]]. The following namespaces are used:

+ +
+
DID Core Namespace
+
https://www.w3.org/ns/did#
+
Security Vocabulary Namespace
+
https://w3id.org/security#
+
ActivityStreams 2.0 Terms
+
https://www.w3.org/ns/activitystreams#
+
+ +

+ While the DID Core v1.0 namespace URI is https://www.w3.org/ns/did#, for historical reasons most of the terms are in the https://w3id.org/security# namespace, though defined in the DID Core specification [[did-core]]. These terms do not define any cryptographic primitives and are formally defined in the DID Core specification. Future Working Group may define a formal specification for the complete security vocabulary. +

+

+ Some of the terms, as defined in the DID Core specification [[did-core]], use a slightly different term name as their full URIs. For example, the term https://w3id.org/security#keyAgreementMethod is referred to as keyAgreement in the DID Core specification. The mapping is done, for JSON-LD, by the official JSON-LD Context. For the sake of clarity, section + below references both those terms. +

+ +

+ Extensions to DID Core v1.0 terms can be found in the DID Specification Registries [[did-spec-registries]]. Extensions may be in the https://w3id.org/security# namespace or may have their own namespaces; they have their own JSON-LD Contexts. +

+
+ +
+

Formal Versions of the Vocabulary

+

+ The formal RDF [[rdf11-concepts]] vocabulary, using RDFS [[rdf-schema]] terms, is available in the following formats: +

+ +
+
Turtle:
+
https://www.w3.org/ns/did.ttl
+
JSON-LD:
+
https://www.w3.org/ns/did.jsonld
+
RDF/XML:
+
https://www.w3.org/ns/did.rdf
+
+ +

+ These files can also be accessed using content negotiations on the https://www.w3.org/ns/did URI HTTP request, referring to the text/turtle, application/ld+json, or application/rdf+xml media types, respectively, +

+
+ +
+

+ Vocabulary +

+ +
+

+ Classes +

+

+ Note: the RDFS Classes are not defined in the DID Core v1.0 specification [[did-core]] and are only used by the formal RDFS vocabulary specification. Users of the JSON-LD representation of the DID Data Model are advised not to use + these. +

+ +
+
DIDSubject
+
+
    +
  • URI: https://www.w3.org/ns/did#serviceEndpoint
  • +
+
+
Service
+
+
    +
  • URI: https://www.w3.org/ns/did#Service
  • +
+
+
VerificationMethod
+
+
    +
  • URI: https://www.w3.org/ns/did#VerificationMethod
  • +
+
+
+
+ +
+

Properties

+ +

+ Terms are listed here in alphabetical order, and linked to their definitions in the DID Core v1.0 [[did-core]] specification. +

+ +
+
alsoKnownAs
+
+ +
+ +
assertionMethod
+
+ +
+ +
authenticationMethod, referred to as authentication
+
+ +
+ +
capabilityDelegationMethod, referred to as capabilityDelegation
+
+ +
+ +
capabilityInvocationMethod, referred to as capabilityInvocation
+
+ +
+ +
controller
+
+ +
+ +
keyAgreementMethod, referred to as keyAgreement
+
+ +
+ +
publicKeyMultibase
+
+ +
+ +
publicKeyJwk
+
+ +
+ +
service
+
+ +
+ + +
serviceEndpoint
+
+ +
+ + +
verificationMethod
+
+ +
+ +
+
+
+ +
+

Constraints Definitions

+ +

Although not formally part of the Vocabulary specification, the RDF shape constraints, related to this vocabulary, are also available:

+ +
    +
  • Expressed in SHACL [[shacl]], available in Turtle or JSON-LD formats.
  • +
  • Expressed in ShEx [[shex]], available in shex format.
  • + + +
+ + +
+ + + + diff --git a/vocabs/v1/vocab.jsonld b/vocabs/v1/vocab.jsonld new file mode 100644 index 00000000..b97f6ac5 --- /dev/null +++ b/vocabs/v1/vocab.jsonld @@ -0,0 +1,146 @@ +{ + "@context": { + "domain": { + "@id": "http://www.w3.org/2000/01/rdf-schema#domain", + "@type": "@id" + }, + "range": { + "@id": "http://www.w3.org/2000/01/rdf-schema#range", + "@type": "@id" + }, + "isDefinedBy": { + "@id": "http://www.w3.org/2000/01/rdf-schema#isDefinedBy", + "@type": "@id" + }, + "label": { + "@id": "http://www.w3.org/2000/01/rdf-schema#label" + }, + "comment": { + "@id": "http://www.w3.org/2000/01/rdf-schema#comment" + }, + "sec": "https://w3id.org/security#", + "as": "https://www.w3.org/ns/activitystreams#", + "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "owl": "http://www.w3.org/2002/07/owl#", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "rdfs": "http://www.w3.org/2000/01/rdf-schema#", + "did": "https://www.w3.org/ns/did#" + }, + "@graph": [ + { + "@id": "https://www.w3.org/ns/did#", + "@type": "owl:Ontology", + "comment": "For historical reasons, most of the terms are in the 'sec:' namespace rather than the 'did:' namespace. These terms do not describe/define any cryptographic primitives and are formally defined in the DID Core specification. Future Working Group may define a formal specification for the complete 'sec:' vocabulary." + }, + { + "@id": "did:DIDSubject", + "@type": "rdfs:Class", + "comment": "Top level class for resources identified via a DID subject", + "isDefinedBy": "https://www.w3.org/TR/did-core/#core-properties", + "label": "DID Document" + }, + { + "@id": "did:Service", + "@type": "rdfs:Class", + "comment": "Service endpoints are used in DID documents to express ways of communicating with the DID subject or associated entities", + "isDefinedBy": "https://www.w3.org/TR/did-core/#services", + "label": "Service Endpoint" + }, + { + "@id": "did:VerificationMethod", + "@type": "rdfs:Class", + "comment": "Superclass for all specific verification Methods. It is an 'abstract' class, never used by itself.", + "isDefinedBy": "https://www.w3.org/TR/did-core/#verification-methods", + "label": "Verification Method" + }, + { + "@id": "sec:assertionMethod", + "@type": "rdf:Property", + "comment": "The assertionMethod property is used to express a verification relationship which indicates that a verification method can be used to verify a proof that a statement was asserted on behalf of the DID subject.", + "isDefinedBy": "https://www.w3.org/TR/did-core/#assertion", + "range": "did:VerificationMethod" + }, + { + "@id": "sec:authenticationMethod", + "@type": "rdf:Property", + "comment": "Authentication is a verification relationship which an entity can use to prove it is the DID subject or acting on behalf of the DID Subject as a DID Controller.", + "isDefinedBy": "https://www.w3.org/TR/did-core/#authentication", + "range": "did:VerificationMethod" + }, + { + "@id": "sec:capabilityDelegationMethod", + "@type": "rdf:Property", + "comment": "The capabilityDelegation property is used to express a verification relationship which an entity can use to grant capabilities as the DID subject or on behalf of the DID subject to other capability invokers. ", + "isDefinedBy": "https://www.w3.org/TR/did-core/#capability-delegation", + "range": "did:VerificationMethod" + }, + { + "@id": "sec:capabilityInvocationMethod", + "@type": "rdf:Property", + "comment": "The capabilityInvocation property is used to express a verification relationship which an entity can use to invoke capabilities as the DID subject or on behalf of the DID subject.", + "isDefinedBy": "https://www.w3.org/TR/did-core/#capability-invocation", + "range": "did:VerificationMethod" + }, + { + "@id": "sec:controller", + "@type": "rdf:Property", + "comment": "An entity that is authorized to make changes to a DID Document", + "isDefinedBy": "https://www.w3.org/TR/did-core/#control" + }, + { + "@id": "sec:keyAgreementMethod", + "@type": "rdf:Property", + "comment": "The keyAgreement property is used to express a verification relationship which an entity can use to engage in key agreement protocols on behalf of the DID subject.", + "isDefinedBy": "https://www.w3.org/TR/did-core/#key-agreement", + "range": "did:VerificationMethod" + }, + { + "@id": "sec:publicKeyMultibase", + "@type": [ + "rdf:Property", + "owl:DatatypeProperty" + ], + "domain": "did:VerificationMethod", + "isDefinedBy": "https://www.w3.org/TR/did-core/#verification-methods", + "label": "A string that conforms to a multibase encoded public key", + "range": "xsd:string" + }, + { + "@id": "sec:publicKeyJwk", + "@type": [ + "rdf:Property", + "owl:DatatypeProperty" + ], + "domain": "did:VerificationMethod", + "isDefinedBy": "https://www.w3.org/TR/did-core/#verification-methods", + "label": "Public Key in JWK", + "range": "rdf:JSON" + }, + { + "@id": "sec:verificationMethod", + "@type": "rdf:Property", + "comment": "A generic method to refer to a Verification Method", + "isDefinedBy": "https://www.w3.org/TR/did-core/#verification-methods", + "range": "did:VerificationMethod" + }, + { + "@id": "as:alsoKnownAs", + "@type": "rdf:Property", + "comment": "This relationship is a statement that the subject of this identifier is also identified by one or more other identifiers.", + "isDefinedBy": "https://www.w3.org/TR/did-core/#also-known-as" + }, + { + "@id": "did:service", + "@type": "rdf:Property", + "domain": "did:DIDSubject", + "isDefinedBy": "https://www.w3.org/TR/did-core/#services", + "range": "did:Service" + }, + { + "@id": "did:serviceEndpoint", + "@type": "rdf:Property", + "domain": "did:Service", + "isDefinedBy": "https://www.w3.org/TR/did-core/#services" + } + ] +} diff --git a/vocabs/v1/vocab.rdf b/vocabs/v1/vocab.rdf new file mode 100644 index 00000000..64048942 --- /dev/null +++ b/vocabs/v1/vocab.rdf @@ -0,0 +1,101 @@ + + + + + For historical reasons, most of the terms are in the 'security' namespace rather than the 'did' namespace. These terms do not describe/define any cryptographic primitives and are formally defined in the DID Core specification. Future Working Group may define a formal specification for the complete 'sec:' vocabulary. + + + + This relationship is a statement that the subject of this identifier is also identified by one or more other identifiers. + + + + + Authentication is a verification relationship which an entity can use to prove it is the DID subject or acting on behalf of the DID Subject as a DID Controller. + + + + + Service endpoints are used in DID documents to express ways of communicating with the DID subject or associated entities + + + Service Endpoint + + + + + + + Public Key in JWK + + + + + + + + + + The assertionMethod property is used to express a verification relationship which indicates that a verification method can be used to verify a proof that a statement was asserted on behalf of the DID subject. + + + + + + + The capabilityInvocation property is used to express a verification relationship which an entity can use to invoke capabilities as the DID subject or on behalf of the DID subject. + + + + The keyAgreement property is used to express a verification relationship which an entity can use to engage in key agreement protocols on behalf of the DID subject. + + + + + + + + + + A string that conforms to a multibase encoded public key + + + + + + + + + + + + + The capabilityDelegation property is used to express a verification relationship which an entity can use to grant capabilities as the DID subject or on behalf of the DID subject to other capability invokers. + + + + + Verification Method + Superclass for all specific verification Methods. It is an 'abstract' class, never used by itself. + + + + + + A generic method to refer to a Verification Method + + + + An entity that is authorized to make changes to a DID Document + + + + + DID Document + + Top level class for resources identified via a DID subject + + diff --git a/vocabs/v1/vocab.ttl b/vocabs/v1/vocab.ttl new file mode 100644 index 00000000..67a87829 --- /dev/null +++ b/vocabs/v1/vocab.ttl @@ -0,0 +1,109 @@ +@prefix did: . +@prefix as: . +@prefix sec: . +@prefix rdf: . +@prefix xsd: . +@prefix rdfs: . +@prefix owl: . + +did: a owl:Ontology ; + rdfs:comment "For historical reasons, most of the terms are in the 'sec:' namespace rather than the 'did:' namespace. These terms do not describe/define any cryptographic primitives and are formally defined in the DID Core specification. Future Working Group may define a formal specification for the complete 'sec:' vocabulary." +. + +################################################################# +# Classes +################################################################# + +did:DIDSubject a rdfs:Class ; + rdfs:comment "Top level class for resources identified via a DID subject" ; + rdfs:isDefinedBy ; + rdfs:label "DID Document" ; +. + +did:VerificationMethod a rdfs:Class ; + rdfs:comment "Superclass for all specific verification Methods. It is an 'abstract' class, never used by itself." ; + rdfs:isDefinedBy ; + rdfs:label "Verification Method" ; +. + +did:Service a rdfs:Class ; + rdfs:comment "Service endpoints are used in DID documents to express ways of communicating with the DID subject or associated entities" ; + rdfs:isDefinedBy ; + rdfs:label "Service Endpoint" ; +. + + +################################################################# +# Properties +################################################################# + +as:alsoKnownAs a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:comment "This relationship is a statement that the subject of this identifier is also identified by one or more other identifiers." ; +. + +sec:controller a rdf:Property ; + rdfs:isDefinedBy ; + rdfs:comment "An entity that is authorized to make changes to a DID Document" ; +. + +sec:verificationMethod a rdf:Property ; + rdfs:range did:VerificationMethod ; + rdfs:comment "A generic method to refer to a Verification Method" ; + rdfs:isDefinedBy ; +. + +sec:authenticationMethod a rdf:Property ; + rdfs:range did:VerificationMethod ; + rdfs:comment "Authentication is a verification relationship which an entity can use to prove it is the DID subject or acting on behalf of the DID Subject as a DID Controller." ; + rdfs:isDefinedBy ; +. + +sec:assertionMethod a rdf:Property ; + rdfs:range did:VerificationMethod ; + rdfs:comment "The assertionMethod property is used to express a verification relationship which indicates that a verification method can be used to verify a proof that a statement was asserted on behalf of the DID subject." ; + rdfs:isDefinedBy ; +. + +sec:keyAgreementMethod a rdf:Property ; + rdfs:range did:VerificationMethod ; + rdfs:comment "The keyAgreement property is used to express a verification relationship which an entity can use to engage in key agreement protocols on behalf of the DID subject." ; + rdfs:isDefinedBy ; +. + +sec:capabilityDelegationMethod a rdf:Property ; + rdfs:range did:VerificationMethod ; + rdfs:comment "The capabilityDelegation property is used to express a verification relationship which an entity can use to grant capabilities as the DID subject or on behalf of the DID subject to other capability invokers. " ; + rdfs:isDefinedBy ; +. + +sec:capabilityInvocationMethod a rdf:Property ; + rdfs:range did:VerificationMethod ; + rdfs:comment "The capabilityInvocation property is used to express a verification relationship which an entity can use to invoke capabilities as the DID subject or on behalf of the DID subject." ; + rdfs:isDefinedBy ; +. + +sec:publicKeyJwk a rdf:Property, owl:DatatypeProperty ; + rdfs:domain did:VerificationMethod ; + rdfs:range rdf:JSON ; + rdfs:isDefinedBy ; + rdfs:label "Public Key in JWK" ; +. + +sec:publicKeyMultibase a rdf:Property, owl:DatatypeProperty ; + rdfs:domain did:VerificationMethod ; + rdfs:range xsd:string ; + rdfs:isDefinedBy ; + rdfs:label "A string that conforms to a multibase encoded public key" ; +. + +did:service a rdf:Property ; + rdfs:domain did:DIDSubject ; + rdfs:range did:Service ; + rdfs:isDefinedBy ; +. + +did:serviceEndpoint a rdf:Property ; + rdfs:domain did:Service ; + rdfs:isDefinedBy ; +. diff --git a/w3c.json b/w3c.json new file mode 100644 index 00000000..f6bd40b1 --- /dev/null +++ b/w3c.json @@ -0,0 +1,6 @@ +{ + "group": [117488], + "contacts": ["pchampin"], + "repo-type": "note", + "shortName": "did-extensions" +}