Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Publish multiple revocation or suspension updates, or rotate encryption keys using cheqd Studio.
Use the cheqd MCP server to provision your AI Agent its own DID.
Accept a JWT Credential into the AI Agent's wallet.
Update the indices of a Bitstring Status List as a DID-Linked Resource (DLR) on cheqd, using cheqd Studio.
Resolve a did:cheqd Decentralized Identifier (DID) to fetch the associated DID Document, using cheqd Studio.
Search for a DID-Linked Resource (DLR) associated with a cheqd Decentralized Identifier (DID) over REST API, using cheqd Studio.
did id and the complete didDocumentin the request body. The main field that is updated using this method os the service object of the DID.Tutorial: Issue a Verifiable Credential using MCP Toolkit
Understand how to issue a W3C Verifiable Credential including an encrypted Status List in the body.
Create a standalone public/private keypair, used to create Decentralized Identifiers (DIDs), using cheqd Studio.
Issue and present SD-JWT VC credentials signed by cheqd Decentralized Identifiers (DIDs), using Credo.
const credentialDefinitionResult = await agent.modules.anoncreds.registerCredentialDefinition({
credentialDefinition: {
tag: 'default',
issuerId: '<did>',
schemaId: schemaResult.schemaState.schemaId,
},
options: {
supportRevocation: false,
},
})
if (credentialDefinitionResult.credentialDefinitionState.state === 'failed') {
throw new Error(
`Error creating credential definition: ${credentialDefinitionResult.credentialDefinitionState.reason}`
)
}









agent.dids.create(), but this does require an endorser DID to be present as the submitterDid. This is optional, if you have created a DID from the agent before as described here.await agent.modules.cheqd.resolveResource(
'did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d/resources/6de33634-6439-4e46-aa3f-bfe03606b000'
)await agent.modules.cheqd.resolveResource(
'did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d?resourceName=exampleTrustRegistry&resourceType=TrustRegistry'
)await agent.modules.cheqd.resolveResource(
'did:cheqd:testnet:<uuid>?resourceName=example&resourceType=exampleType&resourceVersionTime=2023-01-01T00:00:00Z'
)await agent.dids.deactivate({
did: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411',
options: {
versionId: '3.0', // Optional: for tracking version history or audit purposes
},
})const seed = TypedArrayEncoder.fromString(`<seed>`) // Secret seed. Should be kept secure in production!
const cheqdDid = 'did:cheqd:testnet:d37eba59-513d-42d3-8f9f-d1df0548b675' // Cheqd DID to be imported
await agent.dids.import({
did: cheqdDid,
overwrite: true,
privateKeys: [
{
privateKey: seed,
keyType: KeyType.Ed25519,
},
],
})const schemaResult = await agent.modules.anoncreds.registerSchema({
schema: {
attrNames: ['name', 'degree', 'date'],
issuerId: '<did>',
name: 'Example Schema to register',
version: '1.0.0',
},
options: {},
})
if (schemaResult.schemaState.state === 'failed') {
throw new Error(`Error creating schema: ${schemaResult.schemaState.reason}`)
}{
"alg": "ES256",




Advanced setup guide for running the cheqd Studio.
Chronological changelog for cheqd Studio portal releases.
Issue Verifiable Credentials with Credo, signed by cheqd Decentralized Identifiers (DIDs).
Create a DID-Linked Resource (DLR) associated with a cheqd Decentralized Identifier (DID) over REST API, using cheqd Studio.
$ base64 -w 0 resource.json
<path-to-the-resource-file>$ base64 -w 0 resource.json
HfSynOpmBrhgfYguING{
"data": "HfSynOpmBrhgfYguING",
"encoding": "base64url",
"name": "DegreeCredentialStatus",
"type": "TokenStatusList"
}// from mcp-toolkit folder
cd docker
docker compose --profile demo up -d{
"alias": "Faber",
"handshake_protocols": ["https://didcomm.org/didexchange/1.1"],
"use_public_did": false,
"my_label": "Invitation to Faber"
}{
"anoncreds": {
"requested_attributes": <<requestedAttributes>>,
"requested_predicates": <<requestedPredicates>>,
"self_attested_attributes": {}
}docker compose -f docker/no-external-db/docker-compose-no-db.yml up --detach


EXTERNAL_DB_CERTIFICATE: Custom CA certificate required to connect to the database (optional).http://localhost:3000/api


























did:cheqd)"credentialSubject": {
"id": "did:cheqd:testnet:e66a9416-d03e-4ced-95e3-07af16e25bc5",
"accreditedFor": [
{
"schemaId": "did:cheqd:testnet:8ea036da-f340-480d-8952-f5561ea1763c/resources/b10146d7-0d0f-41e0-8ee3-c76db64890be",
"types": [
"VerifiableCredential",
"VerifiableAttestation",
"DiplomaCredential"
],
"limitJurisdiction": "https://publications.europa.eu/resource/authority/atu/FIN"
}
]
},
"termsOfUse": {
"type": "AccreditationPolicy",
"parentAccreditation": "did:cheqd:testnet:8ea036da-f340-480d-8952-f5561ea1763c/resources/18de60ec-bed1-42e5-980c-601c432bc60b",
"rootAuthorization": "did:cheqd:testnet:8ea036da-f340-480d-8952-f5561ea1763c/resources/18de60ec-bed1-42e5-980c-601c432bc60b"
}
await agent.modules.cheqd.createResource(
'did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d',
{
id: '6de33634-6439-4e46-aa3f-bfe03606b000',
name: 'exampleTrustRegistry',
resourceType: 'TrustRegistry',
version: '1.0',
data: {
name: 'Example Org',
jurisdiction: 'EU',
},
}
)import { DidDocumentService } from '@credo-ts/core'
await agent.dids.update({
did: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411',
// Used to authorize and derive additional keys, if needed
secret: {
verificationMethod: {
id: 'key-2',
type: 'JsonWebKey2020', // Can also be Ed25519VerificationKey2020, etc.
},
},
didDocument: {
id: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411',
controller: ['did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411'],
verificationMethod: [
{
id: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411#key-1',
type: 'Ed25519VerificationKey2020',
controller: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411',
publicKeyMultibase: 'z6MknkzLUEP5cxqqsaysNMWoh8NJRb3YsowTCj2D6yhwyEdj',
},
],
authentication: [
'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411#key-1',
],
service: [
new DidDocumentService({
id: 'did:cheqd:testnet:b84817b8-43ee-4483-98c5-f03760816411#website',
type: 'linkedDomains',
serviceEndpoint: 'https://rand.in',
}),
],
},
})await this.agent.modules.proofs.requestProof({
protocolVersion: 'v2',
connectionId: connectionRecord.id,
proofFormats: {
anoncreds: {
name: 'proof-request',
version: '1.0',
requested_attributes: {
name: {
name: 'name',
restrictions: [
{
cred_def_id: this.credentialDefinition?.credentialDefinitionId,
},
],
},
},
},
},
})this.agent.events.on(ProofEventTypes.ProofStateChanged
async ({ payload }: ProofStateChangedEvent) => {
if (payload.proofRecord.state === ProofState.RequestReceived) {
const requestedCredentials = await this.agent.modules.proofs.selectCredentialsForRequest({
proofRecordId: payload.proofRecord.id,
})
await this.agent.modules.proofs.acceptRequest({
proofRecordId: proofRecord.id,
proofFormats: requestedCredentials.proofFormats,
})
}
})const createNewInvitation = async (agent: Agent) => {
const outOfBandRecord = await agent.modules.oob.createInvitation()
return {
invitationUrl: outOfBandRecord.outOfBandInvitation.toUrl({ domain: 'http://localhost:3001' }),
outOfBandRecord,
}
}const receiveInvitation = async (agent: Agent, invitationUrl: string) => {
const { outOfBandRecord } = await agent.modules.oob.receiveInvitationFromUrl(invitationUrl)
if (!outOfBandRecord) {
throw new Error(redText(Output.NoConnectionRecordFromOutOfBand))
}
return outOfBandRecord
}await this.agent.modules.credentials.offerCredential({
connectionId: connectionRecord.id,
protocolVersion: 'v2',
credentialFormats: {
anoncreds: {
attributes: [
{
name: 'name',
value: 'Alice Smith',
},
{
name: 'degree',
value: 'Computer Science',
},
{
name: 'date',
value: '01/01/2022',
},
],
credentialDefinitionId: credentialDefinition.credentialDefinitionId,
},
},
})this.agent.events.on(CredentialEventTypes.CredentialStateChanged,
async ({ payload }: CredentialStateChangedEvent) => {
switch (payload.credentialRecord.state) {
case CredentialState.OfferReceived:
console.log('received a credential')
// custom logic here
await this.agent.modules.credentials.acceptOffer({ credentialRecordId: payload.credentialRecord.id })
break
case CredentialState.Done:
console.log(`Credential for credential id ${payload.credentialRecord.id} is accepted`)
// For demo purposes we exit the program here.
process.exit(0)
}
})import { Agent, DidsModule } from '@credo-ts/core';
import { agentDependencies } from '@credo-ts/node';
import { CheqdModule } from '@credo-ts/cheqd';
import { OpenId4VcHolderModule } from '@credo-ts/openid4vc';
const holder = new Agent({
config,
dependencies: agentDependencies,
modules: {
dids: new DidsModule({
resolvers: [new CheqdDidResolver()],
}),
openId4VcHolderModule: new OpenId4VcHolderModule(),
},
});import { DidKey, KeyDidCreateOptions, getJwkFromKey } from '@credo-ts/core';
const resolved = await holder.modules.openId4VcHolder.resolveCredentialOffer(credentialOffer);
const credentials = await holder.modules.openId4VcHolder.acceptCredentialOfferUsingPreAuthorizedCode(
resolved,
{
credentialBindingResolver: async ({
supportedDidMethods,
keyType,
supportsAllDidMethods,
supportsJwk,
credentialFormat,
}) => {
if (supportsAllDidMethods || supportedDidMethods?.includes('did:key')) {
const didResult = await holder.dids.create<KeyDidCreateOptions>({
method: 'key',
options: { keyType },
});
const didKey = DidKey.fromDid(didResult.didState.did);
return {
method: 'did',
didUrl: `${didKey.did}#${didKey.key.fingerprint}`,
};
}
if (supportsJwk && credentialFormat === OpenId4VciCredentialFormatProfile.SdJwtVc) {
const key = await holder.wallet.createKey({ keyType });
return { method: 'jwk', getJwkFromKey(key) };
}
throw new Error('No binding method supported.');
},
}
);
// Store the received credentials
const records: Array<W3cCredentialRecord | SdJwtVcRecord> = []
for (const credential of credentials) {
if ('compact' in credential) {
const record = await holder.sdJwtVc.store(credential.compact)
records.push(record)
} else {
const record = await holder.w3cCredentials.storeCredential({
credential,
})
records.push(record)
}
}// resolved credential offer contains the offer, metadata, etc..
const resolvedRequest = await holder.modules.openId4VcHolderModule.resolveSiopAuthorizationRequest(authorizationRequest)
console.log(
'Resolved credentials for request', JSON.stringify(resolvedRequest.presentationExchange.credentialsForRequest, null, 2)
)
const presExchangeService = holder.dependencyManager.resolve(DifPresentationExchangeService)
// Automatically select credentials. In a wallet you could manually choose which credentials to return based on the "resolvedAuthorizationRequest.presentationExchange.credentialsForRequest" value
const selectedCredentials = presExchangeService.selectCredentialsForRequest(
resolvedRequest.presentationExchange.credentialsForRequest
)
// issuer only supports pre-authorized flow for now
const authorizationResponse = await holder.modules.openId4VcHolderModule.acceptSiopAuthorizationRequest({
authorizationRequest: resolvedRequest.authorizationRequest,
presentationExchange: {
credentials: selectedCredentials,
},
})
console.log('Submitted authorization response', JSON.stringify(authorizationResponse.submittedResponse, null, 2))// Create a verifier, assuming the agent is called 'verifier'
const openId4VcVerifier = await verifier.modules.openId4VcVerifier.createVerifier({})
// Create a did:key that we will use for signing OpenID4VP authorization requests
const verifierDidResult = await issuer.dids.create<KeyDidCreateOptions>({
method: 'key',
options: {
keyType: KeyType.Ed25519,
},
})
if (verifierDidResult.didState.state !== 'finished') {
throw new Error('DID creation failed.')
}
const verifierDidKey = DidKey.fromDid(verifierDidResult.didState.did)const { authorizationRequest, verificationSession } =
await verifier.modules.openId4VcVerifier.createAuthorizationRequest({
verifierId: openId4VcVerifier.verifierId,
requestSigner: {
didUrl: `${verifierDidKey.did}#${verifierDidKey.key.fingerprint}`,
method: 'did',
},
// Add DIF presentation exchange data
presentationExchange: {
definition: {
id: '9ed05140-b33b-445e-a0f0-9a23aa501868',
name: 'Employee Verification',
purpose: 'We need to verify your employee status to grant access to the employee portal',
input_descriptors: [
{
id: '9c98fb43-6fd5-49b1-8dcc-69bd2a378f23',
constraints: {
// Require limit disclosure
limit_disclosure: 'required',
fields: [
{
filter: {
type: 'string',
const: 'AcmeCorpEmployee',
},
path: ['$.vct'],
},
],
},
},
],
},
},
})// Listen and react to changes in the verification session
verifier.events.on<OpenId4VcVerificationSessionStateChangedEvent>(
OpenId4VcVerifierEvents.VerificationSessionStateChanged,
async (event) => {
if (event.payload.verificationSession.id === verificationSession.id) {
console.log('Verification session state changed to ', event.payload.verificationSession.state)
}
if (event.payload.verificationSession.state === OpenId4VcVerificationSessionState.ResponseVerified) {
const verifiedAuthorizationResponse = await verifier.modules.openId4VcVerifier.getVerifiedAuthorizationResponse(
verificationSession.id
)
console.log('Successfully verified presentation.', JSON.stringify(verifiedAuthorizationResponse, null, 2))
console.log('Exiting...')
process.exit()
}
}
)"app,logto"
Get started with cheqd's identity functionality and product offerings.
Create a Token Status List JWT or CWT as a DID-Linked Resource (DLR), using cheqd Studio.
Learn how to include or reference Trust Registries and Verifiable Accreditations within the body of W3C Verifiable Credentials.
Set up your Decentralized Trust Chain (DTC) on cheqd.
Anchor Decentralized Identifiers (DIDs) in DNS records and validate Decentralized Trust Chains (DTCs) using TRAIN.
Learn about structuring Verifiable Accreditations from a Root of Trust (rTAO) to a subordinate entity (TAO) on cheqd.
Learn about structuring Verifiable Accreditations from a Trusted Accreditation Organisation (TAO) to a subordinate TAO (subTAO) on cheqd.
chmod +x docker/with-external-db/pg-init-scripts/create-multiple-postgresql-databases.shdocker compose -f docker/with-external-db/docker-compose-with-db.yml --profile logto up --detachdocker compose -f docker/with-external-db/docker-compose-with-db.yml up --detachdocker compose -f docker/with-external-db/docker-compose-with-db.yml --profile app-setup up --detachdocker compose -f docker/with-external-db/docker-compose-with-db.yml --profile logto-setup up --detachdocker build --file docker/Dockerfile --target runner . --tag credential-service:local10{
"did": "string",
"statusListName": "string",
"index": 0,
"makeFeePayment": false
}import { ProofEventTypes, ProofState } from '@credo-ts/core'
const setupProofListener = (agent: Agent) => {
agent.events.on(ProofEventTypes.ProofStateChanged, async ({ payload }) => {
const { proofRecord } = payload
switch (proofRecord.state) {
case ProofState.RequestReceived:
console.log('Holder: Proof request received, creating presentation...')
const requestedCredentials = await agent.proofs.selectCredentialsForRequest({
proofRecordId: proofRecord.id,
})
await agent.proofs.acceptRequest({
proofRecordId: proofRecord.id,
proofFormats: {
presentationExchange: {
credentials: requestedCredentials.proofFormats['presentation-exchange']?.credentials || {},
},
},
})
break
case ProofState.PresentationReceived:
console.log('Issuer: Presentation received, verifying...')
await agent.proofs.acceptPresentation({
proofRecordId: proofRecord.id,
})
break
case ProofState.Done:
console.log('Proof verification completed!')
const proof = await agent.proofs.getById(proofRecord.id)
console.log('Proof is valid:', proof.isVerified)
break
}
})
}// Define what we want to verify
const presentationDefinition = {
id: 'permanent-resident-verification',
input_descriptors: [
{
id: 'permanent-resident-card',
name: 'Permanent Resident Card',
purpose: 'Verify permanent resident status',
constraints: {
fields: [
{
path: ['$.type'],
filter: {
type: 'array',
contains: { const: 'PermanentResidentCard' },
},
},
{
path: ['$.credentialSubject.givenName'],
filter: { type: 'string' },
},
{
path: ['$.credentialSubject.familyName'],
filter: { type: 'string' },
},
{
path: ['$.credentialSubject.lprNumber'],
filter: { type: 'string' },
},
],
},
},
],
}
// Get Connection
const {invitationUrl, issuerConnection} = await createInvitation(issuerAgent)
console.log('Requesting proof verification...')
const proofExchange = await issuerAgent.proofs.requestProof({
connectionId: issuerConnection.id,
protocolVersion: 'v2',
proofFormats: {
presentationExchange: { presentationDefinition },
},
comment: 'Please present your Permanent Resident Card for verification',
})
console.log('Proof request sent:', proofExchange.id)
// The rest of the flow is handled automatically by event listeners{
"name": "degreeSchema",
"version": "1.5.7",
"attrNames": ["name", "age", "degree", "grade"]
}$ base64 -w 0 resource.json
<path-to-the-resource-file>$ base64 -w 0 resource.json
SGVsbG8sIHdvcmxkconst key = await agent.wallet.createKey({
keyType: KeyType.Ed25519,
})
const ed25519PublicKeyBase58 = key.publicKeyBase58import { DidDocument } from '@credo-ts/core'
await agent.dids.create<CheqdDidCreateOptions>({
method: 'cheqd',
secret: {}, // No secret needed if key is already in wallet
options: {
network: 'testnet',
},
didDocument: new DidDocument({
id: 'did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d',
controller: ['did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d'],
verificationMethod: [
{
id: 'did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d#key-1',
type: 'Ed25519VerificationKey2018',
controller: 'did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d',
publicKeyBase58: ed25519PublicKeyBase58,
},
],
authentication: [
'did:cheqd:testnet:92874297-d824-40ea-8ae5-364a1ec9237d#key-1',
],
}),
})await agent.dids.create({
method: 'cheqd',
secret: {
verificationMethod: {
id: 'key-1', // Logical key name
type: 'Ed25519VerificationKey2020', // Or another supported type
},
},
options: {
network: 'testnet',
methodSpecificIdAlgo: 'uuid', // Optional: 'uuid' (default) or 'base58'
},
}){
"did": "did:cheqd:mainnet:71e24492-e62c-4e55-a581-007a6e36e881",
"service": [
{
"id": "did:cheqd:mainnet:71e24492-e62c-4e55-a581-007a6e36e881#website",
"type": "LinkedDomains",
"serviceEndpoint": [
"https:example.com"
]
}
]
}{
"did": "did:cheqd:mainnet:71e24492-e62c-4e55-a581-007a6e36e881",
"verificationMethod": [
{
"id":"did:cheqd:mainnet:71e24492-e62c-4e55-a581-007a6e36e881#key-2",
"type":"Ed25519VerificationKey2018",
"controller":"did:cheqd:mainnet:71e24492-e62c-4e55-a581-007a6e36e881",
"publicKeyBase58":"4sjwZ3VGWupJ26ytxjhU6LhjKiPrHV5reZbaNseyHtf8"
}
],
"authentication": [
"did:cheqd:mainnet:71e24492-e62c-4e55-a581-007a6e36e881#key-2"
]
}{
"didDocument": {
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2018/v1"
],
"id": "did:cheqd:mainnet:71e24492-e62c-4e55-a581-007a6e36e881",
"controller": [
"did:cheqd:mainnet:71e24492-e62c-4e55-a581-007a6e36e881"
],
"verificationMethod": [
{
"id": "did:cheqd:mainnet:71e24492-e62c-4e55-a581-007a6e36e881#key-1",
"type": "Ed25519VerificationKey2018",
"controller": "did:cheqd:mainnet:71e24492-e62c-4e55-a581-007a6e36e881",
"publicKeyBase58": "4sjwZ3VGWupJ26ytxjhU6LhjKiPrHV5reZbaNseyHtf8"
}
],
"authentication": [
"did:cheqd:mainnet:71e24492-e62c-4e55-a581-007a6e36e881#key-1"
],
"service": [
{
"id": "did:cheqd:mainnet:71e24492-e62c-4e55-a581-007a6e36e881#website",
"type": "LinkedDomains",
"serviceEndpoint": [
"https://example.com"
]
}
]
}
}





{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential"],
"issuer": "did:cheqd:testnet:c2f18b6b-32e2-48d1-a5a8-5f5d2d9798f0",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:cheqd:testnet:b4902745-5b5b-423e-820a-0773b033f2b9",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"termsOfUse": {
"type": "AttestationPolicy",
"parentAccreditation": "did:cheqd:testnet:c2f18b6b-32e2-48d1-a5a8-5f5d2d9798f0/resources/58c01595-f884-4a3b-add4-8c691e16b8ee",
"rootAuthorization": "did:cheqd:testnet:c2f18b6b-32e2-48d1-a5a8-5f5d2d9798f0/resources/58c01595-f884-4a3b-add4-8c691e16b8ee"
}
}
{
"issuer": "did:cheqd:testnet:c2f18b6b-32e2-48d1-a5a8-5f5d2d9798f0",
"type": ["VerifiableCredential", "ExampleDegreeCredential"],
"termsofuse": "AttestationPolicy",
"parentAccreditation": "did:cheqd:testnet:c2f18b6b-32e2-48d1-a5a8-5f5d2d9798f0/resources/58c01595-f884-4a3b-add4-8c691e16b8ee",
"DNSTrustFrameworkPointers": ["example.trust-scheme.org"]
}{
"VerificationStatus": true,
"VerificationResult": {
"AccreditorDIDs": [
"did:cheqd:testnet:c2f18b6b-32e2-48d1-a5a8-5f5d2d9798f0",
"did:cheqd:testnet:8ea036da-f340-480d-8952-f5561ea1763c"
],
"FoundRootIssuerDID": "did:cheqd:testnet:8ea036da-f340-480d-8952-f5561ea1763c",
"TrustFramework": "Example Trust Framework",
"TrustFrameworkId": "https://example.com/governance-framework/124",
"VerifyRootIssuerDIDinDNS": true
}
}Root Authorization for Trust Chain (published by rTAO)
↓
Verifiable Accreditation from rTAO to TAO
↓
Verifiable Accreditation from TAO to Trusted Issuer
↓
Verifiable Credential (Attestation) issued to subjectTAO: did:cheqd:gov-edu ← Department of Education
└── Root Authorization → "cheqd Governance Framework"
↓
TAO: did:cheqd:state-certifier ← State Certification Body
↓
Trusted Issuer: did:cheqd:university-123 ← Accredited University
↓
Verifiable Credential: Bachelor of Sciencetrust.federation1.com. NS ns1.trust.federation1.com.
ns1.trust.federation1.com. A 203.0.113.10_did.trust.federation1.com. TXT "did:cheqd:mainnet:rtao123"did:cheqd{
"alg": "ES256",
"kid": "12",
"typ": "statuslist+jwt"
}
.
{
"exp": 2291720170,
"iat": 1686920170,
"iss": "https://example.com",
"status_list": {
"bits": 1,
"lst": "eNrbuRgAAhcBXQ"
},
"sub": "https://example.com/statuslists/1"
}d28453a20126106e7374617475736c6973742b637774a1044231325860a502782168
747470733a2f2f6578616d706c652e636f6d2f7374617475736c697374732f310173
68747470733a2f2f6578616d706c652e636f6d061a648c5bea041a8898
56a2646269747301636c73744a78dadbb918000217015d58400f2ca3772e10b09d5d
6ed56461f7cba1a816c6234072d1bb693db277048e5db5a4e64444492a9
c9714db99cc7aadb3812ec90cab7794170bab5b473



