A Decentralized Identifier "DID" is a globally unique identifier that does not require a centralized registration authority because it is registered with distributed ledger technology or other form of decentralized network.
Learn about DIDs If you want to learn about what DIDs are, please go over to our learning site here.
Below are a list of alternatives for creating cheqd DIDs.
Create DID
Create an Issuer DID using the did:cheqd DID method.
Update DID
Update a did:cheqd DID.
Deactivate DID
Deactivate a did:cheqd DID.
cheqd Studio
Our API product enables users to use cheqd's functionality with minimal complexity and easily integrate APIs into existing apps.
DID Registrar
Simple setup for building cheqd DIDs into existing applications using REST APIs, building into the Universal Registrar.
Credo
Credo is an SDK which supports the European Architecture and Reference Framework (ARF) standards as well as AnonCreds with full cheqd support for DIDs.
Veramo
The Veramo SDK plugin supports JSON, JSON-LD credentials as well as cheqd Credential Payments in an SDK.
Walt.id SSI Kit
Walt.id SSI Kit is an SDK that supports the European Architecture and Reference Framework (ARF) standards for identity, with full cheqd support.
cheqd Cosmos CLI
Cosmos CLI which directly communicates with the cheqd network. This should only be used for testing environments.
Update a did:cheqd DID from ACA-Py Agent
Follow these instructions to update a did:cheqd DID from ACA-Py Agent.
⚠️ Important...
Your wallet must have the key(s) which were generated when the DID was created, without them signing will fail.
To update an existing DID, you must pass the did
id and the complete didDocument
in the request body. The main field that is updated using this method os the service
object of the DID.
Deactivate a did:cheqd from ACA-Py Agent
Follow these instructions to deactivate a did:cheqd DID from ACA-Py Agent.
⚠️ Important...
Your wallet must have the key(s) which were generated when the DID was created, without them signing will fail.
To deactivate an active DID, pass the did
id in the request body, with any additional options
that you may have configured.
Create a DID using the did:cheqd method from ACA-Py Agent
Follow these instructions to create a new DID from ACA-Py Agent and publish the associated DID Document on cheqd ledger.
⚠️ Before you begin...
Make sure you've correctly configured the cheqd plugin's agent settings for ACA-Py.
For wallet storage, utilise a Postgres database to ensure key persistence, enabling future updates to the DID.
Populate the various options
and features
in the JSON request body and call the API to create the DID.
These are the variables that can be passed in the Body:
After creating a DID or multiple DIDs, users can list all the created DIDs associated with their wallet. Using the /wallet/did
API.
/did/cheqd/update
DID to update
did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86
^(did:cheqd:(testnet|mainnet):(?:(?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))*:)*((?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))+)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)([?][^#]*)?|did:cheqd:(testnet|mainnet):(?:(?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))*:)*((?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))+)/resources/([a-z,0-9,-]{36,36})([?][^#]*)?)$
DID Document to update
{"authentication":["did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1"],"controller":["did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86"],"id":"did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86","service":[{"id":"did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#service-1","type":"MessagingService","serviceEndpoint":["https://example.com/service"]}],"verificationMethod":[{"id":"did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1","type":"Ed25519VerificationKey2018","controller":"did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86","publicKeyMultibase":"z6Mk..."}]}
Additional configuration options
{"network":"testnet"}
/did/cheqd/deactivate
DID to deactivate
did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86
^(did:cheqd:(testnet|mainnet):(?:(?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))*:)*((?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))+)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)([?][^#]*)?|did:cheqd:(testnet|mainnet):(?:(?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))*:)*((?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))+)/resources/([a-z,0-9,-]{36,36})([?][^#]*)?)$
Additional configuration options
{"network":"testnet"}
/did/cheqd/create
Additional features to enable for the did.
{}
Additional configuration options
{"key_type":"ed25519","method_specific_id_algo":"uuid","network":"testnet"}
/wallet/did
DID of interest
did:peer:WgWxqztrNooG92RXvxSTWv
^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\/[^#?]*)?([?][^#]*)?(\#.*)?$$
Key type to query for.
ed25519
ed25519
, bls12381g2
DID method to query for. e.g. sov to only fetch indy/sov DIDs
key
Whether DID is current public DID, posted to ledger but current public DID, or local to the wallet
wallet_only
public
, posted
, wallet_only
Verification key of interest
H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV
^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$