DIDs
Create and manage DIDs owned by the cloud agent
Dids are a core component of the Cloud Agent, they are the identifiers that the cloud agent uses when engaging in DI operations (e.g. issuing VCs).
Create a DID
The Cloud Agent service supports multiple DID types (DID methods) to be created. All DIDs are created with the createDid mutation, with different inputs depending on the DID method. A private human readable and searchable alias can be assigned to DIDs for record-keeping purposes.
Cheqd DID
did:cheqd DIDs can be created by the cloud agent and written permanently to the cheqd ledger as a production-ready DID. The network parameter determines whether the DID is created on testnet or mainnet.
mutation MyMutation {
createDid(
input: {
alias: "MyCheqdDID"
createCheqdDidOptions: {
network: TESTNET
}
}
) {
did
alias
methodData {
... on CheqdDidMethodData {
network
}
}
createdTimestamp
primary
}
}Key DID
Alternatively, did:key DIDs are a basic no-cost DID that the cloud agent can create, ideal for development. The keyType parameter determines which cryptographic key type is used for the DID.
mutation MyMutation {
createDid(
input: {
alias: "MyKeyDID"
createKeyDidOptions: {
keyType: ED25519
}
}
) {
did
alias
methodData {
... on KeyDidMethodData {
keyType
}
}
createdTimestamp
primary
}
}Set a primary DID
A Cloud Agent DID can be set the 'primary' DID for the agent, unsetting any existing primary DID. Setting a primary DID is purely for referential and record-keeping purposes when interacting with the Cloud Agent.
mutation MyMutation {
setPrimaryDid(
did: "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
) {
did
alias
primary
modifiedTimestamp
}
}Update a DID
A DID's metadata, including its alias and archived status can be updated.
mutation MyMutation {
updateDid(
did: "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
input: {
updateAlias: "UpdatedAlias"
updatedArchived: false
}
) {
did
alias
archived
modifiedTimestamp
}
}View DIDs
DIDs created by the cloud agent can be listed, using pagination and filtering options. This query returns a nextToken which can be passed into the same query in order to fetch subsequent pages.
query MyQuery {
dids(
page: {
nextToken: null
}
filter: {
methods: [KEY, CHEQD]
archived: false
}
) {
items {
did
alias
methodData {
... on KeyDidMethodData {
keyType
}
... on CheqdDidMethodData {
network
}
}
primary
createdTimestamp
}
nextToken
}
}Alternatively, a single DID can be viewed, referenced by its unique identifier.
query MyQuery {
did(
did: "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
) {
did
alias
methodData {
... on KeyDidMethodData {
keyType
}
}
primary
archived
createdTimestamp
}
}The current primary DID for the agent can be viewed with a standalone query.
query MyQuery {
primaryDid {
did
alias
methodData {
... on KeyDidMethodData {
keyType
}
... on CheqdDidMethodData {
network
}
}
primary
createdTimestamp
}
}Last updated