Design, Build and Validate Trust Registries for AI Agents on cheqd.
Issue a Credential to an AI Agent using cheqd's APIs.
Issue and manage Verifiable Credentials and Presentations, signed by cheqd Decentralized Identifiers (DIDs).
How a Verifier pays an Issuer to decrypt an encrypted Status List.
Set up your ACA-Py agent to start using cheqd.
plugin-config.yml:"credentialSubject": {
"id": "did:cheqd:testnet:a2b675de-33d0-4044-8183-0d74f210cceb",
"accreditedFor": [
{
"schemaId": "did:cheqd:testnet:8ea036da-f340-480d-8952-f5561ea1763c/resources/b10146d7-0d0f-41e0-8ee3-c76db64890be",
"types": [
"VerifiableCredential",
"VerifiableAccreditation",
"VerifiableAttestation",
"VerifiableAccreditationToAccredit"
],
"limitJurisdiction": "https://publications.europa.eu/resource/authority/atu/FIN"
}
]
}"termsOfUse": {
"type": "AccreditationPolicy",
"parentAccreditation": "did:cheqd:testnet:8ea036da-f340-480d-8952-f5561ea1763c/resources/18de60ec-bed1-42e5-980c-601c432bc60b",
"rootAuthorization": "did:cheqd:testnet:8ea036da-f340-480d-8952-f5561ea1763c/resources/18de60ec-bed1-42e5-980c-601c432bc60b"
}
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://schema.org/schema.jsonld",
"https://veramo.io/contexts/profile/v1"
],
"issuer": {
"id": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e"
},
"type": [
"VerifiableCredential",
"VerifiableAccreditationToAccredit"
],
"issuanceDate": "2024-08-07T02:08:30.000Z",
"credentialSubject": {
"accreditedFor": [
{
"schemaId": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e?resourceName=VerifiableAccreditation&resourceType=JSONSchemaValidator2020",
"types": [
"VerifiableCredential",
"VerifiableAccreditation",
"VerifiableAttestation",
"VerifiableAccreditationToAccredit"
]
}
],
"id": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad"
},
"termsOfUse": {
"type": "AccreditationPolicy",
"parentAccreditation": "did:cheqd:testnet:8ea036da-f340-480d-8952-f5561ea1763c/resources/18de60ec-bed1-42e5-980c-601c432bc60b",
"rootAuthorization": "did:cheqd:testnet:8ea036da-f340-480d-8952-f5561ea1763c/resources/18de60ec-bed1-42e5-980c-601c432bc60b"
},
"proof": {
"type": "JwtProof2020",
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vc2NoZW1hLm9yZy9zY2hlbWEuanNvbmxkIiwiaHR0cHM6Ly92ZXJhbW8uaW8vY29udGV4dHMvcHJvZmlsZS92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImFjY3JlZGl0ZWRGb3IiOlt7InNjaGVtYUlkIjoiZGlkOmNoZXFkOnRlc3RuZXQ6OGVhMDM2ZGEtZjM0MC00ODBkLTg5NTItZjU1NjFlYTE3NjNjL3Jlc291cmNlcy9iMTAxNDZkNy0wZDBmLTQxZTAtOGVlMy1jNzZkYjY0ODkwYmUiLCJ0eXBlcyI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIlZlcmlmaWFibGVBY2NyZWRpdGF0aW9uIiwiVmVyaWZpYWJsZUF0dGVzdGF0aW9uIiwiVmVyaWZpYWJsZUFjY3JlZGl0YXRpb25Ub0FjY3JlZGl0Il0sImxpbWl0SnVyaXNkaWN0aW9uIjoiaHR0cHM6Ly9wdWJsaWNhdGlvbnMuZXVyb3BhLmV1L3Jlc291cmNlL2F1dGhvcml0eS9hdHUvRklOIn1dfX0sInN1YiI6ImRpZDpjaGVxZDp0ZXN0bmV0OjZhZjQxMmQ3LTJmMDQtNGUxMi1hNDI0LWU2NzE5ZGI0ODdhZCIsIm5iZiI6MTcyMjk5NjUxMCwiaXNzIjoiZGlkOmNoZXFkOnRlc3RuZXQ6YjAwM2RmNmYtZWM4ZS00OGRkLTlhMmItNzAxMWM1Y2YwYTVlIn0.CrEirG-Yki2HCfY6GjNR_Oqx0ZV6uJr1NPpTTLnVWfG1Q9R3YASj7IyEZ3FtVGRmdSNhQ9v2pmPijVxeBnwPAg"
}
}"credentialSubject": {
"id": "did:cheqd:testnet:e66a9416-d03e-4ced-95e3-07af16e25bc5",
"accreditedFor": [
{
"schemaId": "did:cheqd:testnet:8ea036da-f340-480d-8952-f5561ea1763c/resources/b10146d7-0d0f-41e0-8ee3-c76db64890be",
"types": [
"VerifiableCredential",
"VerifiableAccreditation",
"VerifiableAttestation",
"VerifiableAccreditationToAccredit"
],
"limitJurisdiction": "https://publications.europa.eu/resource/authority/atu/FIN"
}
]
},
"termsOfUse": {
"type": "AccreditationPolicy",
"parentAccreditation": "did:cheqd:testnet:8ea036da-f340-480d-8952-f5561ea1763c/resources/18de60ec-bed1-42e5-980c-601c432bc60b",
"rootAuthorization": "did:cheqd:testnet:8ea036da-f340-480d-8952-f5561ea1763c/resources/18de60ec-bed1-42e5-980c-601c432bc60b"
}
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://schema.org/schema.jsonld",
"https://veramo.io/contexts/profile/v1"
],
"issuer": {
"id": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e"
},
"type": [
"VerifiableCredential",
"VerifiableAccreditationToAccredit"
],
"issuanceDate": "2024-08-07T02:08:30.000Z",
"credentialSubject": {
"accreditedFor": [
{
"schemaId": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e?resourceName=VerifiableAccreditation&resourceType=JSONSchemaValidator2020",
"types": [
"VerifiableCredential",
"VerifiableAccreditation",
"VerifiableAttestation",
"VerifiableAccreditationToAccredit"
]
}
],
"id": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad"
},
"termsOfUse": {
"type": "AccreditationPolicy",
"parentAccreditation": "did:cheqd:testnet:8ea036da-f340-480d-8952-f5561ea1763c/resources/18de60ec-bed1-42e5-980c-601c432bc60b",
"rootAuthorization": "did:cheqd:testnet:8ea036da-f340-480d-8952-f5561ea1763c/resources/18de60ec-bed1-42e5-980c-601c432bc60b"
},
"proof": {
"type": "JwtProof2020",
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vc2NoZW1hLm9yZy9zY2hlbWEuanNvbmxkIiwiaHR0cHM6Ly92ZXJhbW8uaW8vY29udGV4dHMvcHJvZmlsZS92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImFjY3JlZGl0ZWRGb3IiOlt7InNjaGVtYUlkIjoiZGlkOmNoZXFkOnRlc3RuZXQ6OGVhMDM2ZGEtZjM0MC00ODBkLTg5NTItZjU1NjFlYTE3NjNjL3Jlc291cmNlcy9iMTAxNDZkNy0wZDBmLTQxZTAtOGVlMy1jNzZkYjY0ODkwYmUiLCJ0eXBlcyI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIlZlcmlmaWFibGVBY2NyZWRpdGF0aW9uIiwiVmVyaWZpYWJsZUF0dGVzdGF0aW9uIiwiVmVyaWZpYWJsZUFjY3JlZGl0YXRpb25Ub0FjY3JlZGl0Il0sImxpbWl0SnVyaXNkaWN0aW9uIjoiaHR0cHM6Ly9wdWJsaWNhdGlvbnMuZXVyb3BhLmV1L3Jlc291cmNlL2F1dGhvcml0eS9hdHUvRklOIn1dfX0sInN1YiI6ImRpZDpjaGVxZDp0ZXN0bmV0OjZhZjQxMmQ3LTJmMDQtNGUxMi1hNDI0LWU2NzE5ZGI0ODdhZCIsIm5iZiI6MTcyMjk5NjUxMCwiaXNzIjoiZGlkOmNoZXFkOnRlc3RuZXQ6YjAwM2RmNmYtZWM4ZS00OGRkLTlhMmItNzAxMWM1Y2YwYTVlIn0.CrEirG-Yki2HCfY6GjNR_Oqx0ZV6uJr1NPpTTLnVWfG1Q9R3YASj7IyEZ3FtVGRmdSNhQ9v2pmPijVxeBnwPAg"
}
}did:cheqd:testnet:0ff9df5d-653b-4f77-a66c-0035abc34d63employmentCredentialRevocationList1400001.0https://www.foo.com{
"did": "did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e",
"statusListName": "cheqd-employee-credentials",
"length": 140000,
"encoding": "base64url"
}{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://veramo.io/contexts/profile/v1",
"https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:z6jKUJA5YcZsNxZgsrQPKPipL2FRTf4s/resources/a20aa56a-a76f-4828-8a98-4c85d9494545"
],
"type": [
"VerifiableCredential",
"EventReservation"
],
"issuanceDate": "2022-11-17T03:19:03.328Z",
"credentialSubject": {
"id": "did:key:z6MkwTr46BWU42YejmZrDDCbL127dBoxSXeLuaHS75vTCg7i"
},
"reservationId": "4810116769",
"reservationStatus": "https://schema.org/ReservationConfirmed",
"reservationFor": {
"@type": "Event",
"name": "Internet Identity Workshop IIWXXXV",
"startDate": "2022-11-16T16:00:00",
"endDate": "2022-11-18T00:00:00",
"location": "Computer History Museum, 1401 N Shoreline Blvd, Mountain View, CA 94043",
"logo": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:z6jKUJA5YcZsNxZgsrQPKPipL2FRTf4s/resources/8140ec3a-d8bb-4f59-9784-a1cbf91a4a35"
},
"issuer": {
"id": "did:cheqd:mainnet:zAXwwqZzhCZA1L77ZBa8fhVNjL9MQCHX"
},
"proof": {
"type": "JwtProof2020",
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vdmVyYW1vLmlvL2NvbnRleHRzL3Byb2ZpbGUvdjEiLCJodHRwczovL3Jlc29sdmVyLmNoZXFkLm5ldC9kaWQ6Y2hlcWQ6dGVzdG5ldDp6NmpLVUpBNVljWnNOeFpnc3JRUEtQaXBMMkZSVGY0cy9yZXNvdXJjZXMvYTIwYWE1NmEtYTc2Zi00ODI4LThhOTgtNGM4NWQ5NDk0NTQ1Il0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJFdmVudFJlc2VydmF0aW9uIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOmtleTp6Nk1rd1RyNDZCV1U0Mlllam1ackREQ2JMMTI3ZEJveFNYZUx1YUhTNzV2VENnN2kifX0sIkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIiwiaHR0cHM6Ly92ZXJhbW8uaW8vY29udGV4dHMvcHJvZmlsZS92MSIsImh0dHBzOi8vcmVzb2x2ZXIuY2hlcWQubmV0L2RpZDpjaGVxZDp0ZXN0bmV0Ono2aktVSkE1WWNac054WmdzclFQS1BpcEwyRlJUZjRzL3Jlc291cmNlcy9hMjBhYTU2YS1hNzZmLTQ4MjgtOGE5OC00Yzg1ZDk0OTQ1NDUiXSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIkV2ZW50UmVzZXJ2YXRpb24iXSwiaXNzdWFuY2VEYXRlIjoiMjAyMi0xMS0xN1QwMzoxOTowMy4zMjhaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6a2V5Ono2TWt3VHI0NkJXVTQyWWVqbVpyRERDYkwxMjdkQm94U1hlTHVhSFM3NXZUQ2c3aSJ9LCJyZXNlcnZhdGlvbklkIjoiNDgxMDExNjc2OSIsInJlc2VydmF0aW9uU3RhdHVzIjoiaHR0cHM6Ly9zY2hlbWEub3JnL1Jlc2VydmF0aW9uQ29uZmlybWVkIiwicmVzZXJ2YXRpb25Gb3IiOnsiQHR5cGUiOiJFdmVudCIsIm5hbWUiOiJJbnRlcm5ldCBJZGVudGl0eSBXb3Jrc2hvcCBJSVdYWFhWIiwic3RhcnREYXRlIjoiMjAyMi0xMS0xNlQxNjowMDowMCIsImVuZERhdGUiOiIyMDIyLTExLTE4VDAwOjAwOjAwIiwibG9jYXRpb24iOiJDb21wdXRlciBIaXN0b3J5IE11c2V1bSwgMTQwMSBOIFNob3JlbGluZSBCbHZkLCBNb3VudGFpbiBWaWV3LCBDQSA5NDA0MyIsImxvZ28iOiJodHRwczovL3Jlc29sdmVyLmNoZXFkLm5ldC8xLjAvaWRlbnRpZmllcnMvZGlkOmNoZXFkOnRlc3RuZXQ6ejZqS1VKQTVZY1pzTnhaZ3NyUVBLUGlwTDJGUlRmNHMvcmVzb3VyY2VzLzgxNDBlYzNhLWQ4YmItNGY1OS05Nzg0LWExY2JmOTFhNGEzNSJ9LCJpc3N1ZXIiOnsiaWQiOiJkaWQ6Y2hlcWQ6bWFpbm5ldDp6QVh3d3FaemhDWkExTDc3WkJhOGZoVk5qTDlNUUNIWCJ9LCJzdWIiOiJkaWQ6a2V5Ono2TWt3VHI0NkJXVTQyWWVqbVpyRERDYkwxMjdkQm94U1hlTHVhSFM3NXZUQ2c3aSIsIm5iZiI6MTY2ODY1NTE0MywiaXNzIjoiZGlkOmNoZXFkOm1haW5uZXQ6ekFYd3dxWnpoQ1pBMUw3N1pCYThmaFZOakw5TVFDSFgifQ.U4vPbvdY7724a1jJwiDeCH_4_YC5sKUMcH6lY_XCVWBTE1RvYAnTj4fPHWMy6zSVFL9TAk4ZBOqFjKUtShBSCw"
}
}{
"@context": {
"id": "@id",
"type": "@type",
"@version": 1.1,
"schema": "http://schema.org/#",
"xsd": "https://www.w3.org/2001/XMLSchema#",
"reservationId": {
"@id": "schema: reservationId",
"@type": "xsd:string"
},
"reservationStatus": "schema: reservationStatus",
"reservationFor": {
"@id": "schema: reservationFor",
"@type": "@id",
"@context": {
"name": "schema: name",
"startDate": "schema: startDate",
"endDate": "schema: endDate",
"location": {
"@id": "schema: location",
"@type": "xsd: string"
},
"logo": "schema: logo"
}
}
}
}$ base64 -w 0 resource.json
<path-to-the-resource-file>$ base64 -w 0 resource.json
SGVsbG8sIHdvcmxk{
"data": "SGVsbG8sIHdvcmxk",
"encoding": "base64url",
"name": "DegreeCredentialStatus",
"type": "TokenStatusList"
}"linkedResourceMetadata": [
{
"resourceURI": "did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d/resources/4e1104f9-2ee9-4bde-adc2-ab8ba72b124a",
"resourceCollectionId": "0a5b94d0-a417-48ed-a6f5-4abc9e95888d",
"resourceId": "4e1104f9-2ee9-4bde-adc2-ab8ba72b124a",
"resourceName": "DegreeCredentialStatus",
"resourceType": "TokenStatusList",
"mediaType": "application/json",
"resourceVersion": "",
"created": "2023-03-24T12:13:45Z",
"checksum": "6819aaecd4073173b159fedf8077c38e14939d03d58e7f4e2a0ddfe034eb2ed4",
"previousVersionId": null,
"nextVersionId": null
} 





./configs/settings.yml "paymentConditions": [
{
"type": "timelockPayment",
"feePaymentAddress": "cheqd1xl5wccz667lk06ahama26pdqvrkz5aws6m0ztp",
"feePaymentAmount": "147603000000000ncheq",
"intervalInSeconds": 3153600000
}
],{
"unifiedAccessControlCondition": {
"conditionType": "cosmos",
"path": "/cosmos/tx/v1beta1/txs?events=transfer.recipient='cheqd1xl5wccz667lk06ahama26pdqvrkz5aws6m0ztp'&events=transfer.amount='147603000000000ncheq'&order_by=2&pagination.limit=1",
"chain": "cheqdMainnet",
"method": "timelock",
"parameters": ["latest"],
"returnValueTest": {
"key": "$.tx_responses.*.timestamp",
"comparator": "<=",
"value": "3153600000"
}
},
"returnTxResponse": true
}
yarn add @credo-ts/cheqd
# or
npm install @credo-ts/cheqd{
"overrides": {
"@cosmjs/amino": "npm:@cosmjs-rn/amino@^0.27.1",
"@cosmjs/encoding": "npm:@cosmjs-rn/encoding@^0.27.1",
"@cosmjs/math": "npm:@cosmjs-rn/math@^0.27.1",
"@cosmjs/stargate": "npm:@cosmjs-rn/stargate@^0.27.1",
"@cosmjs/tendermint-rpc": "npm:@cosmjs-rn/tendermint-rpc@^0.27.1",
"@cosmjs/utils": "npm:@cosmjs-rn/utils@^0.27.1",
"@cosmjs/proto-signing": "npm:@cosmjs-rn/proto-signing@^0.27.1",
"@cosmjs/crypto": "npm:@cosmjs-rn/crypto@^0.27.1"
}
}{
"resolutions": {
"@cosmjs/amino": "npm:@cosmjs-rn/amino@^0.27.1",
"@cosmjs/encoding": "npm:@cosmjs-rn/encoding@^0.27.1",
"@cosmjs/math": "npm:@cosmjs-rn/math@^0.27.1",
"@cosmjs/stargate": "npm:@cosmjs-rn/stargate@^0.27.1",
"@cosmjs/tendermint-rpc": "npm:@cosmjs-rn/tendermint-rpc@^0.27.1",
"@cosmjs/utils": "npm:@cosmjs-rn/utils@^0.27.1",
"@cosmjs/proto-signing": "npm:@cosmjs-rn/proto-signing@^0.27.1",
"@cosmjs/crypto": "npm:@cosmjs-rn/crypto@^0.27.1"
}
}bashCopyEdityarn add buffertsCopyEditimport { Buffer } from 'buffer'
global.Buffer = BuffertsCopyEditimport './shim'import { Agent, DidsModule, KeyType, DidDocument } from '@credo-ts/core'
import { agentDependencies } from '@credo-ts/node'
import { AskarModule } from '@credo-ts/askar'
import { askar } from '@openwallet-foundation/askar-nodejs'
import {
ConnectionsModule,
V2ProofProtocol,
V2CredentialProtocol,
ProofsModule,
AutoAcceptProof,
AutoAcceptCredential,
CredentialsModule,
HttpOutboundTransport,
getDefaultDidcommModules,
} from '@credo-ts/didcomm'
import {
CheqdAnonCredsRegistry,
CheqdDidRegistrar,
CheqdDidResolver,
CheqdModule,
CheqdModuleConfig,
} from '@credo-ts/cheqd'
import { AnonCredsModule } from '@credo-ts/anoncreds'
import { anoncreds } from '@hyperledger/anoncreds-nodejs'
const agent = new Agent({
config,
dependencies: agentDependencies,
modules: {
dids: new DidsModule({
registrars: [new CheqdDidRegistrar()],
resolvers: [new CheqdDidResolver()],
}),
// AnonCreds
anoncreds: new AnonCredsModule({
registries: [new CheqdAnonCredsRegistry()],
anoncreds,
}),
// Add cheqd module
cheqd: new CheqdModule(
new CheqdModuleConfig({
networks: [
{
network: '<mainnet or testnet>',
cosmosPayerSeed: '<cosmos payer seed or mnemonic>',
},
],
})
),
// Indy VDR can optionally be used with Askar as wallet and storage implementation
askar: new AskarModule({
askar,
}),
connections: new ConnectionsModule({
autoAcceptConnections: true,
}),
credentials: new CredentialsModule({
autoAcceptCredentials: AutoAcceptCredential.ContentApproved,
credentialProtocols: [
new V2CredentialProtocol({
credentialFormats: [new LegacyIndyCredentialFormatService(), new AnonCredsCredentialFormatService()],
}),
],
}),
},
}){
"@context": [
"https://www.w3.org/2018/credentials/v1"
],
"issuer": {
"id": "did:cheqd:testnet:c6630f1e-9248-4af6-b7ac-5bcaf646f213"
},
"type": [
"VerifiableCredential",
"VerifiableAuthorizationForTrustChain"
],
"issuanceDate": "2025-04-01T07:19:55.000Z",
"credentialSubject": {
"id": "did:cheqd:testnet:0a35d559-00ff-41b6-81ad-f64faa522771",
"accreditedFor": [
{
"schemaId": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:c6630f1e-9248-4af6-b7ac-5bcaf646f213?resourceName=AIAgentAuthorization&resourceType=JSONSchemaValidator2020",
"types": [
"VerifiableCredential",
"AIAgentAuthorization"
]
},
{
"schemaId": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e?resourceName=VerifiableAccreditation&resourceType=JSONSchemaValidator2020",
"types": [
"VerifiableCredential",
"VerifiableAccreditation",
"VerifiableAccreditationToAccredit"
]
},
{
"schemaId": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e?resourceName=VerifiableAttestation&resourceType=JSONSchemaValidator2020",
"types": [
"VerifiableCredential",
"VerifiableAttestation",
"VerifiableAccreditationToAttest"
]
}
]
},
"termsOfUse": {
"type": "TrustFrameworkPolicy",
"trustFramework": "DAIAA Governance Framework",
"trustFrameworkId": "https://medium.com/quantum-economics/why-we-started-the-decentralized-ai-agent-alliance-6eb0938d7bc5"
},
"proof": {
"type": "JwtProof2020",
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9..."
}
}Root Authorization (rTAO defines framework)
↓
Verifiable Accreditation (TAO is authorized to operate)
↓
Verifiable Accreditation (Trusted Issuer is authorized)
↓
Verifiable Credential (End-user receives attestation)docker-compose up -ddriver-did-cheqd:
image: ghcr.io/cheqd/did-registrar:production-latest
platform: linux/amd64
ports:
- "9089:3000"
restart: on-failure
environment:
- FEE_PAYER_TESTNET_MNEMONIC=${FEE_PAYER_TESTNET_MNEMONIC}
- FEE_PAYER_MAINNET_MNEMONIC=${FEE_PAYER_MAINNET_MNEMONIC}export FEE_PAYER_TESTNET_MNEMONIC="your testnet mnemonic phrase ..."
export FEE_PAYER_MAINNET_MNEMONIC="your mainnet mnemonic phrase ..."docker-compose up -ddid_registrar:
image: universalregistrar/uni-registrar-web:latest
platform: linux/amd64
ports:
- "9080:9080"
depends_on:
- driver-did-cheqddocker-compose up -dcurl -X GET http://localhost:9080/1.0/propertiesdid_resolver:
image: ghcr.io/cheqd/did-resolver:latest
platform: linux/amd64
ports:
- target: 8080
published: 8080
mode: host
restart: on-failure
environment:
MAINNET_ENDPOINT: "grpc.cheqd.net:443,true,5s"
TESTNET_ENDPOINT: "grpc.cheqd.network:443,true,5s"
LOG_LEVEL: "warn"
RESOLVER_LISTENER: "0.0.0.0:8080"docker-compose up -dresolver_url: "http://localhost:8080/1.0/identifiers/"
registrar_url: "http://localhost:9080/1.0/"aca-py start --wallet-type askar-anoncreds --wallet-storage-type postgres_storagewallet-name: issuer
wallet-key: somesecret
wallet-storage-type: postgres_storage
wallet-storage-creds: '{"account":"postgres","password":"postgres","admin_account":"postgres","admin_password":"postgres"}'
wallet-storage-config: '{"url":"localhost:5432","max_connections":5}'aca-py start --arg-file ./configs/settings.ymlFROM ghcr.io/openwallet-foundation/acapy:py3.12-1.1.0
USER root
# install plugins as binaries
RUN pip install git+https://github.com/openwallet-foundation/acapy-plugins@main#subdirectory=cheqd
USER $user
COPY ./configs configs
ENTRYPOINT ["aca-py"]docker build -t issuer-agent .issuer:
image: issuer-agent:latest
ports:
- "3001:3001"
- "3002:3002"
command: >
start --arg-file ./configs/settings.yml
healthcheck:
test: curl -s -o /dev/null -w '%{http_code}' "http://localhost:3001/status/live" | grep "200" > /dev/null
start_period: 30s
interval: 7s
timeout: 5s
retries: 5
depends_on:
- did_registrar
- did_resolverSetup and Configure your MCP Server to begin using cheqd's identity functionality with your AI Agent.
Validate the trust chain of a credential using TRAIN, to recursively traverse back to a Root of Trust, and determine the accreditations and authorizations of an issuer Decentralized Identifier (DID).
{
"issuerDid": "did:cheqd:testnet:0a35d559-00ff-41b6-81ad-f64faa522771", // DID of Trusted Issuer
"subjectDid": "did:cheqd:testnet:a7e8bf7c-9d97-4b1e-a7bb-43a6754aafbf", // DID of AI Agent
"attributes": {
"aiAgentName": "ChatGPT-4 Turbo",
"aiAgentVersion": "4.0-turbo",
"model": "GPT-4 Turbo",
"modelVersion": "4.0",
"contextWindow": 128000,
"temperature": 0.7,
"topK": 40,
"topP": 0.9,
"maxTokens": 4096,
"fineTuned": false,
"fineTuningDetails": null,
"safetyRating": "ISO 42001 Certified",
"evaluationMetrics": [
"BLEU-4",
"ROUGE-L",
"F1 Score: 92.5%"
],
"certificationAuthority": "AI Ethics Board",
"validUntil": "2026-03-28T12:00:00Z"
},
"type": [
"VerifiableCredential",
"VerifiableAttestation",
"AIAgentAuthorization"
],
"format": "jwt",
"credentialSchema": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:c6630f1e-9248-4af6-b7ac-5bcaf646f213?resourceName=AIAgentAuthorization&resourceType=JSONSchemaValidator2020",
"termsOfUse": {
"type": "AttestationPolicy",
"parentAccreditation": "did:cheqd:testnet:0a35d559-00ff-41b6-81ad-f64faa522771?resourceName=AccreditationToAttest&resourceType=VerifiableAccreditationToAttest",
"rootAuthorization": "did:cheqd:testnet:c6630f1e-9248-4af6-b7ac-5bcaf646f213?resourceName=OrganisationAuthorizationForAIAgents&resourceType=VerifiableAuthorizationForTrustChain"
}
}{
"credentialSubject": {
"aiAgentName": "ChatGPT-4 Turbo",
"aiAgentVersion": "4.0-turbo",
"model": "GPT-4 Turbo",
"modelVersion": "4.0",
"contextWindow": 128000,
"temperature": 0.7,
"topK": 40,
"topP": 0.9,
"maxTokens": 4096,
"fineTuned": false,
"fineTuningDetails": null,
"safetyRating": "ISO 42001 Certified",
"evaluationMetrics": [
"BLEU-4",
"ROUGE-L",
"F1 Score: 92.5%"
],
"certificationAuthority": "AI Ethics Board",
"validUntil": "2026-03-28T12:00:00Z",
"id": "did:cheqd:testnet:a7e8bf7c-9d97-4b1e-a7bb-43a6754aafbf"
},
"issuer": {
"id": "did:cheqd:testnet:0a35d559-00ff-41b6-81ad-f64faa522771"
},
"type": [
"VerifiableCredential",
"VerifiableAttestation",
"AIAgentAuthorization"
],
"termsOfUse": {
"type": "AttestationPolicy",
"parentAccreditation": "did:cheqd:testnet:0a35d559-00ff-41b6-81ad-f64faa522771?resourceName=AccreditationToAttest&resourceType=VerifiableAccreditationToAttest",
"rootAuthorization": "did:cheqd:testnet:c6630f1e-9248-4af6-b7ac-5bcaf646f213?resourceName=OrganisationAuthorizationForAIAgents&resourceType=VerifiableAuthorizationForTrustChain"
},
"credentialSchema": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:c6630f1e-9248-4af6-b7ac-5bcaf646f213?resourceName=AIAgentAuthorization&resourceType=JSONSchemaValidator2020",
"@context": [
"https://www.w3.org/2018/credentials/v1"
],
"issuanceDate": "2025-04-04T02:43:52.000Z",
"proof": {
"type": "JwtProof2020",
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVmVyaWZpYWJsZUF0dGVzdGF0aW9uIiwiQUlBZ2VudEF1dGhvcmlzYXRpb24iXSwiY3JlZGVudGlhbFN1YmplY3QiOnsiYWlBZ2VudE5hbWUiOiJDaGF0R1BULTQgVHVyYm8iLCJhaUFnZW50VmVyc2lvbiI6IjQuMC10dXJibyIsIm1vZGVsIjoiR1BULTQgVHVyYm8iLCJtb2RlbFZlcnNpb24iOiI0LjAiLCJjb250ZXh0V2luZG93IjoxMjgwMDAsInRlbXBlcmF0dXJlIjowLjcsInRvcEsiOjQwLCJ0b3BQIjowLjksIm1heFRva2VucyI6NDA5NiwiZmluZVR1bmVkIjpmYWxzZSwiZmluZVR1bmluZ0RldGFpbHMiOm51bGwsInNhZmV0eVJhdGluZyI6IklTTyA0MjAwMSBDZXJ0aWZpZWQiLCJldmFsdWF0aW9uTWV0cmljcyI6WyJCTEVVLTQiLCJST1VHRS1MIiwiRjEgU2NvcmU6IDkyLjUlIl0sImNlcnRpZmljYXRpb25BdXRob3JpdHkiOiJBSSBFdGhpY3MgQm9hcmQiLCJ2YWxpZFVudGlsIjoiMjAyNi0wMy0yOFQxMjowMDowMFoifSwidGVybXNPZlVzZSI6eyJ0eXBlIjoiQXR0ZXN0YXRpb25Qb2xpY3kiLCJwYXJlbnRBY2NyZWRpdGF0aW9uIjoiZGlkOmNoZXFkOnRlc3RuZXQ6MGEzNWQ1NTktMDBmZi00MWI2LTgxYWQtZjY0ZmFhNTIyNzcxP3Jlc291cmNlTmFtZT1BY2NyZWRpdGF0aW9uVG9BdHRlc3QmcmVzb3VyY2VUeXBlPVZlcmlmaWFibGVBY2NyZWRpdGF0aW9uVG9BdHRlc3QiLCJyb290QXV0aG9yaXNhdGlvbiI6ImRpZDpjaGVxZDp0ZXN0bmV0OmM2NjMwZjFlLTkyNDgtNGFmNi1iN2FjLTViY2FmNjQ2ZjIxMz9yZXNvdXJjZU5hbWU9T3JnYW5pc2F0aW9uQXV0aG9yaXNhdGlvbkZvckFJQWdlbnRzJnJlc291cmNlVHlwZT1WZXJpZmlhYmxlQXV0aG9yaXNhdGlvbkZvclRydXN0Q2hhaW4ifSwiY3JlZGVudGlhbFNjaGVtYSI6Imh0dHBzOi8vcmVzb2x2ZXIuY2hlcWQubmV0LzEuMC9pZGVudGlmaWVycy9kaWQ6Y2hlcWQ6dGVzdG5ldDpjNjYzMGYxZS05MjQ4LTRhZjYtYjdhYy01YmNhZjY0NmYyMTM_cmVzb3VyY2VOYW1lPUFJQWdlbnRBdXRob3Jpc2F0aW9uJnJlc291cmNlVHlwZT1KU09OU2NoZW1hVmFsaWRhdG9yMjAyMCJ9LCJzdWIiOiJkaWQ6Y2hlcWQ6dGVzdG5ldDphN2U4YmY3Yy05ZDk3LTRiMWUtYTdiYi00M2E2NzU0YWFmYmYiLCJuYmYiOjE3NDM3MzQ2MzIsImlzcyI6ImRpZDpjaGVxZDp0ZXN0bmV0OjBhMzVkNTU5LTAwZmYtNDFiNi04MWFkLWY2NGZhYTUyMjc3MSJ9.z9xTp5dSMACTLhrAsO-RBjcmaJJvWHqD6_78FTjaOkBroAMS0f8NlvpIrC7CGojkzCv_T8M_VBexzXU9I8JKAg"
}
}did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0employmentCredentialRevocationList10{
"checked": true,
"revoked": false
}{
"checked": true,
"revoked": false
}CopyEdittrust.federation1.com. NS ns1.trust.federation1.com.cssCopyEditns1.trust.federation1.com. A 192.0.2.4bashCopyEdit./deploy.sh buildarduinoCopyEdit_did.trust.federation1.com. TXT "did:cheqd:mainnet:rtao123"DNSTrustFrameworkPointer


Issue a JSON-LD Verifiable Credential, signed by a did:cheqd Decentralized Identifier (DID), using Credo.
"mcpServers": {
"cheqd-mcp": {
"command": "npx",
"args": [
"mcp-remote",
"https://remote-mcp.cheqd.io/mcp"
],
}
}# Clone the repository
git clone https://github.com/cheqd/mcp-toolkit.git
cd mcp-toolkitTOOLS="credo" # Required tool configuration
PORT="5000" # The Port where the Remote MCP Server will run
CREDO_PORT="3000" # Port for the Credo agent
CREDO_NAME="faber" # Name of the Credo agent
CREDO_ENDPOINT="http://faber:3000" # Public endpoint connections
CREDO_CHEQD_TESTNET_MNEMONIC="your-testnet-mnemonic" # Required for cheqd network access
TRAIN_ENDPOINT="https://dev-train.trust-scheme.de/tcr/v1/" # The TRAIN endpoint for verification of trust registry {
"mcpServers": {
"cheqd": {
"command": "docker",
"args": [
"compose",
"-f",
"/path/to/repo/mcp-toolkit/docker/docker-compose.yml",
"run",
"--rm",
"-p",
"3000:3000",
"--name",
"faber",
"-T",
"mcp-server"
]
}
}
}npm install @credo-ts/core @credo-ts/node @credo-ts/askar @credo-ts/cheqd
npm install @hyperledger/aries-askar-nodejsimport type { InitConfig } from '@credo-ts/core'
import { AskarModule } from '@credo-ts/askar'
import {
Agent,
CredentialsModule,
V2CredentialProtocol,
JsonLdCredentialFormatService,
DidsModule,
HttpOutboundTransport,
WsOutboundTransport,
ProofsModule,
V2ProofProtocol,
DifPresentationExchangeProofFormatService,
CacheModule,
InMemoryLruCache,
W3cCredentialsModule,
KeyType,
DidDocumentBuilder,
utils,
getEd25519VerificationKey2018,
} from '@credo-ts/core'
import { agentDependencies, HttpInboundTransport } from '@credo-ts/node'
import { ariesAskar } from '@hyperledger/aries-askar-nodejs'
import { CheqdModule, CheqdModuleConfig, CheqdDidRegistrar, CheqdDidResolver } from '@credo-ts/cheqd'
let issuerDid: string
const issuerConfig: InitConfig = {
label: 'cheqd-jsonld-issuer',
walletConfig: {
id: 'cheqd-issuer-wallet',
key: 'testkey0000000000000000000000000',
},
}
const initializeIssuerAgent = async () => {
const issuer = new Agent({
config: issuerConfig,
dependencies: agentDependencies,
modules: {
askar: new AskarModule({ ariesAskar }),
dids: new DidsModule({
registrars: [new CheqdDidRegistrar()],
resolvers: [new CheqdDidResolver()],
}),
cheqd: new CheqdModule(
new CheqdModuleConfig({
networks: [
{
network: 'testnet', // or 'mainnet'
cosmosPayerSeed: 'your-cosmos-payer-seed-here',
},
],
})
),
credentials: new CredentialsModule({
credentialProtocols: [
new V2CredentialProtocol({
credentialFormats: [new JsonLdCredentialFormatService()],
}),
],
}),
proofs: new ProofsModule({
proofProtocols: [
new V2ProofProtocol({
proofFormats: [new DifPresentationExchangeProofFormatService()],
}),
],
}),
cache: new CacheModule({
cache: new InMemoryLruCache({ limit: 100 }),
}),
w3cCredentials: new W3cCredentialsModule({}),
},
})
// Register transports
issuer.registerOutboundTransport(new WsOutboundTransport())
issuer.registerOutboundTransport(new HttpOutboundTransport())
issuer.registerInboundTransport(new HttpInboundTransport({ port: 3001 }))
await issuer.initialize()
return issuer
}const holderConfig: InitConfig = {
label: 'cheqd-jsonld-holder',
walletConfig: {
id: 'cheqd-holder-wallet',
key: 'testkey0000000000000000000000000',
},
}
const initializeHolderAgent = async () => {
const holder = new Agent({
config: holderConfig,
dependencies: agentDependencies,
modules: {
askar: new AskarModule({ ariesAskar }),
dids: new DidsModule({
resolvers: [new CheqdDidResolver()],
}),
credentials: new CredentialsModule({
credentialProtocols: [
new V2CredentialProtocol({
credentialFormats: [new JsonLdCredentialFormatService()],
}),
],
}),
proofs: new ProofsModule({
proofProtocols: [
new V2ProofProtocol({
proofFormats: [new DifPresentationExchangeProofFormatService()],
}),
],
}),
cache: new CacheModule({
cache: new InMemoryLruCache({ limit: 100 }),
}),
w3cCredentials: new W3cCredentialsModule({}),
},
})
// Register transports
holder.registerOutboundTransport(new WsOutboundTransport())
holder.registerOutboundTransport(new HttpOutboundTransport())
holder.registerInboundTransport(new HttpInboundTransport({ port: 3002 }))
await holder.initialize()
return holder
}// Create a cheqd DID with Ed25519 verification method
const did = `did:cheqd:testnet:${utils.uuid()}`
const ed25519Key = await issuer.wallet.createKey({ keyType: KeyType.Ed25519 })
const createResult = await issuer.dids.create({
method: 'cheqd',
didDocument: new DidDocumentBuilder(did)
.addController(did)
.addVerificationMethod(
getEd25519VerificationKey2018({
key: ed25519Key,
controller: did,
id: `${did}#${ed25519Key.fingerprint}`,
})
)
.addAssertionMethod(`${did}#${ed25519Key.fingerprint}`)
.addAuthentication(`${did}#${ed25519Key.fingerprint}`)
.build(),
})
if (!createResult.didState.did) {
throw new Error('cheqd DID creation failed')
}
issuerDid = createResult.didState.did
console.log('Issuer DID created:', issuerDid)const createNewInvitation = async (agent: Agent) => {
const outOfBandRecord = await agent.modules.oob.createInvitation()
return {
invitationUrl: outOfBandRecord.outOfBandInvitation.toUrl({ domain: 'http://localhost:3001' }),
outOfBandRecord,
}
}const receiveInvitation = async (agent: Agent, invitationUrl: string) => {
const { outOfBandRecord } = await agent.modules.oob.receiveInvitationFromUrl(invitationUrl)
if (!outOfBandRecord) {
throw new Error(redText(Output.NoConnectionRecordFromOutOfBand))
}
return outOfBandRecord
}import { CredentialEventTypes, CredentialState } from '@credo-ts/core'
const setupCredentialListener = (agent: Agent) => {
agent.events.on(CredentialEventTypes.CredentialStateChanged, async ({ payload }) => {
const { credentialRecord } = payload
switch (credentialRecord.state) {
case CredentialState.ProposalReceived:
console.log('Issuer: Credential proposal received')
await agent.credentials.acceptProposal({
credentialRecordId: credentialRecord.id,
comment: 'JSON-LD Credential Offer',
})
break
case CredentialState.OfferReceived:
console.log('Holder: Credential offer received, accepting...')
await agent.credentials.acceptOffer({
credentialRecordId: credentialRecord.id,
credentialFormats: { jsonld: {} },
})
break
case CredentialState.RequestReceived:
console.log('Issuer: Credential request received, issuing credential...')
await agent.credentials.acceptRequest({
credentialRecordId: credentialRecord.id,
comment: 'JSON-LD Credential',
})
break
case CredentialState.CredentialReceived:
console.log('Holder: Credential received, accepting...')
await agent.credentials.acceptCredential({
credentialRecordId: credentialRecord.id,
})
break
case CredentialState.Done:
console.log('Done: Credential exchange completed!')
break
}
})
}// Define the credential to be proposed
const credentialOptions = {
credential: {
'@context': [
'https://www.w3.org/2018/credentials/v1',
'https://w3id.org/citizenship/v1',
'https://w3id.org/security/bbs/v1',
],
id: 'https://cheqd.io/credentials/permanent-resident-card',
type: ['VerifiableCredential', 'PermanentResidentCard'],
issuer: issuerDid,
issuanceDate: new Date().toISOString(),
expirationDate: new Date(Date.now() + 10 * 365 * 24 * 60 * 60 * 1000).toISOString(), // 10 years
credentialSubject: {
id: 'did:example:holder123',
type: ['PermanentResident', 'Person'],
givenName: 'John',
familyName: 'Doe',
gender: 'Male',
birthDate: '1990-01-01',
birthCountry: 'United States',
residentSince: '2020-01-01',
lprNumber: '123-456-789',
lprCategory: 'IR1',
},
},
options: {
proofType: 'Ed25519Signature2018',
proofPurpose: 'assertionMethod',
},
}
// Get Connection
const holderConnection = await receiveInvitation(holderAgent, invitationUrl)
// Holder proposes credential
console.log('Starting credential proposal...')
const credentialExchange = await holderAgent.credentials.proposeCredential({
connectionId: holderConnection.id,
protocolVersion: 'v2',
credentialFormats: { jsonld: credentialOptions },
comment: 'Requesting Permanent Resident Card',
})
console.log('Credential exchange initiated:', credentialExchange.id)
// The rest of the flow is handled automatically by event listeners
// Wait for completion...Create a Decentralized Identifier (DID) with the did:cheqd DID method using cheqd Studio.
did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK{
"name": "Bob",
"gender": "male"
}https://common.schemas.verida.io/health/pathology/tests/covid19/pcr/v0.1.0/schema.jsonhttps://www.w3.org/2018/credentials/v1VerifiableCredential2023-06-08T13:49:28.000Z{
"statusPurpose": "revocation",
"statusListName": "employee-credentials"
}{
"statusPurpose": "revocation",
"statusListName": "employee-credentials"
}
{
"statusPurpose": "revocation",
"statusListName": "employee-credentials",
"statusListIndex": 1543
}
{
"statusPurpose": "revocation",
"statusListName": "employee-credentials"
"statusListRangeStart": 1000,
"statusListRangeEnd": 2000
}{
"statusPurpose": "revocation",
"statusListName": "employee-credentials"
"statusListRangeStart": 1000,
"statusListRangeEnd": 2000,
"indexNotIn": 1001. 1264. 1268, 1854
}
{
"issuerDid": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0",
"subjectDid": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
"attributes": {
"gender": "male",
"name": "Bob"
},
"@context": [
"https://schema.org"
],
"type": [
"Person"
],
"credentialSchema": "https://common.schemas.verida.io/identity/kyc/FinClusive/individual-basic/v0.1.0/schema.json",
"format": "jwt",
"credentialStatus": {
"statusPurpose": "revocation",
"statusListName": "employee-credentials",
"statusListIndex": 10
}
}did:cheqd:testnet:0ff9df5d-653b-4f77-a66c-0035abc34d63employmentCredentialRevocationListcheqd1qs0nhyk868c246defezhz5eymlt0dmajna2csg100101400001.0https://www.foo.com{
"did": "did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e",
"statusListName": "cheqd-employee-credentials-encrypted",
"paymentConditions": [
{
"feePaymentAddress": "cheqd1qs0nhyk868c246defezhz5eymlt0dmajna2csg",
"feePaymentAmount": 20,
"feePaymentWindow": 10
}
]
}{
"created": true,
"resource": {
"StatusList2021": {
"encodedList": "496fdfbeb745b4db03fcdb40566f9c4c4a1c0f184b31255e641b6e7bdfb9b6946c12be87ca3763be0393c00b67ac1e8737c106b32f46ef59c765754415b5e8cc7c65fccaa3374620430ea476301a5e0dd63340e7a27a68bc627518471f22e4a2",
"type": "StatusList2021Revocation",
"validFrom": "2023-06-26T11:45:19.349Z"
},
"metadata": {
"type": "StatusList2021Revocation",
"encoding": "base64url",
"encrypted": true,
"encryptedSymmetricKey": "b11182dc524b8181f9a6aef4c4ad0a1c14e40033b9112dffd8d1bcf6cc3b85abc07ded2205ee94068a99f4202502cb0855f322583fa6ce1534d3a05bf36891766ea2c5f90a982b3040680762977d404d758a2370224a239c8279aa7d21e980931c42055b17ca4c7dbffa4782480a8b6279cf989b2f166d5fdb4b2c1b5a63927200000000000000203018dcaba26df45a415bb599218b27ca853a70289d7a3ed3ed0e3730452e8f8d9af91b6e71312565d2c069341f6660ab",
"paymentConditions": [
{
"feePaymentAddress": "cheqd1qs0nhyk868c246defezhz5eymlt0dmajna2csg",
"feePaymentAmount": "20000000000ncheq",
"intervalInSeconds": 600,
"type": "timelockPayment"
}
]
},
"resourceMetadata": {
"resourceURI": "did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e/resources/5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceCollectionId": "7c2b990c-3d05-4ebf-91af-f4f4d0091d2e",
"resourceId": "5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceName": "cheqd-revocation-encrypted-1",
"resourceType": "StatusList2021Revocation",
"mediaType": "application/json",
"resourceVersion": "2023-06-26T11:45:19.349Z",
"created": "2023-06-26T11:45:20Z",
"checksum": "909e22e371a41afbb96c330a97752cf7c8856088f1f937f87decbef06cbe9ca2",
"previousVersionId": null,
"nextVersionId": null
},
"symmetricKey": "dfe204ee95ae74ea5d74b94c3d8ff782273905b07fbc9f8c3d961c3b43849f18"
}
}optionsIssue Verifiable Accreditations as DID-Linked Resources using cheqd Studio.
{
"idFragment": "service-1",
"type": "LinkedDomains",
"serviceEndpoint": [
"https://example.com"
]
}{
"did": "did:cheqd:testnet:ca029356-69dc-4cb4-a4c6-13b959ffaad6",
"keys": [
{
"kid": "1a07cb379cd6f2d9acddf9a6d6af4e930d5696818a38020bde2b6ead5cd85039",
"kms": "postgres",
"type": "Ed25519",
"publicKeyHex": "1a07cb379cd6f2d9acddf9a6d6af4e930d5696818a38020bde2b6ead5cd85039",
"meta": {
"algorithms": [
"EdDSA",
"Ed25519"
]
},
"controller": "did:cheqd:testnet:ca029356-69dc-4cb4-a4c6-13b959ffaad6"
}
],
"services": [],
"provider": "did:cheqd:testnet",
"controllerKeyRefs": [
"1a07cb379cd6f2d9acddf9a6d6af4e930d5696818a38020bde2b6ead5cd85039"
],
"controllerKeys": [
{
"kid": "1a07cb379cd6f2d9acddf9a6d6af4e930d5696818a38020bde2b6ead5cd85039",
"kms": "postgres",
"type": "Ed25519",
"publicKeyHex": "1a07cb379cd6f2d9acddf9a6d6af4e930d5696818a38020bde2b6ead5cd85039",
"meta": {
"algorithms": [
"EdDSA",
"Ed25519"
]
},
"controller": "did:cheqd:testnet:ca029356-69dc-4cb4-a4c6-13b959ffaad6"
}
],
"controllerKeyId": "1a07cb379cd6f2d9acddf9a6d6af4e930d5696818a38020bde2b6ead5cd85039"
}{
"network": "testnet",
"identifierFormatType": "uuid",
"options": {
"verificationMethodType": "Ed25519VerificationKey2018"
}
}{
"network": "testnet",
"identifierFormatType": "uuid",
"options": {
"key": "8255ddadd75695e01f3d98fcec8ccc7861a030b317d4326b0e48a4d579ddc43a", // Pass kid if you have created a key separately
"verificationMethodType": "Ed25519VerificationKey2018"
}
}{
"didDocument": {
"id": "did:cheqd:testnet:0ff9df5d-653b-4f77-a66c-0035abc34d63",
"controller": [
"did:cheqd:testnet:0ff9df5d-653b-4f77-a66c-0035abc34d63"
],
"verificationMethod": [
{
"id": "did:cheqd:testnet:0ff9df5d-653b-4f77-a66c-0035abc34d63#key-1",
"type": "JsonWebKey2020",
"controller": "did:cheqd:testnet:0ff9df5d-653b-4f77-a66c-0035abc34d63",
"publicKeyJwk": {
"crv": "Ed25519",
"kty": "OKP",
"x": "BFSLOxwMJgpmWRtTUuo0JAvz6VXGp4WDDcN0dFfCQKo"
}
}
],
"authentication": [
"did:cheqd:testnet:0ff9df5d-653b-4f77-a66c-0035abc34d63#key-1"
]
}
}
"options": {
"key": "8255ddadd75695e01f3d98fcec8ccc7861a030b317d4326b0e48a4d579ddc43a",
"verificationMethodType": "Ed25519VerificationKey2018"
},
"didDocument": {
"@context": [
"https://www.w3.org/ns/did/v1"
],
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0",
"controller": [
"did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0"
],
"authentication": [
"did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1"
],
"service": [
{
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1",
"type": "LinkedDomains",
"serviceEndpoint": [
"https://example.com"
]
}
]
}
}npm install @credo-ts/core @credo-ts/node @credo-ts/cheqd
npm install @credo-ts/openid4vcimport { Agent, DidsModule, KeyType } from '@credo-ts/core';
import { agentDependencies } from '@credo-ts/node';
import { CheqdModule } from '@credo-ts/cheqd';
import express, { Router } from 'express'
import { OpenId4VcIssuerModule, OpenId4VcVerifierModule } from '@credo-ts/openid4vc';
// Create two express routers, all endpoints for the
// issuer and verifier will be added to these routers
const verifierRouter = Router()
const issuerRouter = Router()
// Register the routers on the express server. The path should match
// with the baseUrl you configure in the modules below.
const app = express()
app.use('/oid4vci', issuerRouter)
app.use('/siop', verifierRouter)
const issuer = new Agent({
config,
dependencies: agentDependencies,
modules: {
dids: new DidsModule({
registrars: [new CheqdDidRegistrar()],
resolvers: [new CheqdDidResolver()],
}),
cheqd: new CheqdModule(
new CheqdModuleConfig({
networks: [
{
network: '<mainnet or testnet>',
cosmosPayerSeed: '<cosmos payer seed or mnemonic>',
},
],
})
),
openId4VcIssuer: new OpenId4VcIssuerModule({
baseUrl: 'https://your-issuer-host/oid4vci',
router: issuerRouter,
endpoints: {
// The credentialRequestToCredentialMapper is the only required endpoint
// configuration that must be provided. This method is called whenever a
// credential request has been received for an offer we created. The callback should
// return the issued credential to return in the credential response to the holder.
credential: {
// you'll map credential once requests come in
credentialRequestToCredentialMapper: async ({ credentialRequest }) => {
// See step 5.
},
},
},
}),
// openId4VcVerifier module can only be used in Node.js
openId4VcVerifier: new OpenId4VcVerifierModule({
baseUrl: 'https://your-issuer-host/siop',
router: verifierRouter,
}),
},
});
// listen on port 3000 for the openid4vc app.
app.listen(3000)// Create a did:cheqd that we will use for issuance
const issuerDidResult = await issuer.dids.create({
method: 'cheqd',
options: {
network: 'testnet',
methodSpecificIdAlgo: 'uuid',
},
})
if (issuerDidResult.didState.state !== 'finished') {
throw new Error('DID creation failed.')
}
const issuerDid = issuerDidResult.did;import { JwaSignatureAlgorithm } from '@credo-ts/core'
// Create an issuer with one supported credential: AcmeCorpEmployee
const openid4vcIssuer = await issuer.modules.openId4VcIssuer.createIssuer({
display: [
{
name: 'ACME Corp.',
description: 'ACME Corp. is a company that provides the best services.',
text_color: '#000000',
background_color: '#FFFFFF',
logo: {
url: 'https://acme.com/logo.png',
alt_text: 'ACME Corp. logo',
},
},
],
credentialsSupported: [
{
format: 'vc+sd-jwt',
vct: 'AcmeCorpEmployee',
id: 'AcmeCorpEmployee',
cryptographic_binding_methods_supported: ['did:cheqd'],
cryptographic_suites_supported: [JwaSignatureAlgorithm.ES256],
},
],
})const credentialRequestToCredentialMapper: OpenId4VciCredentialRequestToCredentialMapper = async ({
// agent context for the current wallet / tenant
agentContext,
// the credential offer related to the credential request
credentialOffer,
// the received credential request
credentialRequest,
// the list of credentialsSupported entries
credentialsSupported,
// the cryptographic binding provided by the holder in the credential request proof
holderBinding,
// the issuance session associated with the credential request and offer
issuanceSession,
}) => {
const firstSupported = credentialsSupported[0]
const { sub } = credentialRequest.claims;
const payload = {
vct: firstSupported.vct, // Verifiable Credential Type identifier
// Credential subject fields (flattened)
credentialSubjectId: sub, // Represents subject's DID (e.g., Holder DID)
firstName: 'John',
lastName: 'Doe',
employeeId: 'EMP-1234',
role: 'engineer',
// Optional: evidence and schema
evidence: [{
type: 'EmployeeRecord',
verifier: issuerDid,
evidenceDocument: 'HR Database Entry 2024-Q1',
subjectPresence: 'Physical',
documentPresence: 'Digital',
}],
credentialSchema: {
id: 'https://example.org/schemas/employee-passport.json',
type: 'JsonSchemaValidator2018',
},
// Credential Status
credentialStatus: {
id: 'https://status.cheqd.net/vc/123456',
type: 'StatusList2021Entry',
statusPurpose: 'revocation',
statusListIndex: '123456',
statusListCredential: 'https://status.cheqd.net/list/employee-vc.json',
},
// Timestamps in numeric format
notBefore: Math.floor(Date.now() / 1000),
expiry: Math.floor((Date.now() + 31536000000) / 1000),
// Terms of Use
termsOfUse: [
{
type: 'OdrlPolicy2017',
profile: 'https://cheqd.net/policies/employee-vc-policy.json',
prohibition: [
{
assigner: issuerDid,
target: 'credential',
action: 'share',
},
],
},
],
};
return {
credentialSupportedId: firstSupported.id,
format: 'vc+sd-jwt',
// We can provide the holderBinding as is, if we don't want to make changes
holder: holderBinding,
payload: payload,
disclosureFrame: {
_sd: ['lastName', 'credentialStatus', 'termsOfUse'],
},
issuer: {
method: 'cheqd',
issuerDid,
},
};
}tsCopyEditdisclosureFrame: {
_sd: ['lastName', 'role', 'evidence', 'termsOfUse'],
}const { credentialOffer, issuanceSession } =
await issuer.modules.openId4VcIssuer.createCredentialOffer({
issuerId: openid4vcIssuer.issuerId,
// values must match the `id` of the credential supported by the issuer
offeredCredentials: ['AcmeCorpEmployee'],
// Only pre-authorized code flow is supported
preAuthorizedCodeFlowConfig: {
userPinRequired: false,
},
// You can store any metadata about the issuance here
issuanceMetadata: {
someKey: 'someValue',
},
})
// Listen and react to changes in the issuance session
issuer.events.on<OpenId4VcIssuanceSessionStateChangedEvent>(
OpenId4VcIssuerEvents.IssuanceSessionStateChanged,
(event) => {
if (event.payload.issuanceSession.id === issuanceSession.id) {
console.log('Issuance session state changed to ',
event.payload.issuanceSession.state)
}
}
){
"issuerDid": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e",
"subjectDid": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad",
"schemas": [
{
"types": [
"VerifiableCredential",
"MuseumPassCredential"
],
"url": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018"
}
],
"format": "jwt",
"accreditationName": "authorizeAccreditationTest",
"trustFramework": "https://learn.cheqd.io/governance/start",
"trustFrameworkId": "cheqd Governance Framework"
}{
"@context": [
"https://www.w3.org/2018/credentials/v1"
],
"type": [
"VerifiableCredential",
"VerifiableAuthorizationForTrustChain"
],
"issuer": {
"id": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e"
},
"credentialSubject": {
"accreditedFor": [
{
"schemaId": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018",
"types": [
"VerifiableCredential",
"MuseumPassCredential"
]
}
],
"id": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad"
},
"issuanceDate": "2024-10-15T04:06:47.000Z",
"termsOfUse": {
"type": "TrustFrameworkPolicy",
"trustFramework": "https://learn.cheqd.io/governance/start",
"trustFrameworkId": "cheqd Governance Framework"
},
"proof": {
"type": "JwtProof2020",
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImFjY3JlZGl0ZWRGb3IiOlt7InNjaGVtYUlkIjoiaHR0cHM6Ly9yZXNvbHZlci5jaGVxZC5uZXQvMS4wL2lkZW50aWZpZXJzL2RpZDpjaGVxZDp0ZXN0bmV0OjBhNWI5NGQwLWE0MTctNDhlZC1hNmY1LTRhYmM5ZTk1ODg4ZD9yZXNvdXJjZU5hbWU9TXVzZXVtUGFzc0NyZWRlbnRpYWxTY2hlbWEmcmVzb3VyY2VUeXBlPUpzb25TY2hlbWFWYWxpZGF0b3IyMDE4IiwidHlwZSI6Ik11c2V1bVBhc3NDcmVkZW50aWFsIn1dfSwidGVybXNPZlVzZSI6eyJ0eXBlIjoiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIiwidHJ1c3RGcmFtZXdvcmsiOiJodHRwczovL2xlYXJuLmNoZXFkLmlvL2dvdmVybmFuY2Uvc3RhcnQiLCJ0cnVzdEZyYW1ld29ya0lkIjoiY2hlcWQgR292ZXJuYW5jZSBGcmFtZXdvcmsifX0sInN1YiI6ImRpZDpjaGVxZDp0ZXN0bmV0OjZhZjQxMmQ3LTJmMDQtNGUxMi1hNDI0LWU2NzE5ZGI0ODdhZCIsIm5iZiI6MTcyODk2NTIwNywiaXNzIjoiZGlkOmNoZXFkOnRlc3RuZXQ6YjAwM2RmNmYtZWM4ZS00OGRkLTlhMmItNzAxMWM1Y2YwYTVlIn0.6dKE9-y2Id852onu1_WnD6aJnDtxgFZcjCbCfQ8MT1ACsHY8ox5jiKP4QUJNmhwesLidC99Qa0uyCrUhvHc2Bg"
}
}{
"issuerDid": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e",
"subjectDid": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad",
"schemas": [
{
"types": [
"VerifiableCredential",
"MuseumPassCredential"
],
"url": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018"
}
],
"format": "jwt",
"accreditationName": "accreditationToAttestTest",
"parentAccreditation": "did:cheqd:testnet:15b74787-6e48-4fd5-8020-eab24e990578?resourceName=accreditAccreditation&resourceType=VerifiableAccreditationToAccredit",
"rootAuthorization": "did:cheqd:testnet:5RpEg66jhhbmASWPXJRWrA?resourceName=authorizeAccreditation&resourceType=VerifiableAuthorisationForTrustChain",
}{
"@context": [
"https://www.w3.org/2018/credentials/v1"
],
"type": [
"VerifiableCredential",
"VerifiableAccreditationToAccredit"
],
"issuer": {
"id": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e"
},
"credentialSubject": {
"accreditedFor": [
{
"schemaId": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018",
"types": [
"VerifiableCredential",
"MuseumPassCredential"
]
}
],
"id": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad"
},
"issuanceDate": "2024-10-15T04:06:47.000Z",
"termsOfUse": {
"type": "VerifiableAuthorisationForTrustChain",
"parentAccreditation": "did:cheqd:testnet:15b74787-6e48-4fd5-8020-eab24e990578?resourceName=accreditAccreditation&resourceType=VerifiableAccreditationToAccredit",
"rootAuthorization": "did:cheqd:testnet:5RpEg66jhhbmASWPXJRWrA?resourceName=authorizeAccreditation&resourceType=VerifiableAuthorisationForTrustChain",
},
"proof": {
"type": "JwtProof2020",
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImFjY3JlZGl0ZWRGb3IiOlt7InNjaGVtYUlkIjoiaHR0cHM6Ly9yZXNvbHZlci5jaGVxZC5uZXQvMS4wL2lkZW50aWZpZXJzL2RpZDpjaGVxZDp0ZXN0bmV0OjBhNWI5NGQwLWE0MTctNDhlZC1hNmY1LTRhYmM5ZTk1ODg4ZD9yZXNvdXJjZU5hbWU9TXVzZXVtUGFzc0NyZWRlbnRpYWxTY2hlbWEmcmVzb3VyY2VUeXBlPUpzb25TY2hlbWFWYWxpZGF0b3IyMDE4IiwidHlwZSI6Ik11c2V1bVBhc3NDcmVkZW50aWFsIn1dfSwidGVybXNPZlVzZSI6eyJ0eXBlIjoiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIiwidHJ1c3RGcmFtZXdvcmsiOiJodHRwczovL2xlYXJuLmNoZXFkLmlvL2dvdmVybmFuY2Uvc3RhcnQiLCJ0cnVzdEZyYW1ld29ya0lkIjoiY2hlcWQgR292ZXJuYW5jZSBGcmFtZXdvcmsifX0sInN1YiI6ImRpZDpjaGVxZDp0ZXN0bmV0OjZhZjQxMmQ3LTJmMDQtNGUxMi1hNDI0LWU2NzE5ZGI0ODdhZCIsIm5iZiI6MTcyODk2NTIwNywiaXNzIjoiZGlkOmNoZXFkOnRlc3RuZXQ6YjAwM2RmNmYtZWM4ZS00OGRkLTlhMmItNzAxMWM1Y2YwYTVlIn0.6dKE9-y2Id852onu1_WnD6aJnDtxgFZcjCbCfQ8MT1ACsHY8ox5jiKP4QUJNmhwesLidC99Qa0uyCrUhvHc2Bg"
}
}{
"issuerDid": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e",
"subjectDid": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad",
"schemas": [
{
"types": [
"VerifiableCredential",
"MuseumPassCredential"
],
"url": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018"
}
],
"format": "jwt",
"accreditationName": "accreditationToAttestTest",
"parentAccreditation": "did:cheqd:testnet:15b74787-6e48-4fd5-8020-eab24e990578?resourceName=accreditAccreditation&resourceType=VerifiableAccreditationToAccredit",
"rootAuthorization": "did:cheqd:testnet:5RpEg66jhhbmASWPXJRWrA?resourceName=authorizeAccreditation&resourceType=VerifiableAuthorizationForTrustChain",
}{
"@context": [
"https://www.w3.org/2018/credentials/v1"
],
"type": [
"VerifiableCredential",
"VerifiableAccreditationToAccredit"
],
"issuer": {
"id": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e"
},
"credentialSubject": {
"accreditedFor": [
{
"schemaId": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018",
"types": [
"VerifiableCredential",
"MuseumPassCredential"
]
}
],
"id": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad"
},
"issuanceDate": "2024-10-15T04:06:47.000Z",
"termsOfUse": {
"type": "VerifiableAuthorisationForTrustChain",
"parentAccreditation": "did:cheqd:testnet:15b74787-6e48-4fd5-8020-eab24e990578?resourceName=accreditAccreditation&resourceType=VerifiableAccreditationToAccredit",
"rootAuthorization": "did:cheqd:testnet:5RpEg66jhhbmASWPXJRWrA?resourceName=authorizeAccreditation&resourceType=VerifiableAuthorisationForTrustChain",
},
"proof": {
"type": "JwtProof2020",
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImFjY3JlZGl0ZWRGb3IiOlt7InNjaGVtYUlkIjoiaHR0cHM6Ly9yZXNvbHZlci5jaGVxZC5uZXQvMS4wL2lkZW50aWZpZXJzL2RpZDpjaGVxZDp0ZXN0bmV0OjBhNWI5NGQwLWE0MTctNDhlZC1hNmY1LTRhYmM5ZTk1ODg4ZD9yZXNvdXJjZU5hbWU9TXVzZXVtUGFzc0NyZWRlbnRpYWxTY2hlbWEmcmVzb3VyY2VUeXBlPUpzb25TY2hlbWFWYWxpZGF0b3IyMDE4IiwidHlwZSI6Ik11c2V1bVBhc3NDcmVkZW50aWFsIn1dfSwidGVybXNPZlVzZSI6eyJ0eXBlIjoiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIiwidHJ1c3RGcmFtZXdvcmsiOiJodHRwczovL2xlYXJuLmNoZXFkLmlvL2dvdmVybmFuY2Uvc3RhcnQiLCJ0cnVzdEZyYW1ld29ya0lkIjoiY2hlcWQgR292ZXJuYW5jZSBGcmFtZXdvcmsifX0sInN1YiI6ImRpZDpjaGVxZDp0ZXN0bmV0OjZhZjQxMmQ3LTJmMDQtNGUxMi1hNDI0LWU2NzE5ZGI0ODdhZCIsIm5iZiI6MTcyODk2NTIwNywiaXNzIjoiZGlkOmNoZXFkOnRlc3RuZXQ6YjAwM2RmNmYtZWM4ZS00OGRkLTlhMmItNzAxMWM1Y2YwYTVlIn0.6dKE9-y2Id852onu1_WnD6aJnDtxgFZcjCbCfQ8MT1ACsHY8ox5jiKP4QUJNmhwesLidC99Qa0uyCrUhvHc2Bg"
}
}"linkedResourceMetadata": [
{
"resourceURI": "did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d/resources/4e1104f9-2ee9-4bde-adc2-ab8ba72b124a",
"resourceCollectionId": "0a5b94d0-a417-48ed-a6f5-4abc9e95888d",
"resourceId": "4e1104f9-2ee9-4bde-adc2-ab8ba72b124a",
"resourceName": "OxfordUniversityAccreditation",
"resourceType": "VerifiableAccreditationToAccredit",
"mediaType": "application/json",
"resourceVersion": "",
"created": "2023-03-24T12:13:45Z",
"checksum": "6819aaecd4073173b159fedf8077c38e14939d03d58e7f4e2a0ddfe034eb2ed4",
"previousVersionId": null,
"nextVersionId": null
} 



Understand the context and design decisions around why cheqd developed DID-Linked Resources (DLRs).






{
"@type": "http://schema.org/Person",
"http://schema.org/address": {
"@type": "http://schema.org/PostalAddress",
"http://schema.org/streetAddress": "123 Main St.",
"http://schema.org/addressLocality": "Blacksburg",
"http://schema.org/addressRegion": "VA",
"http://schema.org/postalCode": "24060",
"http://schema.org/addressCountry": "US"
}
}{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://veramo.io/contexts/profile/v1",
"https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:z6jKUJA5YcZsNxZgsrQPKPipL2FRTf4s/resources/a20aa56a-a76f-4828-8a98-4c85d9494545"
],
"type": [
"VerifiableCredential",
"EventReservation"
],
"issuanceDate": "2022-11-17T03:19:03.328Z",
"credentialSubject": {
"id": "did:key:z6MkwTr46BWU42YejmZrDDCbL127dBoxSXeLuaHS75vTCg7i"
},
"reservationId": "4810116769",
"reservationStatus": "https://schema.org/ReservationConfirmed",
"reservationFor": {
"@type": "Event",
"name": "Internet Identity Workshop IIWXXXV",
"startDate": "2022-11-16T16:00:00",
"endDate": "2022-11-18T00:00:00",
"location": "Computer History Museum, 1401 N Shoreline Blvd, Mountain View, CA 94043",
"logo": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:z6jKUJA5YcZsNxZgsrQPKPipL2FRTf4s/resources/8140ec3a-d8bb-4f59-9784-a1cbf91a4a35"
},
"issuer": {
"id": "did:cheqd:mainnet:zAXwwqZzhCZA1L77ZBa8fhVNjL9MQCHX"
},
"proof": {
"type": "JwtProof2020",
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vdmVyYW1vLmlvL2NvbnRleHRzL3Byb2ZpbGUvdjEiLCJodHRwczovL3Jlc29sdmVyLmNoZXFkLm5ldC9kaWQ6Y2hlcWQ6dGVzdG5ldDp6NmpLVUpBNVljWnNOeFpnc3JRUEtQaXBMMkZSVGY0cy9yZXNvdXJjZXMvYTIwYWE1NmEtYTc2Zi00ODI4LThhOTgtNGM4NWQ5NDk0NTQ1Il0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJFdmVudFJlc2VydmF0aW9uIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOmtleTp6Nk1rd1RyNDZCV1U0Mlllam1ackREQ2JMMTI3ZEJveFNYZUx1YUhTNzV2VENnN2kifX0sIkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIiwiaHR0cHM6Ly92ZXJhbW8uaW8vY29udGV4dHMvcHJvZmlsZS92MSIsImh0dHBzOi8vcmVzb2x2ZXIuY2hlcWQubmV0L2RpZDpjaGVxZDp0ZXN0bmV0Ono2aktVSkE1WWNac054WmdzclFQS1BpcEwyRlJUZjRzL3Jlc291cmNlcy9hMjBhYTU2YS1hNzZmLTQ4MjgtOGE5OC00Yzg1ZDk0OTQ1NDUiXSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIkV2ZW50UmVzZXJ2YXRpb24iXSwiaXNzdWFuY2VEYXRlIjoiMjAyMi0xMS0xN1QwMzoxOTowMy4zMjhaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6a2V5Ono2TWt3VHI0NkJXVTQyWWVqbVpyRERDYkwxMjdkQm94U1hlTHVhSFM3NXZUQ2c3aSJ9LCJyZXNlcnZhdGlvbklkIjoiNDgxMDExNjc2OSIsInJlc2VydmF0aW9uU3RhdHVzIjoiaHR0cHM6Ly9zY2hlbWEub3JnL1Jlc2VydmF0aW9uQ29uZmlybWVkIiwicmVzZXJ2YXRpb25Gb3IiOnsiQHR5cGUiOiJFdmVudCIsIm5hbWUiOiJJbnRlcm5ldCBJZGVudGl0eSBXb3Jrc2hvcCBJSVdYWFhWIiwic3RhcnREYXRlIjoiMjAyMi0xMS0xNlQxNjowMDowMCIsImVuZERhdGUiOiIyMDIyLTExLTE4VDAwOjAwOjAwIiwibG9jYXRpb24iOiJDb21wdXRlciBIaXN0b3J5IE11c2V1bSwgMTQwMSBOIFNob3JlbGluZSBCbHZkLCBNb3VudGFpbiBWaWV3LCBDQSA5NDA0MyIsImxvZ28iOiJodHRwczovL3Jlc29sdmVyLmNoZXFkLm5ldC8xLjAvaWRlbnRpZmllcnMvZGlkOmNoZXFkOnRlc3RuZXQ6ejZqS1VKQTVZY1pzTnhaZ3NyUVBLUGlwTDJGUlRmNHMvcmVzb3VyY2VzLzgxNDBlYzNhLWQ4YmItNGY1OS05Nzg0LWExY2JmOTFhNGEzNSJ9LCJpc3N1ZXIiOnsiaWQiOiJkaWQ6Y2hlcWQ6bWFpbm5ldDp6QVh3d3FaemhDWkExTDc3WkJhOGZoVk5qTDlNUUNIWCJ9LCJzdWIiOiJkaWQ6a2V5Ono2TWt3VHI0NkJXVTQyWWVqbVpyRERDYkwxMjdkQm94U1hlTHVhSFM3NXZUQ2c3aSIsIm5iZiI6MTY2ODY1NTE0MywiaXNzIjoiZGlkOmNoZXFkOm1haW5uZXQ6ekFYd3dxWnpoQ1pBMUw3N1pCYThmaFZOakw5TVFDSFgifQ.U4vPbvdY7724a1jJwiDeCH_4_YC5sKUMcH6lY_XCVWBTE1RvYAnTj4fPHWMy6zSVFL9TAk4ZBOqFjKUtShBSCw"
}
}{
"kms": "local",
"payload": {
"collectionId": "1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d",
"id": "f3d39687-69f5-4046-a960-3aae86a0d3ca",
"name": "PassportSchema",
"version": "", // optional
"resourceType": "CL-Schema",
"alsoKnownAs": [], // optional alternative URIs
"data": "SGVsbG8sIHdvcmxk" // base 64 encoded file
},
"signInputs": [{
"verificationMethodId": "did:cheqd:testnet:z4ZUuPbs1xyK7y8d#key-1",
"keyType": "Ed25519",
"privateKeyHex": "0f5c124886178037952e87e0cdc55d185732577fca19ae877e64ac9ab24a0cc534e5326e70f1a42d785d93048aee806c359ec75a7b06f39253befd1746708438"
}]
}"linkedResourceMetadata": [
{
"resourceURI": "did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d/resources/f3d39687-69f5-4046-a960-3aae86a0d3ca",
"resourceCollectionId": "1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d",
"resourceId": "f3d39687-69f5-4046-a960-3aae86a0d3ca",
"resourceName": "PassportSchema", // First version of a Resource called PassportSchema
"resourceType": "CL-Schema",
"mediaType": "application/json",
"created": "2022-07-19T08:40:00Z",
"checksum": "7b2022636f6e74656e74223a202274657374206461746122207d0ae3b0c44298",
"previousVersionId": "", // empty string if no previous version, otherwise, resourceId of previous version
"nextVersionId": "", // null if no new version, otherwise, resourceId of new version
}
]{
"@context": "https://w3id.org/did-resolution/v1",
"didResolutionMetadata": {
"contentType": "application/did+ld+json",
"retrieved": "2022-11-28T05:01:50Z",
"did": {
"didString": "did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d",
"methodSpecificId": "1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d",
"method": "cheqd"
}
},
"didDocument": {
"@context": [
"https://www.w3.org/ns/did/v1"
],
"id": "did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d",
"controller": [
"did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d"
],
"verificationMethod": [
{
"id": "did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d#verKey1",
"type": "Ed25519VerificationKey2020",
"controller": "did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d",
"publicKeyMultibase": "zB5wPyMGYL4LbT424Z7yXHm6nZrrLqZZg9eWtVmedodys"
},
],
"authentication": [
"did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d#verKey1"
]
},
"didDocumentMetadata": {
"created": "2015-04-10T11:51:40Z",
"versionId": "ea2b76cf-a118-403a-8f49-244e56c9dcb8",
"linkedResourceMetadata": [
{ // First version of a Resource called PassportSchema
"resourceURI": "did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d/resources/f3d39687-69f5-4046-a960-3aae86a0d3ca",
"resourceCollectionId": "1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d", // Derived Collection ID
"resourceId": "f3d39687-69f5-4046-a960-3aae86a0d3ca",
"resourceName": "PassportSchema",
"resourceType": "CL-Schema",
"mediaType": "application/json",
"created": "2015-04-16T14:01:42Z",
"checksum": "72f9d4f96c6f4fedcfd5d1691b10d60d14a008cace269ddb35342aa8d43a30fc",
"previousVersionId": null, // No previous or next versions
"nextVersionId": null // No previous or next versions
}
]
}
}{
"@context": "https://w3id.org/did-resolution/v1",
"didResolutionMetadata": {
"contentType": "application/did+ld+json",
"retrieved": "2022-11-28T05:01:50Z",
"did": {
"didString": "did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d",
"methodSpecificId": "1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d",
"method": "cheqd"
}
},
"didDocument": {
"@context": [
"https://www.w3.org/ns/did/v1"
],
"id": "did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d",
"controller": [
"did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d"
],
"verificationMethod": [
{
"id": "did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d#verKey1",
"type": "Ed25519VerificationKey2020",
"controller": "did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d",
"publicKeyMultibase": "zB5wPyMGYL4LbT424Z7yXHm6nZrrLqZZg9eWtVmedodys"
},
],
"authentication": [
"did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d#verKey1"
]
},
"didDocumentMetadata": {
"created": "2015-04-10T11:51:40Z",
"versionId": "9D760202FF2BD4A12344283627FF251BE6C48812C7626C3564C1C2843CAB9085",
"linkedResourceMetadata": [
{ // First version of a Resource called PassportSchema
"resourceURI": "did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d/resources/f3d39687-69f5-4046-a960-3aae86a0d3ca",
"resourceCollectionId": "1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d", // Derived Collection ID
"resourceId": "f3d39687-69f5-4046-a960-3aae86a0d3ca",
"resourceName": "PassportSchema", // Resource name remains the same
"resourceType": "CL-Schema", // Resource type remains the same
"mediaType": "application/json",
"created": "2015-04-16T14:01:42Z",
"checksum": "72f9d4f96c6f4fedcfd5d1691b10d60d14a008cace269ddb35342aa8d43a30fc",
"previousVersionId": null,
"nextVersionId": "8f86d7aa-dc6a-4cee-ac37-97956542d587"
},
{ // Second version of a Resource called PassportSchema
"resourceURI": "did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d/resources/8f86d7aa-dc6a-4cee-ac37-97956542d587",
"resourceCollectionId": "1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d", // Derived Collection ID
"resourceId": "8f86d7aa-dc6a-4cee-ac37-97956542d587",
"resourceName": "PassportSchema", // Resource name remains the same
"resourceType": "CL-Schema", // Resource type remains the same
"mediaType": "application/json",
"created": "2020-06-16T14:02:39Z",
"checksum": "ec54f8019b869d5511b42678ea859b9dc185f487bf1776cb079fda0930331689",
"previousVersionId": "f3d39687-69f5-4046-a960-3aae86a0d3ca",
"nextVersionId": "bd128013-636d-4240-b48b-fc88bf9ee8de"
},
{ // Third version of a Resource called PassportSchema
"resourceURI": "did:cheqd:mainnet:1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d/resources/bd128013-636d-4240-b48b-fc88bf9ee8de",
"resourceCollectionId": "1f8e08a2-eeb6-40c3-9e01-33e4a0d1479d", // Derived Collection ID
"resourceId": "bd128013-636d-4240-b48b-fc88bf9ee8de",
"resourceName": "PassportSchema", // Resource name remains the same
"resourceType": "CL-Schema", // Resource type remains the same
"mediaType": "application/json",
"created": "2022-09-16T14:10:46Z",
"checksum": "cc187364f3bf071e5411cb6074d9c44a1b416a32b8eea581d113e486d1d586cf",
"previousVersionId": "8f86d7aa-dc6a-4cee-ac37-97956542d587",
"nextVersionId": null
}
]
}
}



