| Internet-Draft | DID7 Identifier | March 2026 |
| Herman | Expires 18 September 2026 | [Page] |
This document defines the "did7" URI scheme, an authority-scoped decentralized identifier format. DID7 introduces an optional authority component and a two-stage resolution process, while remaining fully compatible with the W3C Decentralized Identifiers (DIDs) v1.0 specification (DID Core).¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 18 September 2026.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.¶
The W3C Decentralized Identifiers (DIDs) specification [DID-CORE] defines method-based identifiers without a global namespace. DID7 introduces an optional authority layer, enabling namespace partitioning, governance domains, and scalable resolution infrastructure while remaining compatible with DID Core.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" 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.¶
did7:[//<authority-name>/]<method>:<method-specific-id>¶
The following ABNF [RFC5234] defines the DID7 URI syntax.
The unreserved and pct-encoded rules are imported from
[RFC3986] Section 2.3. The ALPHA, DIGIT,
and HEXDIG rules are imported from [RFC5234]
Appendix B.¶
did7-uri = "did7:" [ authority ] method ":" method-id authority = "//" authority-name "/" authority-name = 1*( ALPHA / DIGIT / "-" ) method = 1*( ALPHA / DIGIT ) method-id = 1*( unreserved / pct-encoded / "." / "-" / "_" ) pct-encoded = "%" HEXDIG HEXDIG¶
Note: The colon (":") character is intentionally excluded from
method-id to avoid ambiguity with the method delimiter.
Colons within method-specific identifiers MUST be percent-encoded.¶
A DID7 URI without an explicit authority component expands as follows:¶
did7:<method>:<id> -> did7://w3.org/<method>:<id>¶
Resolvers SHOULD perform DNS-based discovery of the resolver endpoint for an authority using a DNS TXT record of the form:¶
_did7.<authority-domain> IN TXT \
"resolver=https://resolver.example.com"
¶
DNS responses used for authority resolution SHOULD be validated using DNSSEC.¶
The method-specific identifier is resolved using the endpoint discovered in Stage 1. The resulting DID Document MUST conform to [DID-CORE].¶
Any W3C DID can be mapped to a DID7 URI as follows:¶
did:<method>:<id> -> did7://w3.org/<method>:<id>¶
This mapping is one-way. There is no general inverse mapping from DID7 to W3C DID.¶
Implementations MUST NOT assume equivalence between "did" and "did7" identifiers, even when the method and method-specific identifier components are identical.¶
The following security considerations apply to implementations of this specification:¶
This document requests registration of the URI scheme "did7" in the "Uniform Resource Identifier (URI) Schemes" registry maintained by IANA, in accordance with [RFC7595].¶
The following are valid DID7 URIs:¶
did7:example:123 did7://w3.org/example:123 did7://dif/web:abc did7://acbd1234/custom:xyz_123¶
The following URIs are valid under the syntax defined in Section 3.2:¶
did7:example:123 did7://w3.org/example:123 did7://dif/web:abc.def¶
The following URIs are invalid and MUST be rejected by conforming implementations:¶
did7:/// (empty authority-name and empty method) did7://w3.org/ (empty method and method-id) did7: (missing method and method-id)¶