...
That is the purpose of the did:scid
method.
Why
...
Another DID Method?
TODO — this new section of the spec was proposed on the Technology Stack WG call on 2025-02-04. The goal is to draft it by 2025-02-06.
We needed several capabilities that have been provided by many other DID Methods, but all known implementations did not separate these architectural concerns:
...
NOTE: The first two sets of examples in this section are based on the verification metadata formats defined by the |
...
IMPORTANT: Although the Webvh method is the underlying basis, these examples are based on a (currently hypothetical)
|
...
# | Segment | Purpose |
1 | did | URI scheme as required by W3C DID 1.0 |
2 | scid | DID method name |
3 | scidmethod-type-name | SCID method type name |
4 | ver | SCID method type version |
5 | method-specific-id | SCID value |
...
did-scid = "did:scid:" scidmethod-type-name ":" ver ":" method-specific-id
scidmethod-type-name = 1*method-type-char
method-type-char = %x61-7A / DIGIT
ver = 1*DIGIT
type-char = %x61-7A / DIGIT
method-specific-id = *( *idchar ":" ) 1*idchar
...
The value of the method-specific-id
component MUST be a self-certifying identifier that is fully whose binding to the verification metadata is cryptographically verifiable using only the verification metadata.
...
The latter requirement avoids a race condition for the DID controller when synchronizing updates to the verification metadata for a did:scid
DID.
did:scid method types
This section is normative.
Like the did:
scheme defined in W3C Decentralized Identifiers (DIDs) 1.0, did:scid
is a scheme for did:scid
method types. As with DID methods, there is no limit to the number of did:scid
method types. However, authors SHOULD NOT create a new did:scid
method type if:
A current
did:scid
method type provides all required functionality, ORA revision to a current
did:scid
method type could add the required new functionality.
did:scid method type specifications
A
did:scid
method type MUST have a written specification.The
did:scid
method type specification MUST meet all the requirements in:This specification.
The
did:scid
method type specification SHOULD be available via a canonical URL.The
did:scid
method type specification SHOULD be assigned its owndid:scid
DID using that method (“identifier dogfooding”).As described in Appendix B.8 of W3C Decentralized Identifiers 1.0, the DID document resolved by the
did:scid
DID whose DID subject is thedid:scid
method specification SHOULD have analsoKnownAs
property containing at least one value that is the canonical URL for thedid:scid
method specification.
did:scid method type names
NOTE: The recommendations in this section are based on a simple rationale: there is no good reason to have a large number of |
did:scid
method type names have the same ABNF as DID method names.
It is RECOMMENDED to keep
did:scid
method type names as short as possible.By convention,
did:scid
method type names SHOULD consist of exactly two characters.This specification SHALL maintain a registry of
did:scid
method type names in Appendix A.
did:scid method type version identifiers
Although W3C Decentralized Identifiers (DIDs) 1.0 does not require DID methods to have version identifiers, practical usage has shown they can be quite valuable, especially to support cryptographic agility as newer and better cryptographic algorithms are developed. In any case, for a did:scid
method type, a single digit version identifier plus the colon delimiter adds only two characters to the DID.
A
did:scid
DID method type MUST have a version number.The version number MUST be one or more digits.
Version numbers MUST increment.
Appendix A: did:scid Method Type Registry
TODO: Add
|
...
Because it is designed to be fully portable, a did:scid
DID can have its verifiable history written to any number of target locations.
IMPORTANT: When the verifiable history of a |
...
The SCID and verifiable history log are generated using the same process as defined in the did:webvh or KERI AID specifications
Once generated, the initial verifiable history JSON file is published as a DID-Linked Resource on cheqd. For example:
did:cheqd:testnet:9cdea85b-7524-4962-ad11-c943b8303692?resourceName=didScidExample&resourceType=didScidLogEntry&resourceVersionTime=2025-01-23T07:17:26Z
(Using cheqd DID Resolver) https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:9cdea85b-7524-4962-ad11-c943b8303692?resourceName=didScidExample&resourceType=didScidLogEntry&resourceVersionTime=2025-01-23T07:17:26Z
When publishing the verifiable history JSON file on cheqd, the controller MUST also publish the following metadata to enable the file to be queried:
resourceName: Any arbitrary string, naming the file
resourceType: MUST be
didScidLogEntry
The controller MAY also publish the following optional metadata:
alternativeUri: A string or array specifying alternative locations where the initial verifiable history log is also published
resourceVersion: To enable more granular querying by a specific version name or number
The DID-Linked Resource SHOULD be signed using the same keys specified in the “
authentication
” section of the DID Document, ensuring cryptographic verifiability back to the controller of the DID Document.Using this persistent identifier for the initial verifiable history log, a
did:scid
DID can be derived. For example:did:scid:ke:3:EKYGGh-FtAphGmSZbsuBs_t4qpsjYJ2ZqvMKluq9OxmP?src=did:cheqd:testnet:9cdea85b-7524-4962-ad11-c943b8303692?resourceName=didScidExample&resourceType=didScidLogEntry&resourceVersionTime=2025-01-23T07:17:26Z
Including a portable
did:scid
DID which can be migrated to different infrastructure:did:scid:ke:3:EKYGGh-FtAphGmSZbsuBs_t4qpsjYJ2ZqvMKluq9OxmP
...