Walkthrough for setting up Trust Registries for your AI Agents.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Verifiable Attestation",
"description": "The schema defines a generic structure for any Verifiable Credentials according to the VCDM v1.1",
"type": "object",
"properties": {
"@context": {
"description": "Semantic context for the issued credential. First element MUST be https://www.w3.org/2018/credentials/v1",
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"contains": {
"const": "https://www.w3.org/2018/credentials/v1"
},
"minItems": 1,
"uniqueItems": true
},
"id": {
"description": "Globally unique identifier for the issued credential",
"type": "string",
"format": "uri"
},
"type": {
"description": "Full type chain, used to identify the credential base types",
"type": "array",
"items": {
"type": "string"
},
"contains": {
"type": "string",
"const": "VerifiableAttestation"
},
"uniqueItems": true
},
"issuer": {
"description": "Defines a property for expressing the issuer of a Verifiable Credential",
"oneOf": [
{
"description": "DID of the credential issuer",
"type": "string",
"format": "uri"
},
{
"type": "object",
"required": ["id"],
"properties": {
"id": {
"description": "DID of the credential issuer",
"type": "string",
"format": "uri"
}
}
}
]
},
"issuanceDate": {
"description": "Defines the date and time, when the issued credential becomes valid",
"type": "string",
"format": "date-time"
},
"issued": {
"description": "Defines when the issued credential was issued",
"type": "string",
"format": "date-time"
},
"validFrom": {
"description": "Defines the date and time, when the issued credential becomes valid",
"type": "string",
"format": "date-time"
},
"validUntil": {
"description": "Defines the date and time, when the issued credential expires",
"type": "string",
"format": "date-time"
},
"expirationDate": {
"description": "Defines the date and time, when the issued credential expires",
"type": "string",
"format": "date-time"
},
"credentialSubject": {
"description": "Defines information about the subject that is defined by the type chain",
"anyOf": [
{
"$ref": "#/$defs/credentialSubject"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/credentialSubject"
}
}
]
},
"credentialStatus": {
"description": "Defines suspension and/or revocation details for the issued credential. Further redefined by the type extension",
"anyOf": [
{
"$ref": "#/$defs/credentialStatus"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/credentialStatus"
}
}
]
},
"credentialSchema": {
"description": "One or more schemas that validate the Verifiable Credential.",
"anyOf": [
{
"$ref": "#/$defs/credentialSchema"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/credentialSchema"
}
}
]
},
"termsOfUse": {
"description": "Contains the terms under which the issued credential was issued",
"anyOf": [
{
"$ref": "#/$defs/termsOfUse"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/termsOfUse"
}
}
]
},
"evidence": {
"description": "Contains the optional evidence used to issue this credential",
"anyOf": [
{
"$ref": "#/$defs/evidence"
},
{
"type": "array",
"items": {
"$ref": "#/$defs/evidence"
}
}
]
}
},
"required": [
"@context",
"id",
"type",
"issuer",
"credentialSubject"
],
"$defs": {
"credentialSubject": {
"description": "Defines information about the subject that is defined by the type chain",
"type": "object",
"properties": {
"id": {
"description": "Defines the DID of the subject that is described by the issued credential",
"type": "string",
"format": "uri"
}
}
},
"credentialStatus": {
"description": "Defines suspension and/or revocation details for the issued credential. Further redefined by the type extension",
"type": "object",
"properties": {
"id": {
"description": "Exact identity for the credential status",
"type": "string",
"format": "uri"
},
"type": {
"description": "Defines the revocation type extension",
"type": "string"
}
},
"required": ["id", "type"]
},
"credentialSchema": {
"description": "Contains information about the credential schema on which the issued credential is based",
"type": "object",
"properties": {
"id": {
"description": "References the credential schema stored on the Trusted Schemas Registry (TSR) on which the Verifiable Authorisation is based on",
"type": "string",
"format": "uri"
},
"type": {
"description": "Defines credential schema type",
"type": "string"
}
},
"required": ["id", "type"]
},
"termsOfUse": {
"description": "Contains the terms under which the issued credential was issued",
"type": "object",
"properties": {
"id": {
"description": "Contains a URL that points to where more information about this instance of terms of use can be found.",
"type": "string"
},
"type": {
"description": "Defines the type extension",
"type": "string"
}
},
"required": ["type"]
},
"evidence": {
"type": "object",
"properties": {
"id": {
"description": "If present, it SHOULD contain a URL that points to where more information about this instance of evidence can be found.",
"type": "string"
},
"type": {
"anyOf": [
{
"description": "Defines the evidence type extension",
"type": "string"
},
{
"description": "Defines the evidence type extension",
"type": "array",
"items": {
"type": "string"
}
}
]
}
},
"required": ["type"]
}
}
}{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Verifiable Accreditation",
"description": "Schema of a Verifiable Accreditation",
"type": "object",
"allOf": [
{
"$ref": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e?resourceName=VerifiableAttestation&resourceType=JSONSchemaValidator2020"
},
{
"properties": {
"credentialSubject": {
"description": "Defines additional information about the subject that is described by the Verifiable Accreditation",
"type": "object",
"properties": {
"id": {
"description": "Defines a unique identifier of the Verifiable Accreditation",
"type": "string",
"format": "uri"
},
"accreditedFor": {
"description": "Defines a list of claims that define/determine the authorisation of an Issuer to issue certain types of VCs",
"type": "array",
"items": {
"type": "object",
"properties": {
"schemaId": {
"description": "Schema, registered in Trusted Schemas Registry, which the accredited organisation is allowed to issue, as per their accreditation",
"type": "string",
"format": "uri"
},
"types": {
"type": "array",
"items": {
"type": "string"
}
},
"limitJurisdiction": {
"anyOf": [
{
"description": "Defines the jurisdiction for which the accreditation is valid",
"type": "string",
"format": "uri"
},
{
"type": "array",
"description": "Defines the jurisdictions for which the accreditation is valid",
"items": {
"type": "string",
"format": "uri"
}
}
]
}
},
"required": ["schemaId", "types"]
}
}
},
"required": ["id", "accreditedFor"]
},
"credentialStatus": {
"description": "Defines revocation details for the issued credential. Further redefined by type extension",
"type": "object",
"properties": {
"id": {
"description": "Exact identity for the credential status",
"type": "string",
"format": "uri"
},
"type": {
"description": "Defines the revocation status type",
"type": "string",
"const": "EbsiAccreditationEntry"
}
},
"required": ["id", "type"]
}
},
"required": [
"credentialSubject",
"termsOfUse"
]
}
]
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"allOf": [
{
"$ref": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e?resourceName=VerifiableAttestation&resourceType=JSONSchemaValidator2020"
},
{
"properties": {
"credentialSubject": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "uri"
},
"aiAgentName": {
"type": "string"
},
"aiAgentVersion": {
"type": "string"
},
"model": {
"type": "string"
},
"modelVersion": {
"type": "string"
},
"contextWindow": {
"type": "integer",
"minimum": 0
},
"temperature": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"topK": {
"type": "integer",
"minimum": 0
},
"topP": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"maxTokens": {
"type": "integer",
"minimum": 0
},
"fineTuned": {
"type": "boolean"
},
"fineTuningDetails": {
"type": "string",
"nullable": true
},
"safetyRating": {
"type": "string"
},
"evaluationMetrics": {
"type": "array",
"items": {
"type": "string"
}
},
"certificationAuthority": {
"type": "string"
},
"validUntil": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"aiAgentName",
"model"
]
},
"proof": {
"description": "Contains information about the proof",
"type": "object",
"properties": {
"type": {
"description": "Defines the proof type",
"type": "string"
},
"proofPurpose": {
"description": "Defines the purpose of the proof",
"type": "string"
},
"created": {
"description": "Defines the date and time, when the proof has been created",
"type": "string",
"format": "date-time"
},
"verificationMethod": {
"description": "Contains information about the verification method / proof mechanisms",
"type": "string"
},
"jws": {
"description": "Defines the proof value in JWS format",
"type": "string"
}
},
"required": [
"type",
"proofPurpose",
"created",
"verificationMethod",
"jws"
]
}
},
"required": ["credentialSubject", "proof"]
}
]
}{
"issuerDid": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e", // This is the Root DID for the Trust Chain
"subjectDid": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad", // This is the DID Authorized at a Root Level and may often be the same DID as the issuer
"schemas": [ // enter the schemas you have created for your trust registry
{
"types": "AIAgentAuthorization",
"url": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:c6630f1e-9248-4af6-b7ac-5bcaf646f213?resourceName=AIAgentAuthorization&resourceType=JSONSchemaValidator2020"
},
{
"uri": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e?resourceName=VerifiableAccreditation&resourceType=JSONSchemaValidator2020",
"types": [
"VerifiableCredential",
"VerifiableAccreditation",
"VerifiableAccreditationToAccredit"
]
},
{
"uri": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e?resourceName=VerifiableAttestation&resourceType=JSONSchemaValidator2020",
"types": [
"VerifiableCredential",
"VerifiableAttestation",
"VerifiableAccreditationToAttest"
]
}
],
"format": "jwt",
"accreditationName": "TrustFrameworkPolicy",
"trustFramework": "https://learn.cheqd.io/governance/start",
"trustFrameworkId": "cheqd Governance Framework"
}{
"@context": [
"https://www.w3.org/2018/credentials/v1"
],
"type": [
"VerifiableCredential",
"VerifiableAuthorizationForTrustChain"
],
"issuer": {
"id": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e"
},
"credentialSubject": {
"accreditedFor": [
{
"schemaId": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018",
"type": "MuseumPassCredential"
}
],
"id": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad"
},
"issuanceDate": "2024-10-15T04:06:47.000Z",
"termsOfUse": {
"type": "TrustFrameworkPolicy",
"trustFramework": "https://learn.cheqd.io/governance/start",
"trustFrameworkId": "cheqd Governance Framework"
},
"proof": {
"type": "JwtProof2020",
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImFjY3JlZGl0ZWRGb3IiOlt7InNjaGVtYUlkIjoiaHR0cHM6Ly9yZXNvbHZlci5jaGVxZC5uZXQvMS4wL2lkZW50aWZpZXJzL2RpZDpjaGVxZDp0ZXN0bmV0OjBhNWI5NGQwLWE0MTctNDhlZC1hNmY1LTRhYmM5ZTk1ODg4ZD9yZXNvdXJjZU5hbWU9TXVzZXVtUGFzc0NyZWRlbnRpYWxTY2hlbWEmcmVzb3VyY2VUeXBlPUpzb25TY2hlbWFWYWxpZGF0b3IyMDE4IiwidHlwZSI6Ik11c2V1bVBhc3NDcmVkZW50aWFsIn1dfSwidGVybXNPZlVzZSI6eyJ0eXBlIjoiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIiwidHJ1c3RGcmFtZXdvcmsiOiJodHRwczovL2xlYXJuLmNoZXFkLmlvL2dvdmVybmFuY2Uvc3RhcnQiLCJ0cnVzdEZyYW1ld29ya0lkIjoiY2hlcWQgR292ZXJuYW5jZSBGcmFtZXdvcmsifX0sInN1YiI6ImRpZDpjaGVxZDp0ZXN0bmV0OjZhZjQxMmQ3LTJmMDQtNGUxMi1hNDI0LWU2NzE5ZGI0ODdhZCIsIm5iZiI6MTcyODk2NTIwNywiaXNzIjoiZGlkOmNoZXFkOnRlc3RuZXQ6YjAwM2RmNmYtZWM4ZS00OGRkLTlhMmItNzAxMWM1Y2YwYTVlIn0.6dKE9-y2Id852onu1_WnD6aJnDtxgFZcjCbCfQ8MT1ACsHY8ox5jiKP4QUJNmhwesLidC99Qa0uyCrUhvHc2Bg"
}
}{
"issuerDid": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e",
"subjectDid": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad",
"schemas": [
{
"types": "AIAgentAuthorization",
"url": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:c6630f1e-9248-4af6-b7ac-5bcaf646f213?resourceName=AIAgentAuthorization&resourceType=JSONSchemaValidator2020"
},
{
"uri": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e?resourceName=VerifiableAccreditation&resourceType=JSONSchemaValidator2020",
"types": [
"VerifiableCredential",
"VerifiableAccreditation",
"VerifiableAccreditationToAccredit"
]
},
{
"uri": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e?resourceName=VerifiableAttestation&resourceType=JSONSchemaValidator2020",
"types": [
"VerifiableCredential",
"VerifiableAttestation",
"VerifiableAccreditationToAttest"
]
}
],
"format": "jwt",
"accreditationName": "accreditationToAttestTest",
"parentAccreditation": "did:cheqd:testnet:15b74787-6e48-4fd5-8020-eab24e990578?resourceName=accreditAccreditation&resourceType=VerifiableAccreditationToAccredit",
"rootAuthorization": "did:cheqd:testnet:5RpEg66jhhbmASWPXJRWrA?resourceName=authorizeAccreditation&resourceType=VerifiableAuthorizationForTrustChain",
}{
"@context": [
"https://www.w3.org/2018/credentials/v1"
],
"type": [
"VerifiableCredential",
"VerifiableAccreditationToAccredit"
],
"issuer": {
"id": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e"
},
"credentialSubject": {
"accreditedFor": [
{
"schemaId": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018",
"type": "AIAgentAuthorization"
}
],
"id": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad"
},
"issuanceDate": "2024-10-15T04:06:47.000Z",
"termsOfUse": {
"type": "AccreditationPolicy",
"parentAccreditation": "did:cheqd:testnet:15b74787-6e48-4fd5-8020-eab24e990578?resourceName=accreditAccreditation&resourceType=VerifiableAccreditationToAccredit",
"rootAuthorization": "did:cheqd:testnet:5RpEg66jhhbmASWPXJRWrA?resourceName=authorizeAccreditation&resourceType=VerifiableAuthorizationForTrustChain",
},
"proof": {
"type": "JwtProof2020",
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImFjY3JlZGl0ZWRGb3IiOlt7InNjaGVtYUlkIjoiaHR0cHM6Ly9yZXNvbHZlci5jaGVxZC5uZXQvMS4wL2lkZW50aWZpZXJzL2RpZDpjaGVxZDp0ZXN0bmV0OjBhNWI5NGQwLWE0MTctNDhlZC1hNmY1LTRhYmM5ZTk1ODg4ZD9yZXNvdXJjZU5hbWU9TXVzZXVtUGFzc0NyZWRlbnRpYWxTY2hlbWEmcmVzb3VyY2VUeXBlPUpzb25TY2hlbWFWYWxpZGF0b3IyMDE4IiwidHlwZSI6Ik11c2V1bVBhc3NDcmVkZW50aWFsIn1dfSwidGVybXNPZlVzZSI6eyJ0eXBlIjoiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIiwidHJ1c3RGcmFtZXdvcmsiOiJodHRwczovL2xlYXJuLmNoZXFkLmlvL2dvdmVybmFuY2Uvc3RhcnQiLCJ0cnVzdEZyYW1ld29ya0lkIjoiY2hlcWQgR292ZXJuYW5jZSBGcmFtZXdvcmsifX0sInN1YiI6ImRpZDpjaGVxZDp0ZXN0bmV0OjZhZjQxMmQ3LTJmMDQtNGUxMi1hNDI0LWU2NzE5ZGI0ODdhZCIsIm5iZiI6MTcyODk2NTIwNywiaXNzIjoiZGlkOmNoZXFkOnRlc3RuZXQ6YjAwM2RmNmYtZWM4ZS00OGRkLTlhMmItNzAxMWM1Y2YwYTVlIn0.6dKE9-y2Id852onu1_WnD6aJnDtxgFZcjCbCfQ8MT1ACsHY8ox5jiKP4QUJNmhwesLidC99Qa0uyCrUhvHc2Bg"
}
}{
"issuerDid": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e",
"subjectDid": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad",
"schemas": [
{
"types": "AIAgentAuthorization",
"url": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:c6630f1e-9248-4af6-b7ac-5bcaf646f213?resourceName=AIAgentAuthorization&resourceType=JSONSchemaValidator2020"
},
{
"uri": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e?resourceName=VerifiableAccreditation&resourceType=JSONSchemaValidator2020",
"types": [
"VerifiableCredential",
"VerifiableAccreditation",
"VerifiableAccreditationToAccredit"
]
},
{
"uri": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e?resourceName=VerifiableAttestation&resourceType=JSONSchemaValidator2020",
"types": [
"VerifiableCredential",
"VerifiableAttestation",
"VerifiableAccreditationToAttest"
]
}
],
"format": "jwt",
"accreditationName": "accreditationToAttestTest",
"parentAccreditation": "did:cheqd:testnet:15b74787-6e48-4fd5-8020-eab24e990578?resourceName=accreditAccreditation&resourceType=VerifiableAccreditationToAccredit",
"rootAuthorization": "did:cheqd:testnet:5RpEg66jhhbmASWPXJRWrA?resourceName=authorizeAccreditation&resourceType=VerifiableAuthorizationForTrustChain",
}{
"@context": [
"https://www.w3.org/2018/credentials/v1"
],
"type": [
"VerifiableCredential",
"VerifiableAccreditationToAccredit"
],
"issuer": {
"id": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e"
},
"credentialSubject": {
"accreditedFor": [
{
"schemaId": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018",
"type": "MuseumPassCredential"
}
],
"id": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad"
},
"issuanceDate": "2024-10-15T04:06:47.000Z",
"termsOfUse": {
"type": "VerifiableAuthorizationForTrustChain",
"parentAccreditation": "did:cheqd:testnet:15b74787-6e48-4fd5-8020-eab24e990578?resourceName=accreditAccreditation&resourceType=VerifiableAccreditationToAccredit",
"rootAuthorization": "did:cheqd:testnet:5RpEg66jhhbmASWPXJRWrA?resourceName=authorizeAccreditation&resourceType=VerifiableAuthorizationForTrustChain",
},
"proof": {
"type": "JwtProof2020",
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImFjY3JlZGl0ZWRGb3IiOlt7InNjaGVtYUlkIjoiaHR0cHM6Ly9yZXNvbHZlci5jaGVxZC5uZXQvMS4wL2lkZW50aWZpZXJzL2RpZDpjaGVxZDp0ZXN0bmV0OjBhNWI5NGQwLWE0MTctNDhlZC1hNmY1LTRhYmM5ZTk1ODg4ZD9yZXNvdXJjZU5hbWU9TXVzZXVtUGFzc0NyZWRlbnRpYWxTY2hlbWEmcmVzb3VyY2VUeXBlPUpzb25TY2hlbWFWYWxpZGF0b3IyMDE4IiwidHlwZSI6Ik11c2V1bVBhc3NDcmVkZW50aWFsIn1dfSwidGVybXNPZlVzZSI6eyJ0eXBlIjoiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIiwidHJ1c3RGcmFtZXdvcmsiOiJodHRwczovL2xlYXJuLmNoZXFkLmlvL2dvdmVybmFuY2Uvc3RhcnQiLCJ0cnVzdEZyYW1ld29ya0lkIjoiY2hlcWQgR292ZXJuYW5jZSBGcmFtZXdvcmsifX0sInN1YiI6ImRpZDpjaGVxZDp0ZXN0bmV0OjZhZjQxMmQ3LTJmMDQtNGUxMi1hNDI0LWU2NzE5ZGI0ODdhZCIsIm5iZiI6MTcyODk2NTIwNywiaXNzIjoiZGlkOmNoZXFkOnRlc3RuZXQ6YjAwM2RmNmYtZWM4ZS00OGRkLTlhMmItNzAxMWM1Y2YwYTVlIn0.6dKE9-y2Id852onu1_WnD6aJnDtxgFZcjCbCfQ8MT1ACsHY8ox5jiKP4QUJNmhwesLidC99Qa0uyCrUhvHc2Bg"
}
}This endpoint fetches an identity key pair's details for a given key ID. Only the user account associated with the custodian-mode client can fetch the key pair.
Key ID of the identity key pair to fetch.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
InvalidRequestAccess token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
This endpoint returns the custodian-mode client details for authenticated users.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
This endpoint returns the list of DIDs controlled by the account.
Filter DID by the network published.
Filter DID by the provider.
Include metadata in response.
Filter resource by created date
Page number.
Number of items to be listed in a single page.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
GET /account HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Accept: */*
{
"customer": {
"customerId": "text",
"name": "text"
},
"paymentAccount": {
"mainnet": "text",
"testnet": "text"
}
}{
"kid": "text",
"type": "Ed25519",
"publicKeyHex": "text"
}GET /key/read/{kid} HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Accept: */*
{
"total": 1,
"dids": [
"text"
]
}GET /did/list HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Accept: */*
The type of Status List.
The update action to be performed on the encrypted status list, can be revoke, suspend or reinstate
DID of the StatusList2021 publisher.
The name of the StatusList2021 DID-Linked Resource to be updated.
List of credential status indices to be updated. The indices must be in the range of the status list.
Optional field to assign a human-readable version in the StatusList2021 DID-Linked Resource.
The symmetric key used to encrypt the StatusList2021 DID-Linked Resource.
The cheqd/Cosmos payment address where payments to unlock the encrypted StatusList2021 or BitstringStatusList DID-Linked Resource need to be sent.
cheqd1qs0nhyk868c246defezhz5eymlt0dmajna2csgAmount in CHEQ tokens to unlock the encrypted StatusList2021 or BitstringStatusList DID-Linked Resource.
20Time window (in minutes) within which the payment to unlock the encrypted StatusList2021 or BitstringStatusList DID-Linked Resource is considered valid.
10If set to true the verification will also check the status of the accreditation. Requires the VC to have a credentialStatus property.
falseIf set to true allow to verify accreditation which based on deactivated DID.
falseDID of the Verifiable Accreditation holder/subject. This needs to be a did:key DID.
did:cheqd:testnet:5efa5126-c070-420f-a9c2-d22ae6eefb92DID URL of the Verifiable Accreditation to be verified as a VC-JWT string or a JSON object.
did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e?resourceName=cheqd-issuer-logo&resourceType=CredentialArtworkDID of the Verifiable Accreditation holder/subject
did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2eUnique resource identifier of the Verifiable Accreditation
398cee0a-efac-4643-9f4c-74c48c72a14bResource name of the Verifiable Accreditation
cheqd-issuer-logoResource type of the Verifiable Accreditation
CredentialArtworkPolicy to skip the issuanceDate (nbf) timestamp check when set to false.
truePolicy to skip the expirationDate (exp) timestamp check when set to false.
truePolicy to skip the audience check when set to false.
falseThe type of Status List.
The update action to be performed on the unencrypted status list, can be revoke, suspend, reinstate or custom states
DID of the StatusList2021 publisher.
The name of the StatusList2021 DID-Linked Resource to be updated.
List of credential status indices to be updated. The indices must be in the range of the status list.
Optional field to assign a human-readable version in the StatusList2021 DID-Linked Resource.
DID identifier
did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0Fetch a DID-Linked Resource by Resource ID unique identifier. Since this is a unique identifier, other Resource query parameters are not required. See DID-Linked Resources for more details.
3ccde6ba-6ba5-56f2-9f4f-8825561a9860Filter a DID-Linked Resource query by Resource Name. See DID-Linked Resources for more details.
cheqd-issuer-logoFilter a DID-Linked Resource query by Resource Type. See DID-Linked Resources for more details.
CredentialArtworkFilter a DID-Linked Resource query by Resource Version, which is an optional free-text field used by issuers (e.g., "v1", "Final Version", "1st January 1970" etc). See DID-Linked Resources for more details.
v1Filter a DID-Linked Resource query which returns the closest version of the Resource at or before specified time. See DID-Linked Resources for more details.
1970-01-01T00:00:00ZRequest integrity check against a given DID-Linked Resource by providing a SHA-256 checksum hash. See DID-Linked Resources for more details.
dc64474d062ed750a66bad58cb609928de55ed0d81defd231a4a4bf97358e9edReturn only metadata of DID-Linked Resource instead of actual DID-Linked Resource. Mutually exclusive with some of the other parameters.
If set to true the verification will also check the status of the credential. Requires the VC to have a credentialStatus property.
falseWhen dealing with JSON-LD you also MUST provide the proper contexts. Set this to true ONLY if you want the @context URLs to be fetched in case they are a custom context.
falseIf set to true allow to verify credential which based on deactivated DID.
falseIf set to true the verification will also check the status of the presentation. Requires the VP to have a credentialStatus property.
falseWhen dealing with JSON-LD you also MUST provide the proper contexts. * Set this to true ONLY if you want the @context URLs to be fetched in case they are a custom context.
falseIf set to true allow to verify credential which based on deactivated DID.
falseThe type of Status List.
Set whether the StatusList2021 or BitstringStatusList resource should be published to the ledger or not. If set to false, the StatusList2021 or BitstringStatusList publisher should manually publish the resource.
trueVerifiable Credential to be revoked as a VC-JWT string or a JSON object.
The symmetric key used to encrypt the StatusList2021 DID-Linked Resource. Required if the StatusList2021 DID-Linked Resource is encrypted.
DID identifier to resolve.
did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0Return only metadata of DID Document instead of actual DID Document.
Unique UUID version identifier of DID Document. Allows for fetching a specific version of the DID Document. See cheqd DID Method Specification for more details.
3ccde6ba-6ba5-56f2-9f4f-8825561a9860Returns the closest version of the DID Document at or before specified time. See DID Resolution handling for did:cheqd for more details.
1970-01-01T00:00:00ZThis directive transforms the Verification Method key format from the version in the DID Document to the specified format chosen below.
Query DID Document for a specific Service Endpoint by Service ID (e.g., service-1 in did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1). This will typically redirect to the Service Endpoint based on DID Resolution specification algorithm.
service-1Relative reference is a query fragment appended to the Service Endpoint URL. Must be used along with the service query property above. See DID Resolution specification algorithm for more details.
/path/to/fileKey type of the identity key pair to create.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
InvalidRequestAccess token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The DID of the issuer of the status list.
The type of Status List.
The purpose of the status list. Can be either revocation or suspension.
The name of the Status List DID-Linked Resource.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
DID identifier to deactivate.
List of key references (publicKeys) which will be used for signing the message. The should be in hexadecimal format and placed in the wallet of current user.
https://w3id.org/did-resolution/v12021-09-01T12:00:00Zdid:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47cheqd55dbc8bf-fba3-4117-855c-1e0dc1d3bb47DID appended with Service fragment ID (e.g., #service-1 in did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1)
did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1Service type as defined in DID Specification Registries.
LinkedDomainsService endpoint as defined in DID Core Specification.
https://example.com(Optional) Priority of the service endpoint, used for distinction when multiple did-communication service endpoints are present in a single DID document.
0(Optional) List of recipient keys used to denote the default recipients of an endpoint.
did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1(Optional) List of routing keys used to used to denote the individual routing hops in between the sender and recipients.
did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-2(Optional) List of media types that the service endpoint accepts.
didcomm/aip2;env=rfc5872021-09-01T12:00:00Ztrue2021-09-10T12:00:00Z3ccde6ba-6ba5-56f2-9f4f-8825561a9860did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47/resources/398cee0a-efac-4643-9f4c-74c48c72a14b55dbc8bf-fba3-4117-855c-1e0dc1d3bb47398cee0a-efac-4643-9f4c-74c48c72a14bcheqd-issuer-logoCredentialArtworkimage/png1.0a95380f460e63ad939541a57aecbfd795fcd37c6d78ee86c885340e33a91b5592021-09-01T12:00:00Zd4829ac7-4566-478c-a408-b44767eddadcad7a8442-3531-46eb-a024-53953ec6e4ff2021-09-01T12:00:00Ztrue2021-09-10T12:00:00Z3ccde6ba-6ba5-56f2-9f4f-8825561a9860did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47/resources/398cee0a-efac-4643-9f4c-74c48c72a14b55dbc8bf-fba3-4117-855c-1e0dc1d3bb47398cee0a-efac-4643-9f4c-74c48c72a14bcheqd-issuer-logoCredentialArtworkimage/png1.0a95380f460e63ad939541a57aecbfd795fcd37c6d78ee86c885340e33a91b5592021-09-01T12:00:00Zd4829ac7-4566-478c-a408-b44767eddadcad7a8442-3531-46eb-a024-53953ec6e4ffList of key references (publicKeys) which will be used for signing the message. The should be in hexadecimal format and placed in the wallet of current user.
DID identifier to link the resource to.
Input fields for DID-Linked Resource creation.
Encoded string containing the data to be stored in the DID-Linked Resource.
Encoding format used to encode the data.
Name of DID-Linked Resource.
Type of DID-Linked Resource. This is NOT the same as the media type, which is calculated automatically ledger-side.
Optional field to assign a human-readable version in the DID-Linked Resource.
List of key references (publicKeys) which will be used for signing the message. The should be in hexadecimal format and placed in the wallet of current user.
Key type of the identity key pair to create.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
InvalidRequestAccess token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The type of Status List.
Set whether the StatusList2021 or BitstringStatusList resource should be published to the ledger or not. If set to false, the StatusList2021 or BitstringStatusList publisher should manually publish the resource.
Verifiable Credential to be revoked as a VC-JWT string or a JSON object.
The symmetric key used to encrypt the StatusList2021 DID-Linked Resource. Required if the StatusList2021 DID-Linked Resource is encrypted.
The type of Status List.
Set whether the StatusList2021 or BitstringStatusList resource should be published to the ledger or not. If set to false, the StatusList2021 or BitstringStatusList publisher should manually publish the resource.
Verifiable Credential to be revoked as a VC-JWT string or a JSON object.
The symmetric key used to encrypt the StatusList2021 DID-Linked Resource. Required if the StatusList2021 DID-Linked Resource is encrypted.
DID identifier to be updated.
did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0DID appended with Service fragment ID (e.g., #service-1 in did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1)
did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1Service type as defined in DID Specification Registries.
LinkedDomainsService endpoint as defined in DID Core Specification.
https://example.com(Optional) Priority of the service endpoint, used for distinction when multiple did-communication service endpoints are present in a single DID document.
0(Optional) List of recipient keys used to denote the default recipients of an endpoint.
did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1(Optional) List of routing keys used to used to denote the individual routing hops in between the sender and recipients.
did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-2(Optional) List of media types that the service endpoint accepts.
didcomm/aip2;env=rfc587Authentication section of the DID Document.
List of key references (publicKeys) which will be used for signing the message. The should be in hexadecimal format and placed in the wallet of current user.
DID appended with Service fragment ID (e.g., #service-1 in did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1)
did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1Service type as defined in DID Specification Registries.
LinkedDomainsService endpoint as defined in DID Core Specification.
https://example.com(Optional) Priority of the service endpoint, used for distinction when multiple did-communication service endpoints are present in a single DID document.
0(Optional) List of recipient keys used to denote the default recipients of an endpoint.
did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1(Optional) List of routing keys used to used to denote the individual routing hops in between the sender and recipients.
did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-2(Optional) List of media types that the service endpoint accepts.
didcomm/aip2;env=rfc587The type of Status List.
The purpose of the status list. Can be either revocation or suspension.
DID of the StatusList2021 publisher.
The name of the StatusList2021 DID-Linked Resource to be checked.
Credential status index to be checked for revocation or suspension.
List of credential status indices to be checked for revocation or suspension.
Start of the credential status index range to be checked for revocation or suspension.
End of the credential status index range to be checked for revocation or suspension.
Optional Resolvable DID URL of the BitstringStatusList credential to be checked.
Optional size of the BitstringStatusList.
2Array of status messages for each bit in the BitstringStatusList.
Automatically make fee payment (if required) based on payment conditions to unlock encrypted StatusList2021 or BitstringStatusList DID-Linked Resource.
trueDID identifier to link the resource to.
Input fields for DID-Linked Resource creation.
Encoded string containing the data to be stored in the DID-Linked Resource.
Encoding format used to encode the data.
Name of DID-Linked Resource.
Type of DID-Linked Resource. This is NOT the same as the media type, which is calculated automatically ledger-side.
Optional field to assign a human-readable version in the DID-Linked Resource.
List of key references (publicKeys) which will be used for signing the message. The should be in hexadecimal format and placed in the wallet of current user.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
DID identifier to link the resource to.
Input fields for DID-Linked Resource creation.
Encoded string containing the data to be stored in the DID-Linked Resource.
Encoding format used to encode the data.
Name of DID-Linked Resource.
Type of DID-Linked Resource. This is NOT the same as the media type, which is calculated automatically ledger-side.
Optional field to assign a human-readable version in the DID-Linked Resource.
List of key references (publicKeys) which will be used for signing the message. The should be in hexadecimal format and placed in the wallet of current user.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
DID identifier to resolve.
did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0Return only metadata of DID Document instead of actual DID Document.
Unique UUID version identifier of DID Document. Allows for fetching a specific version of the DID Document. See cheqd DID Method Specification for more details.
3ccde6ba-6ba5-56f2-9f4f-8825561a9860Returns the closest version of the DID Document at or before specified time. See DID Resolution handling for did:cheqd for more details.
1970-01-01T00:00:00ZThis directive transforms the Verification Method key format from the version in the DID Document to the specified format chosen below.
Query DID Document for a specific Service Endpoint by Service ID (e.g., service-1 in did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1). This will typically redirect to the Service Endpoint based on DID Resolution specification algorithm.
service-1Relative reference is a query fragment appended to the Service Endpoint URL. Must be used along with the service query property above. See DID Resolution specification algorithm for more details.
/path/to/fileThe request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The type of Status List.
The purpose of the status list.
Once this is set, it cannot be changed. A new status list must be created to change the purpose.
{"summary":"Single purpose (StatusList2021)","value":"revocation"}The type of Status List.
The purpose of the status list.
Once this is set, it cannot be changed. A new status list must be created to change the purpose.
{"summary":"Single purpose (StatusList2021)","value":"revocation"}DID of the StatusList2021 or BitstringStatusList publisher.
The name of the StatusList2021 or BitstringStatusList DID-Linked Resource to be created.
The length of the status list to be created. The default and minimum length is 131072 which is 16kb.
131072The encoding format of the StatusList2021 or BitstringStatusList (only base64url supported) DiD-Linked Resource to be created.
base64urlPossible values: Optional field to assign a human-readable version in the StatusList2021 or BitstringStatusList DID-Linked Resource.
Only for BitstringStatusList: bits per credential, used to support multiple status in same list.
Category of credentials this status list is for.
0x0validOnly for BitstringStatusList: Time to Live in Miliseconds (not expiry).
URI where the DID-Linked Resource can be fetched from. Can be any type of URI (e.g., DID, HTTPS, IPFS, etc.)
Optional description of the URI.
Input fields for the creating a Verifiable Credential.
DID of the Verifiable Credential issuer. This needs to be a did:cheqd DID.
did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0DID of the Verifiable Credential holder/subject. This needs to be a did:key DID.
did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doKJSON object containing the attributes to be included in the credential.
{"name":"Bob","gender":"male"}Optional properties to be included in the @context property of the credential.
["https://schema.org/schema.jsonld","https://veramo.io/contexts/profile/v1"]Optional properties to be included in the type property of the credential.
["Person"]Optional expiration date according to the <a href=https://www.w3.org/TR/vc-data-model/#expiration> VC Data Model specification.
2023-06-08T13:49:28.000ZFormat of the Verifiable Credential. Defaults to VC-JWT.
jwtPossible values: Terms of use can be utilized by an issuer or a holder to communicate the terms under which a verifiable credential was issued.
{"type":"IssuerPolicy","id":"http://example.com/policies/credential/4","profile":"http://example.com/profiles/credential","prohibition":[{"assigner":"https://example.edu/issuers/14","assignee":"AllVerifiers","target":"http://example.edu/credentials/3732","action":["Archival"]}]}RefreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential.
{"type":"ManualRefreshService2018","id":"https://example.edu/refresh/3732"}Evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.
{"type":["DocumentVerification"],"id":"https://example.edu/evidence/f2aeec97-fc0d-42bf-8ca7-0548192d4231","verifier":"https://example.edu/issuers/14","evidenceDocument":"DriversLicense","subjectPresence":"Physical","documentPresence":"Physical","licenseNumber":"123AB4567"}The type of Status List.
The purpose of the status list. Can be either revocation or suspension.
DID of the StatusList2021 publisher.
The name of the StatusList2021 DID-Linked Resource to be checked.
Credential status index to be checked for revocation or suspension.
List of credential status indices to be checked for revocation or suspension.
Start of the credential status index range to be checked for revocation or suspension.
End of the credential status index range to be checked for revocation or suspension.
Optional Resolvable DID URL of the BitstringStatusList credential to be checked.
Optional size of the BitstringStatusList.
2Array of status messages for each bit in the BitstringStatusList.
Automatically make fee payment (if required) based on payment conditions to unlock encrypted StatusList2021 or BitstringStatusList DID-Linked Resource.
trueThe type of Status List.
The purpose of the status list. Can be either revocation or suspension.
DID of the StatusList2021 publisher.
The name of the StatusList2021 DID-Linked Resource to be checked.
Credential status index to be checked for revocation or suspension.
List of credential status indices to be checked for revocation or suspension.
Start of the credential status index range to be checked for revocation or suspension.
End of the credential status index range to be checked for revocation or suspension.
Optional Resolvable DID URL of the BitstringStatusList credential to be checked.
Optional size of the BitstringStatusList.
2Array of status messages for each bit in the BitstringStatusList.
Automatically make fee payment (if required) based on payment conditions to unlock encrypted StatusList2021 or BitstringStatusList DID-Linked Resource.
trueThe type of Status List.
The purpose of the status list. Can be either revocation or suspension.
DID of the StatusList2021 publisher.
The name of the StatusList2021 DID-Linked Resource to be checked.
Credential status index to be checked for revocation or suspension.
List of credential status indices to be checked for revocation or suspension.
Start of the credential status index range to be checked for revocation or suspension.
End of the credential status index range to be checked for revocation or suspension.
Optional Resolvable DID URL of the BitstringStatusList credential to be checked.
Optional size of the BitstringStatusList.
2Array of status messages for each bit in the BitstringStatusList.
Automatically make fee payment (if required) based on payment conditions to unlock encrypted StatusList2021 or BitstringStatusList DID-Linked Resource.
trueInput fields for the creating a Verifiable Credential.
DID of the Verifiable Credential issuer. This needs to be a did:cheqd DID.
did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0DID of the Verifiable Credential holder/subject. This needs to be a did:key DID.
did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doKJSON object containing the attributes to be included in the credential.
{"name":"Bob","gender":"male"}Optional properties to be included in the @context property of the credential.
["https://schema.org/schema.jsonld","https://veramo.io/contexts/profile/v1"]Optional properties to be included in the type property of the credential.
["Person"]Optional expiration date according to the <a href=https://www.w3.org/TR/vc-data-model/#expiration> VC Data Model specification.
2023-06-08T13:49:28.000ZFormat of the Verifiable Credential. Defaults to VC-JWT.
jwtPossible values: Terms of use can be utilized by an issuer or a holder to communicate the terms under which a verifiable credential was issued.
{"type":"IssuerPolicy","id":"http://example.com/policies/credential/4","profile":"http://example.com/profiles/credential","prohibition":[{"assigner":"https://example.edu/issuers/14","assignee":"AllVerifiers","target":"http://example.edu/credentials/3732","action":["Archival"]}]}RefreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential.
{"type":"ManualRefreshService2018","id":"https://example.edu/refresh/3732"}Evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.
{"type":["DocumentVerification"],"id":"https://example.edu/evidence/f2aeec97-fc0d-42bf-8ca7-0548192d4231","verifier":"https://example.edu/issuers/14","evidenceDocument":"DriversLicense","subjectPresence":"Physical","documentPresence":"Physical","licenseNumber":"123AB4567"}The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
Input fields for the creating a Verifiable Credential.
DID of the Verifiable Credential issuer. This needs to be a did:cheqd DID.
did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0DID of the Verifiable Credential holder/subject. This needs to be a did:key DID.
did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doKJSON object containing the attributes to be included in the credential.
{"name":"Bob","gender":"male"}Optional properties to be included in the @context property of the credential.
["https://schema.org/schema.jsonld","https://veramo.io/contexts/profile/v1"]Optional properties to be included in the type property of the credential.
["Person"]Optional expiration date according to the <a href=https://www.w3.org/TR/vc-data-model/#expiration> VC Data Model specification.
2023-06-08T13:49:28.000ZFormat of the Verifiable Credential. Defaults to VC-JWT.
jwtPossible values: Terms of use can be utilized by an issuer or a holder to communicate the terms under which a verifiable credential was issued.
{"type":"IssuerPolicy","id":"http://example.com/policies/credential/4","profile":"http://example.com/profiles/credential","prohibition":[{"assigner":"https://example.edu/issuers/14","assignee":"AllVerifiers","target":"http://example.edu/credentials/3732","action":["Archival"]}]}RefreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential.
{"type":"ManualRefreshService2018","id":"https://example.edu/refresh/3732"}Evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.
{"type":["DocumentVerification"],"id":"https://example.edu/evidence/f2aeec97-fc0d-42bf-8ca7-0548192d4231","verifier":"https://example.edu/issuers/14","evidenceDocument":"DriversLicense","subjectPresence":"Physical","documentPresence":"Physical","licenseNumber":"123AB4567"}The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The type of Status List.
The update action to be performed on the encrypted status list, can be revoke, suspend or reinstate
DID of the StatusList2021 publisher.
The name of the StatusList2021 DID-Linked Resource to be updated.
List of credential status indices to be updated. The indices must be in the range of the status list.
Optional field to assign a human-readable version in the StatusList2021 DID-Linked Resource.
The symmetric key used to encrypt the StatusList2021 DID-Linked Resource.
The cheqd/Cosmos payment address where payments to unlock the encrypted StatusList2021 or BitstringStatusList DID-Linked Resource need to be sent.
cheqd1qs0nhyk868c246defezhz5eymlt0dmajna2csgAmount in CHEQ tokens to unlock the encrypted StatusList2021 or BitstringStatusList DID-Linked Resource.
20Time window (in minutes) within which the payment to unlock the encrypted StatusList2021 or BitstringStatusList DID-Linked Resource is considered valid.
10The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The type of Status List.
The update action to be performed on the encrypted status list, can be revoke, suspend or reinstate
DID of the StatusList2021 publisher.
The name of the StatusList2021 DID-Linked Resource to be updated.
List of credential status indices to be updated. The indices must be in the range of the status list.
Optional field to assign a human-readable version in the StatusList2021 DID-Linked Resource.
The symmetric key used to encrypt the StatusList2021 DID-Linked Resource.
The cheqd/Cosmos payment address where payments to unlock the encrypted StatusList2021 or BitstringStatusList DID-Linked Resource need to be sent.
cheqd1qs0nhyk868c246defezhz5eymlt0dmajna2csgAmount in CHEQ tokens to unlock the encrypted StatusList2021 or BitstringStatusList DID-Linked Resource.
20Time window (in minutes) within which the payment to unlock the encrypted StatusList2021 or BitstringStatusList DID-Linked Resource is considered valid.
10The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
Network to create the DID on (testnet or mainnet)
Identity Provider to create the DID
Algorithm to use for generating the method-specific ID. The two styles supported are UUIDs and Indy-style Base58. See cheqd DID method documentation for more details.
Type of verification method to use for the DID. See DID Core specification for more details. Only the types listed below are supported.
The unique identifier in hexadecimal public key format used in the verification method to create the DID.
["https://www.w3.org/ns/did/v1"]Select the type of accreditation to be issued.
Input fields for the creating a Verifiable Accreditation.
DID of the Verifiable Accreditation issuer. This needs to be a did:cheqd DID.
did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0DID of the Verifiable Accreditation holder/subject. This needs to be a did:cheqd DID.
did:cheqd:testnet:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doKUnique name of the Verifiable Accreditation.
JSON object containing the attributes to be included in the Accreditation.
Optional properties to be included in the @context property of the Accreditation.
["https://schema.org/schema.jsonld","https://veramo.io/contexts/profile/v1"]DID URL of the parent Verifiable Accreditation, required for accredit/attest operation.
DID URL of the root Verifiable Accreditation, required for accredit/attest operation.
Name or Type of the Trust Framework, required for authorize operation.
Url of the Trust Framework, required for authorize operation.
Optional properties to be included in the type property of the Accreditation.
["Person"]Optional expiration date according to the <a href=https://www.w3.org/TR/vc-data-model/#expiration> VC Data Model specification.
2023-06-08T13:49:28.000ZFormat of the Verifiable Accreditation. Defaults to VC-JWT.
jwtPossible values: Terms of use can be utilized by an issuer or a holder to communicate the terms under which a verifiable credential was issued.
{"type":"IssuerPolicy","id":"http://example.com/policies/credential/4","profile":"http://example.com/profiles/credential","prohibition":[{"assigner":"https://example.edu/issuers/14","assignee":"AllVerifiers","target":"http://example.edu/credentials/3732","action":["Archival"]}]}RefreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential.
{"type":"ManualRefreshService2018","id":"https://example.edu/refresh/3732"}Evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.
{"type":["DocumentVerification"],"id":"https://example.edu/evidence/f2aeec97-fc0d-42bf-8ca7-0548192d4231","verifier":"https://example.edu/issuers/14","evidenceDocument":"DriversLicense","subjectPresence":"Physical","documentPresence":"Physical","licenseNumber":"123AB4567"}Select the type of accreditation to be issued.
Input fields for the creating a Verifiable Accreditation.
DID of the Verifiable Accreditation issuer. This needs to be a did:cheqd DID.
did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0DID of the Verifiable Accreditation holder/subject. This needs to be a did:cheqd DID.
did:cheqd:testnet:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doKUnique name of the Verifiable Accreditation.
JSON object containing the attributes to be included in the Accreditation.
Optional properties to be included in the @context property of the Accreditation.
["https://schema.org/schema.jsonld","https://veramo.io/contexts/profile/v1"]DID URL of the parent Verifiable Accreditation, required for accredit/attest operation.
DID URL of the root Verifiable Accreditation, required for accredit/attest operation.
Name or Type of the Trust Framework, required for authorize operation.
Url of the Trust Framework, required for authorize operation.
Optional properties to be included in the type property of the Accreditation.
["Person"]Optional expiration date according to the <a href=https://www.w3.org/TR/vc-data-model/#expiration> VC Data Model specification.
2023-06-08T13:49:28.000ZFormat of the Verifiable Accreditation. Defaults to VC-JWT.
jwtPossible values: Terms of use can be utilized by an issuer or a holder to communicate the terms under which a verifiable credential was issued.
{"type":"IssuerPolicy","id":"http://example.com/policies/credential/4","profile":"http://example.com/profiles/credential","prohibition":[{"assigner":"https://example.edu/issuers/14","assignee":"AllVerifiers","target":"http://example.edu/credentials/3732","action":["Archival"]}]}RefreshService property MUST be one or more refresh services that provides enough information to the recipient's software such that the recipient can refresh the verifiable credential.
{"type":"ManualRefreshService2018","id":"https://example.edu/refresh/3732"}Evidence property MUST be one or more evidence schemes providing enough information for a verifier to determine whether the evidence gathered by the issuer meets its confidence requirements for relying on the credential.
{"type":["DocumentVerification"],"id":"https://example.edu/evidence/f2aeec97-fc0d-42bf-8ca7-0548192d4231","verifier":"https://example.edu/issuers/14","evidenceDocument":"DriversLicense","subjectPresence":"Physical","documentPresence":"Physical","licenseNumber":"123AB4567"}The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
GET /resource/search/{did} HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Accept: */*
{}GET /did/search/{did} HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Accept: */*
{
"@context": "https://w3id.org/did-resolution/v1",
"didDidResolutionMetadata": {
"contentType": "application/did+ld+json",
"retrieved": "2021-09-01T12:00:00Z",
"did": {
"didString": "did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47",
"method": "cheqd",
"methodSpecificId": "55dbc8bf-fba3-4117-855c-1e0dc1d3bb47"
}
},
"didDocument": {
"@context": [
"https://www.w3.org/ns/did/v1"
],
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0",
"controller": [
"did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0"
],
"verificationMethod": [
{
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1",
"type": "Ed25519VerificationKey2018",
"controller": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0",
"publicKeyBase58": "z6MkkVbyHJLLjdjU5B62DaJ4mkdMdUkttf9UqySSkA9bVTeZ"
}
],
"authentication": [
"did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1"
],
"service": [
{
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1",
"type": "LinkedDomains",
"serviceEndpoint": [
"https://example.com"
]
}
]
},
"didDocumentMetadata": {
"created": "2021-09-01T12:00:00Z",
"deactivated": false,
"updated": "2021-09-10T12:00:00Z",
"versionId": "3ccde6ba-6ba5-56f2-9f4f-8825561a9860",
"linkedResourceMetadata": [
{
"resourceURI": "did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47/resources/398cee0a-efac-4643-9f4c-74c48c72a14b",
"resourceCollectionId": "55dbc8bf-fba3-4117-855c-1e0dc1d3bb47",
"resourceId": "398cee0a-efac-4643-9f4c-74c48c72a14b",
"resourceName": "cheqd-issuer-logo",
"resourceType": "CredentialArtwork",
"mediaType": "image/png",
"resourceVersion": "1.0",
"checksum": "a95380f460e63ad939541a57aecbfd795fcd37c6d78ee86c885340e33a91b559",
"created": "2021-09-01T12:00:00Z",
"nextVersionId": "d4829ac7-4566-478c-a408-b44767eddadc",
"previousVersionId": "ad7a8442-3531-46eb-a024-53953ec6e4ff"
}
]
}
}{
"kid": "text",
"type": "Ed25519",
"publicKeyHex": "text"
}POST /key/create HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Accept: */*
{
"found": true,
"resource": {
"StatusList2021": {
"encodedList": "H4sIAAAAAAAAA-3BAQ0AAADCoPdPbQ8HFAAAAAAAAAAAAAAAAAAAAADwaDhDr_xcRAAA",
"type": "StatusList2021Revocation",
"validFrom": "2023-06-26T11:45:19.349Z"
},
"metadata": {
"type": "StatusList2021Revocation",
"encoding": "base64url",
"encrypted": false
}
},
"resourceMetadata": {
"resourceURI": "did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e/resources/5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceCollectionId": "7c2b990c-3d05-4ebf-91af-f4f4d0091d2e",
"resourceId": "5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceName": "cheqd-employee-credentials",
"resourceType": "StatusList2021Revocation",
"mediaType": "application/json",
"resourceVersion": "1.0.0",
"created": "2023-06-26T11:45:20Z",
"checksum": "909e22e371a41afbb96c330a97752cf7c8856088f1f937f87decbef06cbe9ca2",
"previousVersionId": null,
"nextVersionId": null
}
}GET /credential-status/search?did=text&listType=StatusList2021&statusPurpose=revocation&statusListName=text HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Accept: */*
POST /key/create HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Accept: */*
{
"kid": "text",
"type": "Ed25519",
"publicKeyHex": "text"
}{
"resourceURI": "did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47/resources/398cee0a-efac-4643-9f4c-74c48c72a14b",
"resourceCollectionId": "55dbc8bf-fba3-4117-855c-1e0dc1d3bb47",
"resourceId": "398cee0a-efac-4643-9f4c-74c48c72a14b",
"resourceName": "cheqd-issuer-logo",
"resourceType": "CredentialArtwork",
"mediaType": "image/png",
"resourceVersion": "1.0",
"checksum": "a95380f460e63ad939541a57aecbfd795fcd37c6d78ee86c885340e33a91b559",
"created": "2021-09-01T12:00:00Z",
"nextVersionId": "d4829ac7-4566-478c-a408-b44767eddadc",
"previousVersionId": "ad7a8442-3531-46eb-a024-53953ec6e4ff"
}POST /resource/create/{did} HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 94
"data='SGVsbG8gV29ybGQ='&encoding='base64url'&name='ResourceName'&type='TextDocument'"{
"resourceURI": "did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47/resources/398cee0a-efac-4643-9f4c-74c48c72a14b",
"resourceCollectionId": "55dbc8bf-fba3-4117-855c-1e0dc1d3bb47",
"resourceId": "398cee0a-efac-4643-9f4c-74c48c72a14b",
"resourceName": "cheqd-issuer-logo",
"resourceType": "CredentialArtwork",
"mediaType": "image/png",
"resourceVersion": "1.0",
"checksum": "a95380f460e63ad939541a57aecbfd795fcd37c6d78ee86c885340e33a91b559",
"created": "2021-09-01T12:00:00Z",
"nextVersionId": "d4829ac7-4566-478c-a408-b44767eddadc",
"previousVersionId": "ad7a8442-3531-46eb-a024-53953ec6e4ff"
}POST /resource/create/{did} HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 94
"data='SGVsbG8gV29ybGQ='&encoding='base64url'&name='ResourceName'&type='TextDocument'"GET /did/search/{did} HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Accept: */*
{
"@context": "https://w3id.org/did-resolution/v1",
"didDidResolutionMetadata": {
"contentType": "application/did+ld+json",
"retrieved": "2021-09-01T12:00:00Z",
"did": {
"didString": "did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47",
"method": "cheqd",
"methodSpecificId": "55dbc8bf-fba3-4117-855c-1e0dc1d3bb47"
}
},
"didDocument": {
"@context": [
"https://www.w3.org/ns/did/v1"
],
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0",
"controller": [
"did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0"
],
"verificationMethod": [
{
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1",
"type": "Ed25519VerificationKey2018",
"controller": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0",
"publicKeyBase58": "z6MkkVbyHJLLjdjU5B62DaJ4mkdMdUkttf9UqySSkA9bVTeZ"
}
],
"authentication": [
"did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1"
],
"service": [
{
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1",
"type": "LinkedDomains",
"serviceEndpoint": [
"https://example.com"
]
}
]
},
"didDocumentMetadata": {
"created": "2021-09-01T12:00:00Z",
"deactivated": false,
"updated": "2021-09-10T12:00:00Z",
"versionId": "3ccde6ba-6ba5-56f2-9f4f-8825561a9860",
"linkedResourceMetadata": [
{
"resourceURI": "did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47/resources/398cee0a-efac-4643-9f4c-74c48c72a14b",
"resourceCollectionId": "55dbc8bf-fba3-4117-855c-1e0dc1d3bb47",
"resourceId": "398cee0a-efac-4643-9f4c-74c48c72a14b",
"resourceName": "cheqd-issuer-logo",
"resourceType": "CredentialArtwork",
"mediaType": "image/png",
"resourceVersion": "1.0",
"checksum": "a95380f460e63ad939541a57aecbfd795fcd37c6d78ee86c885340e33a91b559",
"created": "2021-09-01T12:00:00Z",
"nextVersionId": "d4829ac7-4566-478c-a408-b44767eddadc",
"previousVersionId": "ad7a8442-3531-46eb-a024-53953ec6e4ff"
}
]
}
}{
"checked": true,
"revoked": false
}{
"checked": true,
"revoked": false
}{
"checked": true,
"revoked": false
}POST /credential-status/check?listType=StatusList2021&statusPurpose=revocation HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 201
"did='https://example.com'&statusListName='text'&index=1&indices=[1]&indexRangeStart=1&indexRangeEnd=1&statusListCredential='text'&statusSize=2&statusMessage=[]&makeFeePayment=true"POST /credential-status/check?listType=StatusList2021&statusPurpose=revocation HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 201
"did='https://example.com'&statusListName='text'&index=1&indices=[1]&indexRangeStart=1&indexRangeEnd=1&statusListCredential='text'&statusSize=2&statusMessage=[]&makeFeePayment=true"POST /credential-status/check?listType=StatusList2021&statusPurpose=revocation HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 201
"did='https://example.com'&statusListName='text'&index=1&indices=[1]&indexRangeStart=1&indexRangeEnd=1&statusListCredential='text'&statusSize=2&statusMessage=[]&makeFeePayment=true"{
"updated": true,
"revoked": true,
"resource": {
"StatusList2021": {
"encodedList": "496fdfbeb745b4db03fcdb40566f9c4c4a1c0f184b31255e641b6e7bdfb9b6946c12be87ca3763be0393c00b67ac1e8737c106b32f46ef59c765754415b5e8cc7c65fccaa3374620430ea476301a5e0dd63340e7a27a68bc627518471f22e4a2",
"type": "StatusList2021Revocation",
"validFrom": "2023-06-26T11:45:19.349Z"
},
"metadata": {
"type": "StatusList2021Revocation",
"encoding": "base64url",
"encrypted": true,
"encryptedSymmetricKey": "b11182dc524b8181f9a6aef4c4ad0a1c14e40033b9112dffd8d1bcf6cc3b85abc07ded2205ee94068a99f4202502cb0855f322583fa6ce1534d3a05bf36891766ea2c5f90a982b3040680762977d404d758a2370224a239c8279aa7d21e980931c42055b17ca4c7dbffa4782480a8b6279cf989b2f166d5fdb4b2c1b5a63927200000000000000203018dcaba26df45a415bb599218b27ca853a70289d7a3ed3ed0e3730452e8f8d9af91b6e71312565d2c069341f6660ab",
"paymentConditions": [
{
"feePaymentAddress": "cheqd1qs0nhyk868c246defezhz5eymlt0dmajna2csg",
"feePaymentAmount": "20000000000ncheq",
"intervalInSeconds": 600,
"type": "timelockPayment"
}
]
},
"resourceMetadata": {
"resourceURI": "did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e/resources/5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceCollectionId": "7c2b990c-3d05-4ebf-91af-f4f4d0091d2e",
"resourceId": "5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceName": "cheqd-revocation-encrypted-1",
"resourceType": "StatusList2021Revocation",
"mediaType": "application/json",
"resourceVersion": "2023-06-26T11:45:19.349Z",
"created": "2023-06-26T11:45:20Z",
"checksum": "909e22e371a41afbb96c330a97752cf7c8856088f1f937f87decbef06cbe9ca2",
"previousVersionId": null,
"nextVersionId": null
},
"symmetricKey": "dfe204ee95ae74ea5d74b94c3d8ff782273905b07fbc9f8c3d961c3b43849f18"
}
}{
"updated": true,
"revoked": true,
"resource": {
"StatusList2021": {
"encodedList": "496fdfbeb745b4db03fcdb40566f9c4c4a1c0f184b31255e641b6e7bdfb9b6946c12be87ca3763be0393c00b67ac1e8737c106b32f46ef59c765754415b5e8cc7c65fccaa3374620430ea476301a5e0dd63340e7a27a68bc627518471f22e4a2",
"type": "StatusList2021Revocation",
"validFrom": "2023-06-26T11:45:19.349Z"
},
"metadata": {
"type": "StatusList2021Revocation",
"encoding": "base64url",
"encrypted": true,
"encryptedSymmetricKey": "b11182dc524b8181f9a6aef4c4ad0a1c14e40033b9112dffd8d1bcf6cc3b85abc07ded2205ee94068a99f4202502cb0855f322583fa6ce1534d3a05bf36891766ea2c5f90a982b3040680762977d404d758a2370224a239c8279aa7d21e980931c42055b17ca4c7dbffa4782480a8b6279cf989b2f166d5fdb4b2c1b5a63927200000000000000203018dcaba26df45a415bb599218b27ca853a70289d7a3ed3ed0e3730452e8f8d9af91b6e71312565d2c069341f6660ab",
"paymentConditions": [
{
"feePaymentAddress": "cheqd1qs0nhyk868c246defezhz5eymlt0dmajna2csg",
"feePaymentAmount": "20000000000ncheq",
"intervalInSeconds": 600,
"type": "timelockPayment"
}
]
},
"resourceMetadata": {
"resourceURI": "did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e/resources/5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceCollectionId": "7c2b990c-3d05-4ebf-91af-f4f4d0091d2e",
"resourceId": "5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceName": "cheqd-revocation-encrypted-1",
"resourceType": "StatusList2021Revocation",
"mediaType": "application/json",
"resourceVersion": "2023-06-26T11:45:19.349Z",
"created": "2023-06-26T11:45:20Z",
"checksum": "909e22e371a41afbb96c330a97752cf7c8856088f1f937f87decbef06cbe9ca2",
"previousVersionId": null,
"nextVersionId": null
},
"symmetricKey": "dfe204ee95ae74ea5d74b94c3d8ff782273905b07fbc9f8c3d961c3b43849f18"
}
}POST /credential-status/update/encrypted?listType=StatusList2021&statusAction=text HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 227
"did='https://example.com'&statusListName='text'&indices=[1]&statusListVersion='text'&symmetricKey='text'&feePaymentAddress='cheqd1qs0nhyk868c246defezhz5eymlt0dmajna2csg'&feePaymentAmount=20&feePaymentWindow=10"POST /credential-status/update/encrypted?listType=StatusList2021&statusAction=text HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 227
"did='https://example.com'&statusListName='text'&indices=[1]&statusListVersion='text'&symmetricKey='text'&feePaymentAddress='cheqd1qs0nhyk868c246defezhz5eymlt0dmajna2csg'&feePaymentAmount=20&feePaymentWindow=10"{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://schema.org",
"https://veramo.io/contexts/profile/v1"
],
"credentialSubject": {
"gender": "male",
"id": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
"name": "Bob"
},
"credentialStatus": {
"id": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e?resourceName=cheqd-suspension-1&resourceType=StatusList2021Suspension#20",
"statusIndex": 20,
"statusPurpose": "suspension",
"type": "StatusList2021Entry"
},
"issuanceDate": "2023-06-08T13:49:28.000Z",
"issuer": {
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0"
},
"proof": {
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkaWQ6Y2hlcWQ6dGVzdG5ldDo3YmY4MWEyMC02MzNjLTRjYzctYmM0YS01YTQ1ODAxMDA1ZTAiLCJuYmYiOjE2ODYyMzIxNjgsInN1YiI6ImRpZDprZXk6ejZNa2hhWGdCWkR2b3REa0w1MjU3ZmFpenRpR2lDMlF0S0xHcGJubkVHdGEyZG9LIiwidmMiOnsiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiLCJodHRwczovL3NjaGVtYS5vcmciLCJodHRwczovL3ZlcmFtby5pby9jb250ZXh0cy9wcm9maWxlL3YxIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImdlbmRlciI6Im1hbGUiLCJuYW1lIjoiQm9iIn0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJQZXJzb24iXX19.wMfdR6RtyAZA4eoWya5Aw97wwER2Cm5Guk780Xw8H9fA3sfudIJeLRLboqixpTchqSbYeA7KbuCTAnLgXTD_Cg",
"type": "JwtProof2020"
},
"type": [
"VerifiableCredential",
"Person"
]
}POST /trust-registry/accreditation/issue?accreditationType=authorize HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 955
"issuerDid='did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0'&subjectDid='did:cheqd:testnet:2582fe17-9b25-45e4-8104-1cfca430f0c3'&schemas=[{'type':'MuseumPassCredential','url':'https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018'}]&format='jwt'&accreditationName='authorizeAccreditation'&trustFramework='https://learn.cheqd.io/governance/start'&trustFrameworkId='cheqd Governance Framework'&parentAccreditation='did:cheqd:testnet:15b74787-6e48-4fd5-8020-eab24e990578?resourceName=accreditAccreditation&resourceType=VerifiableAccreditationToAccredit'&rootAuthorization='did:cheqd:testnet:5RpEg66jhhbmASWPXJRWrA?resourceName=authorizeAccreditation&resourceType=VerifiableAuthorizationForTrustChain'&credentialStatus={'statusPurpose':'revocation','statusListName':'employee-credentials','statusListIndex':10}"POST /credential/issue HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 398
"issuerDid='did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0'&subjectDid='did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK'&attributes={'gender':'male','name':'Bob'}&@context=['https://schema.org']&type=['Person']&format='jwt'&credentialStatus={'statusPurpose':'revocation','statusListName':'employee-credentials','statusListIndex':10,'statusListType':'StatusList2021'}"POST /credential/issue HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 398
"issuerDid='did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0'&subjectDid='did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK'&attributes={'gender':'male','name':'Bob'}&@context=['https://schema.org']&type=['Person']&format='jwt'&credentialStatus={'statusPurpose':'revocation','statusListName':'employee-credentials','statusListIndex':10,'statusListType':'StatusList2021'}"{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://schema.org",
"https://veramo.io/contexts/profile/v1"
],
"credentialSubject": {
"gender": "male",
"id": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
"name": "Bob"
},
"credentialStatus": {
"id": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e?resourceName=cheqd-suspension-1&resourceType=StatusList2021Suspension#20",
"statusIndex": 20,
"statusPurpose": "suspension",
"type": "StatusList2021Entry"
},
"issuanceDate": "2023-06-08T13:49:28.000Z",
"issuer": {
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0"
},
"proof": {
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkaWQ6Y2hlcWQ6dGVzdG5ldDo3YmY4MWEyMC02MzNjLTRjYzctYmM0YS01YTQ1ODAxMDA1ZTAiLCJuYmYiOjE2ODYyMzIxNjgsInN1YiI6ImRpZDprZXk6ejZNa2hhWGdCWkR2b3REa0w1MjU3ZmFpenRpR2lDMlF0S0xHcGJubkVHdGEyZG9LIiwidmMiOnsiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiLCJodHRwczovL3NjaGVtYS5vcmciLCJodHRwczovL3ZlcmFtby5pby9jb250ZXh0cy9wcm9maWxlL3YxIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImdlbmRlciI6Im1hbGUiLCJuYW1lIjoiQm9iIn0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJQZXJzb24iXX19.wMfdR6RtyAZA4eoWya5Aw97wwER2Cm5Guk780Xw8H9fA3sfudIJeLRLboqixpTchqSbYeA7KbuCTAnLgXTD_Cg",
"type": "JwtProof2020"
},
"type": [
"VerifiableCredential",
"Person"
]
}{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://schema.org",
"https://veramo.io/contexts/profile/v1"
],
"credentialSubject": {
"gender": "male",
"id": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
"name": "Bob"
},
"credentialStatus": {
"id": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e?resourceName=cheqd-suspension-1&resourceType=StatusList2021Suspension#20",
"statusIndex": 20,
"statusPurpose": "suspension",
"type": "StatusList2021Entry"
},
"issuanceDate": "2023-06-08T13:49:28.000Z",
"issuer": {
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0"
},
"proof": {
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkaWQ6Y2hlcWQ6dGVzdG5ldDo3YmY4MWEyMC02MzNjLTRjYzctYmM0YS01YTQ1ODAxMDA1ZTAiLCJuYmYiOjE2ODYyMzIxNjgsInN1YiI6ImRpZDprZXk6ejZNa2hhWGdCWkR2b3REa0w1MjU3ZmFpenRpR2lDMlF0S0xHcGJubkVHdGEyZG9LIiwidmMiOnsiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiLCJodHRwczovL3NjaGVtYS5vcmciLCJodHRwczovL3ZlcmFtby5pby9jb250ZXh0cy9wcm9maWxlL3YxIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImdlbmRlciI6Im1hbGUiLCJuYW1lIjoiQm9iIn0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJQZXJzb24iXX19.wMfdR6RtyAZA4eoWya5Aw97wwER2Cm5Guk780Xw8H9fA3sfudIJeLRLboqixpTchqSbYeA7KbuCTAnLgXTD_Cg",
"type": "JwtProof2020"
},
"type": [
"VerifiableCredential",
"Person"
]
}The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
Verifiable Credential to be verified as a VC-JWT string or a JSON object.
Policy to skip the issuanceDate (nbf) timestamp check when set to false.
truePolicy to skip the expirationDate (exp) timestamp check when set to false.
truePolicy to skip the audience check when set to false.
falsePolicy to also check other providers when set to true.
falseThe request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
Verifiable Presentation to be verified as a VP-JWT string or a JSON object.
Provide an optional verifier DID (also known as 'domain' parameter), if the verifier DID in the presentation is not managed in the wallet.
Automatically make fee payment (if required) based on payment conditions to unlock encrypted StatusList2021 or BitstringStatusList DID-Linked Resource.
falsePolicy to skip the issuanceDate (nbf) timestamp check when set to false.
truePolicy to skip the expirationDate (exp) timestamp check when set to false.
truePolicy to skip the audience check when set to false.
falseThe request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
DID of the StatusList2021 or BitstringStatusList publisher.
The name of the StatusList2021 or BitstringStatusList DID-Linked Resource to be created.
The length of the status list to be created. The default and minimum length is 131072 which is 16kb.
131072The encoding format of the StatusList2021 or BitstringStatusList (only base64url supported) DiD-Linked Resource to be created.
base64urlPossible values: Optional field to assign a human-readable version in the StatusList2021 or BitstringStatusList DID-Linked Resource.
Only for BitstringStatusList: bits per credential, used to support multiple status in same list.
Category of credentials this status list is for.
0x0validOnly for BitstringStatusList: Time to Live in Miliseconds (not expiry).
URI where the DID-Linked Resource can be fetched from. Can be any type of URI (e.g., DID, HTTPS, IPFS, etc.)
Optional description of the URI.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
InvalidRequestAccess token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
The request was successful.
A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
No content
Access token is missing or invalid
An internal error has occurred. Additional state information plus metadata may be available in the response body.
POST /credential-status/update/encrypted?listType=StatusList2021&statusAction=text HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 227
"did='https://example.com'&statusListName='text'&indices=[1]&statusListVersion='text'&symmetricKey='text'&feePaymentAddress='cheqd1qs0nhyk868c246defezhz5eymlt0dmajna2csg'&feePaymentAmount=20&feePaymentWindow=10"POST /trust-registry/accreditation/verify HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 500
"subjectDid='did:cheqd:testnet:5efa5126-c070-420f-a9c2-d22ae6eefb92'&didUrl='did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e?resourceName=cheqd-issuer-logo&resourceType=CredentialArtwork'&did='did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e'&resourceId='398cee0a-efac-4643-9f4c-74c48c72a14b'&resourceName='cheqd-issuer-logo'&resourceType='CredentialArtwork'&schemas=[{'types':['text'],'url':'text'}]&policies={'issuanceDate':true,'expirationDate':true,'audience':false}"POST /credential-status/update/unencrypted?listType=StatusList2021&statusAction=text HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 143
"did='did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e'&statusListName='cheqd-employee-credentials'&indices=[10,3199,12109,130999]"POST /credential/verify HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 119
"credential={}&policies={'issuanceDate':true,'expirationDate':true,'audience':false,'checkExternalProvider':false}"POST /presentation/verify HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 135
"presentation={}&verifierDid='text'&makeFeePayment=false&policies={'issuanceDate':true,'expirationDate':true,'audience':false}"POST /credential/revoke?listType=StatusList2021&publish=true HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 39
"credential={}&symmetricKey='text'"POST /did/deactivate/{did} HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 26
"publicKeyHexs=['text']"POST /resource/create/{did} HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 94
"data='SGVsbG8gV29ybGQ='&encoding='base64url'&name='ResourceName'&type='TextDocument'"POST /credential/suspend?listType=StatusList2021 HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 39
"credential={}&symmetricKey='text'"POST /credential/reinstate?listType=StatusList2021 HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 39
"credential={}&symmetricKey='text'"POST /did/update HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 1436
"did='did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0'&service=[{'id':'did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1','type':'LinkedDomains','serviceEndpoint':['https://example.com'],'priority':0,'recipientKeys':['did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1'],'routingKeys':['did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-2'],'accept':['didcomm/aip2;env=rfc587']}]&verificationMethod=[{'controller':'did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0','id':'did:cheqd:testnet :7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1','publicKeyBase58':'BTJiso1S4iSiReP6wGksSneGfiKHxz9SYcm2KknpqBJt','type':'Ed25519VerificationKey2018'}]&authentication=['text']&publicKeyHexs=['text']&didDocument={'@context':['https://www.w3.org/ns/did/v1'],'id':'did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0','controller':['did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0'],'verificationMethod':[{'id':'did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1','type':'Ed25519VerificationKey2018','controller':'did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0','publicKeyBase58':'z6MkkVbyHJLLjdjU5B62DaJ4mkdMdUkttf9UqySSkA9bVTeZ'}],'authentication':['did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1'],'service':[{'id':'did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1','type':'LinkedDomains','serviceEndpoint':['https://example.com']}]}"POST /credential-status/check?listType=StatusList2021&statusPurpose=revocation HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 201
"did='https://example.com'&statusListName='text'&index=1&indices=[1]&indexRangeStart=1&indexRangeEnd=1&statusListCredential='text'&statusSize=2&statusMessage=[]&makeFeePayment=true"POST /credential-status/create/unencrypted?listType=StatusList2021&statusPurpose=revocation HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 149
"did='did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e'&statusListName='cheqd-employee-credentials'&length=140000&encoding='base64url'"{
"created": true,
"resource": {
"StatusList2021": {
"encodedList": "H4sIAAAAAAAAA-3BAQ0AAADCoPdPbQ8HFAAAAAAAAAAAAAAAAAAAAADwaDhDr_xcRAAA",
"type": "StatusList2021Revocation",
"validFrom": "2023-06-26T11:45:19.349Z"
},
"metadata": {
"type": "StatusList2021Revocation",
"encoding": "base64url",
"encrypted": false
}
},
"resourceMetadata": {
"resourceURI": "did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e/resources/5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceCollectionId": "7c2b990c-3d05-4ebf-91af-f4f4d0091d2e",
"resourceId": "5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceName": "cheqd-employee-credentials",
"resourceType": "StatusList2021Revocation",
"mediaType": "application/json",
"resourceVersion": "1.0.0",
"created": "2023-06-26T11:45:20Z",
"checksum": "909e22e371a41afbb96c330a97752cf7c8856088f1f937f87decbef06cbe9ca2",
"previousVersionId": null,
"nextVersionId": null
}
}POST /credential-status/create/unencrypted?listType=StatusList2021&statusPurpose=revocation HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 149
"did='did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e'&statusListName='cheqd-employee-credentials'&length=140000&encoding='base64url'"POST /credential/issue HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 398
"issuerDid='did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0'&subjectDid='did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK'&attributes={'gender':'male','name':'Bob'}&@context=['https://schema.org']&type=['Person']&format='jwt'&credentialStatus={'statusPurpose':'revocation','statusListName':'employee-credentials','statusListIndex':10,'statusListType':'StatusList2021'}"POST /did/create HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 286
"network='testnet'&providerId='text'&identifierFormatType='uuid'&verificationMethodType='Ed25519VerificationKey2018'&service=[{'idFragment':'service-1','type':'LinkedDomains','serviceEndpoint':['https://example.com']}]&key='text'&@context=['https://www.w3.org/ns/did/v1']"POST /trust-registry/accreditation/issue?accreditationType=authorize HTTP/1.1
Host: studio-api.cheqd.net
x-api-key: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 955
"issuerDid='did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0'&subjectDid='did:cheqd:testnet:2582fe17-9b25-45e4-8104-1cfca430f0c3'&schemas=[{'type':'MuseumPassCredential','url':'https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018'}]&format='jwt'&accreditationName='authorizeAccreditation'&trustFramework='https://learn.cheqd.io/governance/start'&trustFrameworkId='cheqd Governance Framework'&parentAccreditation='did:cheqd:testnet:15b74787-6e48-4fd5-8020-eab24e990578?resourceName=accreditAccreditation&resourceType=VerifiableAccreditationToAccredit'&rootAuthorization='did:cheqd:testnet:5RpEg66jhhbmASWPXJRWrA?resourceName=authorizeAccreditation&resourceType=VerifiableAuthorizationForTrustChain'&credentialStatus={'statusPurpose':'revocation','statusListName':'employee-credentials','statusListIndex':10}"{
"updated": true,
"revoked": true,
"resource": {
"StatusList2021": {
"encodedList": "496fdfbeb745b4db03fcdb40566f9c4c4a1c0f184b31255e641b6e7bdfb9b6946c12be87ca3763be0393c00b67ac1e8737c106b32f46ef59c765754415b5e8cc7c65fccaa3374620430ea476301a5e0dd63340e7a27a68bc627518471f22e4a2",
"type": "StatusList2021Revocation",
"validFrom": "2023-06-26T11:45:19.349Z"
},
"metadata": {
"type": "StatusList2021Revocation",
"encoding": "base64url",
"encrypted": true,
"encryptedSymmetricKey": "b11182dc524b8181f9a6aef4c4ad0a1c14e40033b9112dffd8d1bcf6cc3b85abc07ded2205ee94068a99f4202502cb0855f322583fa6ce1534d3a05bf36891766ea2c5f90a982b3040680762977d404d758a2370224a239c8279aa7d21e980931c42055b17ca4c7dbffa4782480a8b6279cf989b2f166d5fdb4b2c1b5a63927200000000000000203018dcaba26df45a415bb599218b27ca853a70289d7a3ed3ed0e3730452e8f8d9af91b6e71312565d2c069341f6660ab",
"paymentConditions": [
{
"feePaymentAddress": "cheqd1qs0nhyk868c246defezhz5eymlt0dmajna2csg",
"feePaymentAmount": "20000000000ncheq",
"intervalInSeconds": 600,
"type": "timelockPayment"
}
]
},
"resourceMetadata": {
"resourceURI": "did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e/resources/5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceCollectionId": "7c2b990c-3d05-4ebf-91af-f4f4d0091d2e",
"resourceId": "5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceName": "cheqd-revocation-encrypted-1",
"resourceType": "StatusList2021Revocation",
"mediaType": "application/json",
"resourceVersion": "2023-06-26T11:45:19.349Z",
"created": "2023-06-26T11:45:20Z",
"checksum": "909e22e371a41afbb96c330a97752cf7c8856088f1f937f87decbef06cbe9ca2",
"previousVersionId": null,
"nextVersionId": null
},
"symmetricKey": "dfe204ee95ae74ea5d74b94c3d8ff782273905b07fbc9f8c3d961c3b43849f18"
}
}{
"verified": true,
"issuer": "text",
"signer": {},
"jwt": "text",
"verifiableCredential": {},
"accreditorDids": [
"text"
],
"rootAuthorization": {},
"termsOfUse": {
"type": "text",
"trustFrameworkId": "text",
"trustFramework": "text"
}
}{
"updated": true,
"revoked": true,
"resource": {
"StatusList2021": {
"encodedList": "H4sIAAAAAAAAA-3BAQ0AAADCoPdPbQ8HFAAAAAAAAAAAAAAAAAAAAADwaDhDr_xcRAAA",
"type": "StatusList2021Revocation",
"validFrom": "2023-06-26T11:45:19.349Z"
},
"metadata": {
"type": "StatusList2021Revocation",
"encoding": "base64url",
"encrypted": false
}
},
"resourceMetadata": {
"resourceURI": "did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e/resources/5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceCollectionId": "7c2b990c-3d05-4ebf-91af-f4f4d0091d2e",
"resourceId": "5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceName": "cheqd-employee-credentials",
"resourceType": "StatusList2021Revocation",
"mediaType": "application/json",
"resourceVersion": "1.0.0",
"created": "2023-06-26T11:45:20Z",
"checksum": "909e22e371a41afbb96c330a97752cf7c8856088f1f937f87decbef06cbe9ca2",
"previousVersionId": null,
"nextVersionId": null
}
}{
"verified": true,
"polices": {},
"issuer": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0",
"signer": {
"controller": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0",
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1",
"publicKeyBase58": "BTJiso1S4iSiReP6wGksSneGfiKHxz9SYcm2KknpqBJt",
"type": "Ed25519VerificationKey2018"
}
}{
"verified": true,
"issuer": "text",
"signer": {},
"jwt": "text",
"verifiableCredential": {}
}{
"revoked": true
}{
"@context": "https://w3id.org/did-resolution/v1",
"didDidResolutionMetadata": {
"contentType": "application/did+ld+json",
"retrieved": "2021-09-01T12:00:00Z",
"did": {
"didString": "did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47",
"method": "cheqd",
"methodSpecificId": "55dbc8bf-fba3-4117-855c-1e0dc1d3bb47"
}
},
"didDocument": {
"@context": [
"https://www.w3.org/ns/did/v1"
],
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0",
"controller": [
"did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0"
],
"verificationMethod": [
{
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1",
"type": "Ed25519VerificationKey2018",
"controller": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0",
"publicKeyBase58": "z6MkkVbyHJLLjdjU5B62DaJ4mkdMdUkttf9UqySSkA9bVTeZ"
}
],
"authentication": [
"did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1"
],
"service": [
{
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1",
"type": "LinkedDomains",
"serviceEndpoint": [
"https://example.com"
]
}
]
},
"didDocumentMetadata": {
"created": "2021-09-01T12:00:00Z",
"deactivated": true,
"updated": "2021-09-10T12:00:00Z",
"versionId": "3ccde6ba-6ba5-56f2-9f4f-8825561a9860",
"linkedResourceMetadata": [
{
"resourceURI": "did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47/resources/398cee0a-efac-4643-9f4c-74c48c72a14b",
"resourceCollectionId": "55dbc8bf-fba3-4117-855c-1e0dc1d3bb47",
"resourceId": "398cee0a-efac-4643-9f4c-74c48c72a14b",
"resourceName": "cheqd-issuer-logo",
"resourceType": "CredentialArtwork",
"mediaType": "image/png",
"resourceVersion": "1.0",
"checksum": "a95380f460e63ad939541a57aecbfd795fcd37c6d78ee86c885340e33a91b559",
"created": "2021-09-01T12:00:00Z",
"nextVersionId": "d4829ac7-4566-478c-a408-b44767eddadc",
"previousVersionId": "ad7a8442-3531-46eb-a024-53953ec6e4ff"
}
]
}
}{
"resourceURI": "did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47/resources/398cee0a-efac-4643-9f4c-74c48c72a14b",
"resourceCollectionId": "55dbc8bf-fba3-4117-855c-1e0dc1d3bb47",
"resourceId": "398cee0a-efac-4643-9f4c-74c48c72a14b",
"resourceName": "cheqd-issuer-logo",
"resourceType": "CredentialArtwork",
"mediaType": "image/png",
"resourceVersion": "1.0",
"checksum": "a95380f460e63ad939541a57aecbfd795fcd37c6d78ee86c885340e33a91b559",
"created": "2021-09-01T12:00:00Z",
"nextVersionId": "d4829ac7-4566-478c-a408-b44767eddadc",
"previousVersionId": "ad7a8442-3531-46eb-a024-53953ec6e4ff"
}{
"suspended": true
}{
"unsuspended": true
}{
"did": "text",
"controllerKeyId": "text",
"keys": [
{}
],
"services": [
{
"id": "did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1",
"type": "LinkedDomains",
"serviceEndpoint": [
"https://example.com"
],
"priority": 0,
"recipientKeys": [
"did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1"
],
"routingKeys": [
"did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-2"
],
"accept": [
"didcomm/aip2;env=rfc587"
]
}
],
"controllerKeyRefs": [
"text"
],
"controllerKeys": [
"text"
]
}{
"checked": true,
"revoked": false
}{
"created": true,
"resource": {
"StatusList2021": {
"encodedList": "H4sIAAAAAAAAA-3BAQ0AAADCoPdPbQ8HFAAAAAAAAAAAAAAAAAAAAADwaDhDr_xcRAAA",
"type": "StatusList2021Revocation",
"validFrom": "2023-06-26T11:45:19.349Z"
},
"metadata": {
"type": "StatusList2021Revocation",
"encoding": "base64url",
"encrypted": false
}
},
"resourceMetadata": {
"resourceURI": "did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e/resources/5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceCollectionId": "7c2b990c-3d05-4ebf-91af-f4f4d0091d2e",
"resourceId": "5945233a-a4b5-422b-b893-eaed5cedd2dc",
"resourceName": "cheqd-employee-credentials",
"resourceType": "StatusList2021Revocation",
"mediaType": "application/json",
"resourceVersion": "1.0.0",
"created": "2023-06-26T11:45:20Z",
"checksum": "909e22e371a41afbb96c330a97752cf7c8856088f1f937f87decbef06cbe9ca2",
"previousVersionId": null,
"nextVersionId": null
}
}{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://schema.org",
"https://veramo.io/contexts/profile/v1"
],
"credentialSubject": {
"gender": "male",
"id": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
"name": "Bob"
},
"credentialStatus": {
"id": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e?resourceName=cheqd-suspension-1&resourceType=StatusList2021Suspension#20",
"statusIndex": 20,
"statusPurpose": "suspension",
"type": "StatusList2021Entry"
},
"issuanceDate": "2023-06-08T13:49:28.000Z",
"issuer": {
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0"
},
"proof": {
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkaWQ6Y2hlcWQ6dGVzdG5ldDo3YmY4MWEyMC02MzNjLTRjYzctYmM0YS01YTQ1ODAxMDA1ZTAiLCJuYmYiOjE2ODYyMzIxNjgsInN1YiI6ImRpZDprZXk6ejZNa2hhWGdCWkR2b3REa0w1MjU3ZmFpenRpR2lDMlF0S0xHcGJubkVHdGEyZG9LIiwidmMiOnsiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiLCJodHRwczovL3NjaGVtYS5vcmciLCJodHRwczovL3ZlcmFtby5pby9jb250ZXh0cy9wcm9maWxlL3YxIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImdlbmRlciI6Im1hbGUiLCJuYW1lIjoiQm9iIn0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJQZXJzb24iXX19.wMfdR6RtyAZA4eoWya5Aw97wwER2Cm5Guk780Xw8H9fA3sfudIJeLRLboqixpTchqSbYeA7KbuCTAnLgXTD_Cg",
"type": "JwtProof2020"
},
"type": [
"VerifiableCredential",
"Person"
]
}{
"did": "text",
"controllerKeyId": "text",
"keys": [
{}
],
"services": [
{
"id": "did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1",
"type": "LinkedDomains",
"serviceEndpoint": [
"https://example.com"
],
"priority": 0,
"recipientKeys": [
"did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1"
],
"routingKeys": [
"did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-2"
],
"accept": [
"didcomm/aip2;env=rfc587"
]
}
]
}{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://schema.org",
"https://veramo.io/contexts/profile/v1"
],
"credentialSubject": {
"gender": "male",
"id": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
"name": "Bob"
},
"credentialStatus": {
"id": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:7c2b990c-3d05-4ebf-91af-f4f4d0091d2e?resourceName=cheqd-suspension-1&resourceType=StatusList2021Suspension#20",
"statusIndex": 20,
"statusPurpose": "suspension",
"type": "StatusList2021Entry"
},
"issuanceDate": "2023-06-08T13:49:28.000Z",
"issuer": {
"id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0"
},
"proof": {
"jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJkaWQ6Y2hlcWQ6dGVzdG5ldDo3YmY4MWEyMC02MzNjLTRjYzctYmM0YS01YTQ1ODAxMDA1ZTAiLCJuYmYiOjE2ODYyMzIxNjgsInN1YiI6ImRpZDprZXk6ejZNa2hhWGdCWkR2b3REa0w1MjU3ZmFpenRpR2lDMlF0S0xHcGJubkVHdGEyZG9LIiwidmMiOnsiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiLCJodHRwczovL3NjaGVtYS5vcmciLCJodHRwczovL3ZlcmFtby5pby9jb250ZXh0cy9wcm9maWxlL3YxIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImdlbmRlciI6Im1hbGUiLCJuYW1lIjoiQm9iIn0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJQZXJzb24iXX19.wMfdR6RtyAZA4eoWya5Aw97wwER2Cm5Guk780Xw8H9fA3sfudIJeLRLboqixpTchqSbYeA7KbuCTAnLgXTD_Cg",
"type": "JwtProof2020"
},
"type": [
"VerifiableCredential",
"Person"
]
}DID to update
did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86Pattern: ^(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})([?][^#]*)?)$Authentication Methods
DID Document controllers
DID ID
did:example:123Service ID
did:example:123#service-1Array of Service endpoints
Service Type
MessagingServiceVerification controller DID
Verification Method ID
did:example:123#key-1Public Key in base58 format
B12NYF8RZ5Zk..Public Key in Jwk format
{"crv":"Ed25519","kty":"OKP","x":"G6t3iUB8..."}Public Key in multibase format
z6Mk...Type of Verification Method
Ed25519VerificationKey2018Additional configuration options
{"network":"testnet"}Auto-accept connection (defaults to configuration)
Create unique DID for this invitation (default false)
Create invitation for multiple use (default false)
Connection identifier
{"value":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}Number of results to return
{"value":50}Offset for pagination
{"value":0}Role assigned in credential exchange
Credential exchange state
Thread identifier
{"value":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}Credential exchange identifier
{"value":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}Pattern: [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)
Holder DID to substitute for the credentialSubject.id
did:key:ahsdkjahsdkjhaskjdhakjshdkajhsdkjahsCredential exchange identifier
{"value":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}Pattern: [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}Connection identifier
{"value":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}Number of results to return
{"value":50}Offset for pagination
{"value":0}Role assigned in presentation exchange
Presentation exchange state
Thread identifier
{"value":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}Presentation exchange identifier
{"value":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}Pattern: [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}Maximum number to retrieve
{"value":"1"}Pattern: ^[1-9][0-9]*$(JSON) object mapping referents to extra WQL queries
{"value":"{\"0_drink_uuid\": {\"attr::drink::value\": \"martini\"}}"}Pattern: ^{\s*".*?"\s*:\s*{.*?}\s*(,\s*".*?"\s*:\s*{.*?}\s*)*\s*}$Proof request referents of interest, comma-separated
{"value":"1_name_uuid,2_score_uuid"}Start index
{"value":"0"}Pattern: ^[0-9]*$Presentation exchange identifier
{"value":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}Pattern: [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}Wallet credential identifier (typically but not necessarily a UUID)
3fa85f64-5717-4562-b3fc-2c963f66afa6Whether to reveal attribute in proof (default true)
Wallet credential identifier (typically but not necessarily a UUID)
3fa85f64-5717-4562-b3fc-2c963f66afa6Epoch timestamp of interest for non-revocation proof
1640995199Self-attested attribute values to use in requested-credentials structure for proof construction
self_attested_valueWhether to trace event (default false)
Whether to remove the presentation exchange record on completion (overrides --preserve-exchange-records configuration setting)
Issuer identifier to sign the presentation, if different from current public DID
Unique Resource Identifier
3fa85f64-5717-4562-b3fc-2c963f66afa6Pattern: [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}Const
Enum
ExclusiveMaximum
ExclusiveMinimum
Format
Max Length
1234Maximum
Min Length
1234Minimum
Not
Pattern
Type
ID
Path
Preference
Purpose
Preference
FieldID
LimitDisclosure
SubjectIsIssuer
Group
ID
Metadata dictionary
Name
Purpose
oneOf
Required
URI
Human-friendly name that describes what the presentation definition pertains to
Describes the purpose for which the Presentation Definition's inputs are being requested
Count Value
1234From
Count Value
1234From
Max Value
1234Min Value
1234Name
Purpose
Selection
Max Value
1234Min Value
1234Name
Purpose
Selection
Mapping of input_descriptor id to list of stored W3C credential record_id
{"<input descriptor id_1>":["<record id_1>","<record id_2>"],"<input descriptor id_2>":["<record id>"]}reveal doc [JSON-LD frame] dict used to derive the credential when selective disclosure is required
{"@context":["https://www.w3.org/2018/credentials/v1","https://w3id.org/security/bbs/v1"],"@explicit":true,"@requireAll":true,"credentialSubject":{"@explicit":true,"@requireAll":true,"Observation":[{"effectiveDateTime":{},"@explicit":true,"@requireAll":true}]},"issuanceDate":{},"issuer":{},"type":["VerifiableCredential","LabReport"]}Wallet credential identifier (typically but not necessarily a UUID)
3fa85f64-5717-4562-b3fc-2c963f66afa6Whether to reveal attribute in proof (default true)
Wallet credential identifier (typically but not necessarily a UUID)
3fa85f64-5717-4562-b3fc-2c963f66afa6Epoch timestamp of interest for non-revocation proof
1640995199Self-attested attribute values to use in requested-credentials structure for proof construction
self_attested_valueWhether to trace event (default false)
Record trace information, based on agent configuration
Additional features to enable for the did.
{}Additional configuration options
{"key_type":"ed25519","method_specific_id_algo":"uuid","network":"testnet"}DID of interest
{"value":"did:peer:WgWxqztrNooG92RXvxSTWv"}Pattern: ^(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.
{"value":"ed25519"}Possible values: DID method to query for. e.g. sov to only fetch indy/sov DIDs
{"value":"key"}Whether DID is current public DID, posted to ledger but current public DID, or local to the wallet
{"value":"wallet_only"}Possible values: Verification key of interest
{"value":"H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"}Pattern: ^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$List of mime type in order of preference that should be use in responding to the message
["didcomm/aip1","didcomm/aip2;env=rfc19"]Alias for connection
BarryAttachment identifier
attachment-0Attachment type
present-proofPossible values: A self-attested string that the receiver may want to display to the user about the context-specific goal of the out-of-band message
To issue a Faber College Graduate credentialA self-attested code the receiver may want to display to the user or use in automatically deciding what to do with the out-of-band message
issue-vcHandshake protocol to specify in invitation
Identifier for active mediation record to be used
3fa85f64-5717-4562-b3fc-2c963f66afa6Pattern: [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}Optional metadata to attach to the connection created with the invitation
Label for connection invitation
Invitation to BarryOOB protocol version
1.1DID to use in invitation
did:example:123DID method to use in invitation
did:peer:2Possible values: Whether to use public DID in invitation
POST /did/cheqd/update HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 720
{
"did": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86",
"didDocument": {
"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..."
}
]
},
"options": {
"network": "testnet"
}
}{
"did": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86",
"didState": {
"did": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86",
"didDocument": {
"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",
"verificationMethod": [
{
"id": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1",
"type": "Ed25519VerificationKey2020",
"controller": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86",
"publicKeyMultibase": "z6Mk..."
}
]
},
"secret": {
"signingResponse": [
{
"kid": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1",
"signature": "SHFz..."
}
]
},
"state": "finished"
},
"success": true
}{
"created_at": "2021-12-31T23:59:59Z",
"invi_msg_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"invitation": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"accept": [
"didcomm/aip1",
"didcomm/aip2;env=rfc19"
],
"goal": "To issue a Faber College Graduate credential",
"goal_code": "issue-vc",
"handshake_protocols": [
"https://didcomm.org/didexchange/1.0"
],
"imageUrl": "http://192.168.56.101/img/logo.jpg",
"label": "Bob",
"requests~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"services": [
{
"did": "WgWxqztrNooG92RXvxSTWv",
"id": "string",
"recipientKeys": [
"did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH"
],
"routingKeys": [
"did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH"
],
"serviceEndpoint": "http://192.168.56.101:8020",
"type": "string"
},
"did:sov:WgWxqztrNooG92RXvxSTWv"
]
},
"invitation_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"invitation_url": "https://example.com/endpoint?c_i=eyJAdHlwZSI6ICIuLi4iLCAiLi4uIjogIi4uLiJ9XX0=",
"oob_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"state": "await_response",
"trace": true,
"updated_at": "2021-12-31T23:59:59Z"
}POST /out-of-band/create-invitation HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 475
{
"accept": [
"didcomm/aip1",
"didcomm/aip2;env=rfc19"
],
"alias": "Barry",
"attachments": [
{
"id": "attachment-0",
"type": "present-proof"
}
],
"goal": "To issue a Faber College Graduate credential",
"goal_code": "issue-vc",
"handshake_protocols": [
"https://didcomm.org/didexchange/1.0"
],
"mediation_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"metadata": {},
"my_label": "Invitation to Barry",
"protocol_version": "1.1",
"use_did": "did:example:123",
"use_did_method": "did:peer:2",
"use_public_did": false
}GET /issue-credential-2.0/records HTTP/1.1
Accept: */*
{
"results": [
{
"cred_ex_record": {
"auto_issue": false,
"auto_offer": false,
"auto_remove": false,
"by_format": {
"cred_issue": {},
"cred_offer": {},
"cred_proposal": {},
"cred_request": {}
},
"connection_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"created_at": "2021-12-31T23:59:59Z",
"cred_ex_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cred_issue": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"credentials~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
],
"replacement_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"cred_offer": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"credential_preview": {
"@type": "issue-credential/2.0/credential-preview",
"attributes": [
{
"mime-type": "image/jpeg",
"name": "favourite_drink",
"value": "martini"
}
]
},
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
],
"offers~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"replacement_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"cred_preview": {
"@type": "issue-credential/2.0/credential-preview",
"attributes": [
{
"mime-type": "image/jpeg",
"name": "favourite_drink",
"value": "martini"
}
]
},
"cred_proposal": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"credential_preview": {
"@type": "issue-credential/2.0/credential-preview",
"attributes": [
{
"mime-type": "image/jpeg",
"name": "favourite_drink",
"value": "martini"
}
]
},
"filters~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
]
},
"cred_request": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
],
"requests~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
]
},
"error_msg": "The front fell off",
"initiator": "self",
"parent_thread_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"role": "issuer",
"state": "done",
"thread_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"trace": true,
"updated_at": "2021-12-31T23:59:59Z"
},
"indy": {
"created_at": "2021-12-31T23:59:59Z",
"cred_ex_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cred_ex_indy_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cred_id_stored": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cred_request_metadata": {},
"cred_rev_id": "12345",
"rev_reg_id": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0",
"state": "active",
"updated_at": "2021-12-31T23:59:59Z"
},
"ld_proof": {
"created_at": "2021-12-31T23:59:59Z",
"cred_ex_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cred_ex_ld_proof_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cred_id_stored": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"state": "active",
"updated_at": "2021-12-31T23:59:59Z"
},
"vc_di": {
"auto_issue": false,
"auto_offer": false,
"auto_remove": false,
"by_format": {
"cred_issue": {},
"cred_offer": {},
"cred_proposal": {},
"cred_request": {}
},
"connection_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"created_at": "2021-12-31T23:59:59Z",
"cred_ex_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cred_issue": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"credentials~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
],
"replacement_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"cred_offer": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"credential_preview": {
"@type": "issue-credential/2.0/credential-preview",
"attributes": [
{
"mime-type": "image/jpeg",
"name": "favourite_drink",
"value": "martini"
}
]
},
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
],
"offers~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"replacement_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"cred_preview": {
"@type": "issue-credential/2.0/credential-preview",
"attributes": [
{
"mime-type": "image/jpeg",
"name": "favourite_drink",
"value": "martini"
}
]
},
"cred_proposal": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"credential_preview": {
"@type": "issue-credential/2.0/credential-preview",
"attributes": [
{
"mime-type": "image/jpeg",
"name": "favourite_drink",
"value": "martini"
}
]
},
"filters~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
]
},
"cred_request": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
],
"requests~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
]
},
"error_msg": "The front fell off",
"initiator": "self",
"parent_thread_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"role": "issuer",
"state": "done",
"thread_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"trace": true,
"updated_at": "2021-12-31T23:59:59Z"
}
}
]
}POST /issue-credential-2.0/records/{cred_ex_id}/send-request HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 80
{
"auto_remove": true,
"holder_did": "did:key:ahsdkjahsdkjhaskjdhakjshdkajhsdkjahs"
}{
"auto_issue": false,
"auto_offer": false,
"auto_remove": false,
"by_format": {
"cred_issue": {},
"cred_offer": {},
"cred_proposal": {},
"cred_request": {}
},
"connection_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"created_at": "2021-12-31T23:59:59Z",
"cred_ex_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cred_issue": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"credentials~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
],
"replacement_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"cred_offer": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"credential_preview": {
"@type": "issue-credential/2.0/credential-preview",
"attributes": [
{
"mime-type": "image/jpeg",
"name": "favourite_drink",
"value": "martini"
}
]
},
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
],
"offers~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"replacement_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"cred_preview": {
"@type": "issue-credential/2.0/credential-preview",
"attributes": [
{
"mime-type": "image/jpeg",
"name": "favourite_drink",
"value": "martini"
}
]
},
"cred_proposal": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"credential_preview": {
"@type": "issue-credential/2.0/credential-preview",
"attributes": [
{
"mime-type": "image/jpeg",
"name": "favourite_drink",
"value": "martini"
}
]
},
"filters~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
]
},
"cred_request": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
],
"requests~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
]
},
"error_msg": "The front fell off",
"initiator": "self",
"parent_thread_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"role": "issuer",
"state": "done",
"thread_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"trace": true,
"updated_at": "2021-12-31T23:59:59Z"
}POST /issue-credential-2.0/records/{cred_ex_id}/store HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 24
{
"credential_id": "text"
}{
"cred_ex_record": {
"auto_issue": false,
"auto_offer": false,
"auto_remove": false,
"by_format": {
"cred_issue": {},
"cred_offer": {},
"cred_proposal": {},
"cred_request": {}
},
"connection_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"created_at": "2021-12-31T23:59:59Z",
"cred_ex_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cred_issue": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"credentials~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
],
"replacement_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"cred_offer": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"credential_preview": {
"@type": "issue-credential/2.0/credential-preview",
"attributes": [
{
"mime-type": "image/jpeg",
"name": "favourite_drink",
"value": "martini"
}
]
},
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
],
"offers~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"replacement_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"cred_preview": {
"@type": "issue-credential/2.0/credential-preview",
"attributes": [
{
"mime-type": "image/jpeg",
"name": "favourite_drink",
"value": "martini"
}
]
},
"cred_proposal": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"credential_preview": {
"@type": "issue-credential/2.0/credential-preview",
"attributes": [
{
"mime-type": "image/jpeg",
"name": "favourite_drink",
"value": "martini"
}
]
},
"filters~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
]
},
"cred_request": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
],
"requests~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
]
},
"error_msg": "The front fell off",
"initiator": "self",
"parent_thread_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"role": "issuer",
"state": "done",
"thread_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"trace": true,
"updated_at": "2021-12-31T23:59:59Z"
},
"indy": {
"created_at": "2021-12-31T23:59:59Z",
"cred_ex_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cred_ex_indy_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cred_id_stored": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cred_request_metadata": {},
"cred_rev_id": "12345",
"rev_reg_id": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0",
"state": "active",
"updated_at": "2021-12-31T23:59:59Z"
},
"ld_proof": {
"created_at": "2021-12-31T23:59:59Z",
"cred_ex_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cred_ex_ld_proof_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cred_id_stored": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"state": "active",
"updated_at": "2021-12-31T23:59:59Z"
},
"vc_di": {
"auto_issue": false,
"auto_offer": false,
"auto_remove": false,
"by_format": {
"cred_issue": {},
"cred_offer": {},
"cred_proposal": {},
"cred_request": {}
},
"connection_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"created_at": "2021-12-31T23:59:59Z",
"cred_ex_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"cred_issue": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"credentials~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
],
"replacement_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"cred_offer": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"credential_preview": {
"@type": "issue-credential/2.0/credential-preview",
"attributes": [
{
"mime-type": "image/jpeg",
"name": "favourite_drink",
"value": "martini"
}
]
},
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
],
"offers~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"replacement_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"cred_preview": {
"@type": "issue-credential/2.0/credential-preview",
"attributes": [
{
"mime-type": "image/jpeg",
"name": "favourite_drink",
"value": "martini"
}
]
},
"cred_proposal": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"credential_preview": {
"@type": "issue-credential/2.0/credential-preview",
"attributes": [
{
"mime-type": "image/jpeg",
"name": "favourite_drink",
"value": "martini"
}
]
},
"filters~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
]
},
"cred_request": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "aries/[email protected]"
}
],
"requests~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
]
},
"error_msg": "The front fell off",
"initiator": "self",
"parent_thread_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"role": "issuer",
"state": "done",
"thread_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"trace": true,
"updated_at": "2021-12-31T23:59:59Z"
}
}{
"auto_present": false,
"auto_remove": false,
"auto_verify": true,
"by_format": {
"pres": {},
"pres_proposal": {},
"pres_request": {}
},
"connection_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"created_at": "2021-12-31T23:59:59Z",
"error_msg": "Invalid structure",
"initiator": "self",
"pres": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "dif/presentation-exchange/[email protected]"
}
],
"presentations~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
]
},
"pres_ex_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"pres_proposal": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "dif/presentation-exchange/[email protected]"
}
],
"proposals~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
]
},
"pres_request": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "dif/presentation-exchange/[email protected]"
}
],
"request_presentations~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"will_confirm": true
},
"role": "prover",
"state": "proposal-sent",
"thread_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"trace": true,
"updated_at": "2021-12-31T23:59:59Z",
"verified": "true",
"verified_msgs": [
"text"
]
}GET /present-proof-2.0/records HTTP/1.1
Accept: */*
{
"results": [
{
"auto_present": false,
"auto_remove": false,
"auto_verify": true,
"by_format": {
"pres": {},
"pres_proposal": {},
"pres_request": {}
},
"connection_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"created_at": "2021-12-31T23:59:59Z",
"error_msg": "Invalid structure",
"initiator": "self",
"pres": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "dif/presentation-exchange/[email protected]"
}
],
"presentations~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
]
},
"pres_ex_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"pres_proposal": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "dif/presentation-exchange/[email protected]"
}
],
"proposals~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
]
},
"pres_request": {
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"@type": "https://didcomm.org/my-family/1.0/my-message-type",
"comment": "text",
"formats": [
{
"attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"format": "dif/presentation-exchange/[email protected]"
}
],
"request_presentations~attach": [
{
"@id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"byte_count": 1234,
"data": {
"base64": "ey4uLn0=",
"json": "{\"sample\": \"content\"}",
"jws": {
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0",
"signatures": [
{
"header": {
"kid": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4"
},
"protected": "ey4uLn0",
"signature": "ey4uLn0"
}
]
},
"links": [
"https://link.to/data"
],
"sha256": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb"
},
"description": "view from doorway, facing east, with lights off",
"filename": "IMG1092348.png",
"lastmod_time": "2021-12-31T23:59:59Z",
"mime-type": "image/png"
}
],
"will_confirm": true
},
"role": "prover",
"state": "proposal-sent",
"thread_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"trace": true,
"updated_at": "2021-12-31T23:59:59Z",
"verified": "true",
"verified_msgs": [
"text"
]
}
]
}GET /present-proof-2.0/records/{pres_ex_id}/credentials HTTP/1.1
Accept: */*
[
{
"cred_info": {
"attrs": {
"ANY_ADDITIONAL_PROPERTY": "alice"
},
"cred_def_id": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag",
"cred_rev_id": "12345",
"referent": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"rev_reg_id": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0",
"schema_id": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0"
},
"interval": {
"from": 1640995199,
"to": 1640995199
},
"presentation_referents": [
"1_age_uuid"
]
}
]POST /present-proof-2.0/records/{pres_ex_id}/send-presentation HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 2418
{
"anoncreds": {
"requested_attributes": {
"ANY_ADDITIONAL_PROPERTY": {
"cred_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"revealed": true
}
},
"requested_predicates": {
"ANY_ADDITIONAL_PROPERTY": {
"cred_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"timestamp": 1640995199
}
},
"self_attested_attributes": {
"ANY_ADDITIONAL_PROPERTY": "self_attested_value"
},
"trace": false
},
"auto_remove": true,
"dif": {
"issuer_id": "text",
"presentation_definition": {
"format": {
"di_vc": {},
"jwt": {},
"jwt_vc": {},
"jwt_vp": {},
"ldp": {},
"ldp_vc": {},
"ldp_vp": {}
},
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"input_descriptors": [
{
"constraints": {
"fields": [
{
"filter": {
"const": null,
"enum": [],
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"format": "text",
"maxLength": 1234,
"maximum": null,
"minLength": 1234,
"minimum": null,
"not": false,
"pattern": "text",
"type": "text"
},
"id": "text",
"path": [
"text"
],
"predicate": "required",
"purpose": "text"
}
],
"is_holder": [
{
"directive": "required",
"field_id": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
]
}
],
"limit_disclosure": "text",
"status_active": "required",
"status_revoked": "required",
"status_suspended": "required",
"subject_is_issuer": "required"
},
"group": [
"text"
],
"id": "text",
"metadata": {},
"name": "text",
"purpose": "text",
"schema": {
"oneof_filter": [
[
{
"uri": "https://www.w3.org/Test1#Test1"
},
{
"uri": "https://www.w3.org/Test2#Test2"
}
],
{
"oneof_filter": [
[
{
"uri": "https://www.w3.org/Test1#Test1"
}
],
[
{
"uri": "https://www.w3.org/Test2#Test2"
}
]
]
}
]
}
}
],
"name": "text",
"purpose": "text",
"submission_requirements": [
{
"count": 1234,
"from": "text",
"from_nested": "[Circular Reference]",
"max": 1234,
"min": 1234,
"name": "text",
"purpose": "text",
"rule": "all"
}
]
},
"record_ids": {
"<input descriptor id_1>": [
"<record id_1>",
"<record id_2>"
],
"<input descriptor id_2>": [
"<record id>"
]
},
"reveal_doc": {
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://w3id.org/security/bbs/v1"
],
"@explicit": true,
"@requireAll": true,
"credentialSubject": {
"@explicit": true,
"@requireAll": true,
"Observation": [
{
"effectiveDateTime": {},
"@explicit": true,
"@requireAll": true
}
]
},
"issuanceDate": {},
"issuer": {},
"type": [
"VerifiableCredential",
"LabReport"
]
}
},
"indy": {
"requested_attributes": {
"ANY_ADDITIONAL_PROPERTY": {
"cred_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"revealed": true
}
},
"requested_predicates": {
"ANY_ADDITIONAL_PROPERTY": {
"cred_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"timestamp": 1640995199
}
},
"self_attested_attributes": {
"ANY_ADDITIONAL_PROPERTY": "self_attested_value"
},
"trace": false
},
"trace": true
}POST /did/cheqd/create HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 103
{
"features": "{}",
"options": {
"key_type": "ed25519",
"method_specific_id_algo": "uuid",
"network": "testnet"
}
}{
"did": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86",
"didState": {
"did": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86",
"didDocument": {
"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",
"verificationMethod": [
{
"id": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1",
"type": "Ed25519VerificationKey2020",
"controller": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86",
"publicKeyMultibase": "z6Mk..."
}
]
},
"secret": {
"signingResponse": [
{
"kid": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1",
"signature": "SHFz..."
}
]
},
"state": "finished"
},
"success": true,
"verkey": "BnSWTUQmdYCewSGFrRUhT6LmKdcCcSzRGqWXMPnEP168"
}GET /wallet/did HTTP/1.1
Accept: */*
{
"results": [
{
"did": "did:peer:WgWxqztrNooG92RXvxSTWv",
"key_type": "ed25519",
"metadata": {},
"method": "sov",
"posture": "wallet_only",
"verkey": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}
]
}