DID Resolution Extensions Known Extensions for DID Resolution and Dereferencing W3C Group Note 19 November 2024 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 ) [email protected] with subject line [did-extensions-resolution] … message topic … ( archives ) Related Documents DID Core DID Core Implementation Report DID Use Cases and Requirements Copyright © 2024 World Wide Web Consortium . W3C ® liability , trademark and permissive document license rules apply. 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 [email protected] ( 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 . Table of Contents Abstract Status of This Document 1. Introduction 1.1 The Registration Process 1.2 Conformance 2. Representations 3. Representation-Specific Entries 3.1 JSON 3.2 JSON-LD 3.2.1 @context 3.3 CBOR 4. DID Resolution Options 4.1 accept 5. DID Resolution Metadata 5.1 contentType 5.2 error 5.2.1 invalidDid 5.2.2 notFound 5.2.3 representationNotSupported 5.2.4 methodNotSupported 5.2.5 internalError 5.2.6 invalidPublicKey 5.2.7 invalidPublicKeyLength 5.2.8 invalidPublicKeyType 5.2.9 unsupportedPublicKeyType 5.2.10 notAllowedVerificationMethodType 5.2.11 notAllowedKeyType 5.2.12 notAllowedMethod 5.2.13 notAllowedCertificate 5.2.14 notAllowedLocalDuplicateKey 5.2.15 notAllowedLocalDerivedKey 5.2.16 notAllowedGlobalDuplicateKey 6. DID Dereferencing Metadata 6.1 error 6.1.1 invalidDidUrl 6.1.2 notFound 7. DID Document Metadata 7.1 created 7.2 updated 7.3 deactivated 7.4 nextUpdate 7.5 versionId 7.6 nextVersionId 7.7 equivalentId 7.8 canonicalId 8. Parameters 8.1 hl 8.2 service 8.3 versionId 8.4 versionTime 8.5 relativeRef 8.6 initialState 8.7 transformKeys 8.8 signedIetfJsonPatch 8.9 resource A. References A.1 Informative references 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 Type Specification 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 Values Specification 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 Definition JSON-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 Definition JSON-LD DID Core DID Core Example 25 : Example of updated property { "updated" : "2023-08-10T13:40:06Z" } 7.3 deactivated Normative Definition JSON-LD DID Core DID Core Example 26 : Example of deactivated property { "deactivated" : true } 7.4 nextUpdate Normative Definition JSON-LD DID Core DID Core Example 27 : Example of nextUpdate property { "nextUpdate" : "2023-08-10T13:40:06Z" } 7.5 versionId Normative Definition JSON-LD DID Core DID Core Example 28 : Example of versionId property { "versionId" : "bafyreifederejlobaec6kwpl2mc3tw7qk3j3ey4uytkbiw2qw7dzylud6i" } 7.6 nextVersionId Normative Definition JSON-LD DID Core DID Core Example 29 : Example of nextVersionId property { "nextVersionId" : "bafyreifederejlobaec6kwpl2mc3tw7qk3j3ey4uytkbiw2qw7dzylud6i" } 7.7 equivalentId Normative Definition JSON-LD DID Core DID Core Example 30 : Example of equivalentId property { "equivalentId" : [ "did:example:ABC" , "did:example:Abc" ] } 7.8 canonicalId Normative Definition JSON-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/ ↑