# Trust Registries

## Publish a verifiable accreditation for a DID.

> Generate and publish a Verifiable Accreditation for a subject DID as a DID Linked resource.

```json
{"openapi":"3.0.0","info":{"title":"cheqd Studio API for cheqd network","version":"2.0.0"},"tags":[{"name":"Trust Registries"}],"servers":[{"url":"https://studio-api.cheqd.net","description":"Main (production) server"},{"url":"https://studio-api-staging.cheqd.net","description":"Staging server for testing"},{"url":"http://localhost:3000","description":"Local server for testing"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"AccreditationIssueRequest":{"description":"Input fields for the creating a Verifiable Accreditation.","type":"object","additionalProperties":false,"properties":{"issuerDid":{"description":"DID of the Verifiable Accreditation issuer. This needs to be a `did:cheqd` DID.","type":"string"},"subjectDid":{"description":"DID of the Verifiable Accreditation holder/subject. This needs to be a `did:cheqd` DID.","type":"string"},"schemas":{"description":"The list of schemas the subject DID is accredited for.","type":"array","items":{"$ref":"#/components/schemas/SchemaUrl"}},"accreditationName":{"description":"Unique name of the Verifiable Accreditation.","type":"string"},"attributes":{"description":"JSON object containing the attributes to be included in the Accreditation.","type":"object"},"@context":{"description":"Optional properties to be included in the `@context` property of the Accreditation.","type":"array","items":{"type":"string"}},"parentAccreditation":{"description":"DID URL of the parent Verifiable Accreditation, required for accredit/attest operation.","type":"string"},"rootAuthorization":{"description":"DID URL of the root Verifiable Accreditation, required for accredit/attest operation.","type":"string"},"trustFramework":{"description":"Name or Type of the Trust Framework, required for authorize operation.","type":"string"},"trustFrameworkId":{"description":"Url of the Trust Framework, required for authorize operation.","type":"string"},"type":{"description":"Optional properties to be included in the `type` property of the Accreditation.","type":"array","items":{"type":"string"}},"expirationDate":{"description":"Optional expiration date according to the <a href=https://www.w3.org/TR/vc-data-model/#expiration> VC Data Model specification</a>.","type":"string","format":"date-time"},"format":{"description":"Format of the Verifiable Accreditation. Defaults to VC-JWT.","type":"string","enum":["jwt","jsonld"]},"credentialStatus":{"description":"Optional `credentialStatus` properties for VC revocation or suspension. Takes `statusListName` and `statusListPurpose` as inputs.","type":"object","required":["statusPurpose","statusListName"],"properties":{"statusPurpose":{"type":"string","enum":["revocation","suspension"]},"statusListName":{"type":"string"},"statusListIndex":{"type":"number"},"statusListVersion":{"type":"string","format":"date-time"},"statusListRangeStart":{"type":"number"},"statusListRangeEnd":{"type":"number"},"indexNotIn":{"type":"number"}}},"termsOfUse":{"description":"Terms of use can be utilized by an issuer or a holder to communicate the terms under which a verifiable credential was issued.","type":"array","items":{"type":"object"}},"refreshService":{"description":"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":"array","items":{"type":"object"}},"evidence":{"description":"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":"array","items":{"type":"object"}}},"required":["issuerDid","subjectDid","schemas","accreditationName"]},"SchemaUrl":{"type":"object","properties":{"types":{"type":"array","items":{"type":"string"}},"url":{"type":"string"}}},"Credential":{"description":"Input fields for revoking/suspending a Verifiable Credential.","type":"object","additionalProperties":false,"properties":{"@context":{"type":"array","items":{"type":"string"}},"type":{"type":"array","items":{"type":"string"}},"expirationDate":{"type":"string","format":"date-time"},"issuer":{"type":"object","properties":{"id":{"type":"string","format":"DID"}}},"credentialSubject":{"type":"object","properties":{"id":{"type":"string","format":"DID"}}},"credentialStatus":{"type":"object","properties":{"id":{"type":"string"},"statusListIndex":{"type":"number"},"statusPurpose":{"type":"string","enum":["revocation","suspension"]},"type":{"type":"string","enum":["StatusList2021Entry","BitstringStatusListEntry"]}}},"issuanceDate":{"type":"string","format":"date-time"},"proof":{"type":"object","properties":{"type":{"type":"string"},"jwt":{"type":"string"}}}}},"InvalidRequest":{"description":"A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}},"UnauthorizedError":{"description":"Access token is missing or invalid","type":"object","properties":{"error":{"type":"string"}}},"InternalError":{"description":"An internal error has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/trust-registry/accreditation/issue":{"post":{"tags":["Trust Registries"],"summary":"Publish a verifiable accreditation for a DID.","description":"Generate and publish a Verifiable Accreditation for a subject DID as a DID Linked resource.","operationId":"accredit-issue","parameters":[{"in":"query","name":"accreditationType","description":"Select the type of accreditation to be issued.","schema":{"type":"string","enum":["authorize","accredit","attest"]},"required":true}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/AccreditationIssueRequest"}},"application/json":{"schema":{"$ref":"#/components/schemas/AccreditationIssueRequest"}}}},"responses":{"200":{"description":"The request was successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Credential"}}}},"400":{"$ref":"#/components/schemas/InvalidRequest"},"401":{"$ref":"#/components/schemas/UnauthorizedError"},"500":{"$ref":"#/components/schemas/InternalError"}}}}}}
```

## Verify a verifiable accreditation for a DID.

> Generate and publish a Verifiable Accreditation for a subject DID as a DID Linked resource.

```json
{"openapi":"3.0.0","info":{"title":"cheqd Studio API for cheqd network","version":"2.0.0"},"tags":[{"name":"Trust Registries"}],"servers":[{"url":"https://studio-api.cheqd.net","description":"Main (production) server"},{"url":"https://studio-api-staging.cheqd.net","description":"Staging server for testing"},{"url":"http://localhost:3000","description":"Local server for testing"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"AccreditationVerifyRequest":{"type":"object","properties":{"subjectDid":{"description":"DID of the Verifiable  Accreditation holder/subject. This needs to be a `did:key` DID.","type":"string"},"didUrl":{"description":"DID URL of the Verifiable Accreditation to be verified as a VC-JWT string or a JSON object.","type":"string"},"did":{"description":"DID of the Verifiable Accreditation holder/subject","type":"string"},"resourceId":{"description":"Unique resource identifier of the Verifiable Accreditation","type":"string"},"resourceName":{"description":"Resource name of the Verifiable Accreditation","type":"string"},"resourceType":{"description":"Resource type of the Verifiable Accreditation","type":"string"},"schemas":{"description":"The list of schemas the subject DID is accredited for.","type":"array","items":{"$ref":"#/components/schemas/SchemaUrl"}},"policies":{"description":"Custom verification policies to execute when verifying  Accreditation.","type":"object","properties":{"issuanceDate":{"description":"Policy to skip the `issuanceDate` (`nbf`) timestamp check when set to `false`.","type":"boolean","default":true},"expirationDate":{"description":"Policy to skip the `expirationDate` (`exp`) timestamp check when set to `false`.","type":"boolean","default":true},"audience":{"description":"Policy to skip the audience check when set to `false`.","type":"boolean","default":false}}}},"required":["subjectDid"]},"SchemaUrl":{"type":"object","properties":{"types":{"type":"array","items":{"type":"string"}},"url":{"type":"string"}}},"AccreditationVerifyResponse":{"type":"object","properties":{"verified":{"type":"boolean"},"issuer":{"type":"string"},"signer":{"type":"object"},"jwt":{"type":"string"},"verifiableCredential":{"type":"object"},"accreditorDids":{"type":"array","items":{"type":"string"}},"rootAuthorization":{"type":"object"},"termsOfUse":{"type":"object","properties":{"type":{"type":"string"},"trustFrameworkId":{"type":"string"},"trustFramework":{"type":"string"}}}}},"InvalidRequest":{"description":"A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}},"UnauthorizedError":{"description":"Access token is missing or invalid","type":"object","properties":{"error":{"type":"string"}}},"InternalError":{"description":"An internal error has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/trust-registry/accreditation/verify":{"post":{"tags":["Trust Registries"],"summary":"Verify a verifiable accreditation for a DID.","description":"Generate and publish a Verifiable Accreditation for a subject DID as a DID Linked resource.","operationId":"accredit-verify","parameters":[{"in":"query","name":"verifyStatus","description":"If set to `true` the verification will also check the status of the accreditation. Requires the VC to have a `credentialStatus` property.","schema":{"type":"boolean","default":false}},{"in":"query","name":"allowDeactivatedDid","description":"If set to `true` allow to verify accreditation which based on deactivated DID.","schema":{"type":"boolean","default":false}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/AccreditationVerifyRequest"}},"application/json":{"schema":{"$ref":"#/components/schemas/AccreditationVerifyRequest"}}}},"responses":{"200":{"description":"The request was successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccreditationVerifyResponse"}}}},"400":{"$ref":"#/components/schemas/InvalidRequest"},"401":{"$ref":"#/components/schemas/UnauthorizedError"},"500":{"$ref":"#/components/schemas/InternalError"}}}}}}
```

## Revoke a Verifiable Accreditation.

> This endpoint revokes a given Verifiable Accreditation. As input, it can take the didUrl as a string. The StatusList2021 or BitstringStatusList resource should already be setup in the VC and \`credentialStatus\` property present in the VC.

```json
{"openapi":"3.0.0","info":{"title":"cheqd Studio API for cheqd network","version":"2.0.0"},"tags":[{"name":"Trust Registries"}],"servers":[{"url":"https://studio-api.cheqd.net","description":"Main (production) server"},{"url":"https://studio-api-staging.cheqd.net","description":"Staging server for testing"},{"url":"http://localhost:3000","description":"Local server for testing"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"AccreditationRevokeRequest":{"type":"object","properties":{"didUrl":{"description":"Verifiable  Accreditation to be verified as a VC-JWT string or a JSON object.","type":"string"},"did":{"type":"string"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"resourceType":{"type":"string"},"symmetricKey":{"description":"The symmetric key used to encrypt the StatusList2021 DID-Linked Resource. Required if the StatusList2021 DID-Linked Resource is encrypted.","type":"string"}}},"RevocationResult":{"properties":{"revoked":{"type":"boolean"}}},"InvalidRequest":{"description":"A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}},"UnauthorizedError":{"description":"Access token is missing or invalid","type":"object","properties":{"error":{"type":"string"}}},"InternalError":{"description":"An internal error has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/trust-registry/accreditation/revoke":{"post":{"tags":["Trust Registries"],"summary":"Revoke a Verifiable Accreditation.","description":"This endpoint revokes a given Verifiable Accreditation. As input, it can take the didUrl as a string. The StatusList2021 or BitstringStatusList resource should already be setup in the VC and `credentialStatus` property present in the VC.","operationId":"accredit-revoke","parameters":[{"in":"query","name":"publish","description":"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.","required":true,"schema":{"type":"boolean","default":true}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/AccreditationRevokeRequest"}},"application/json":{"schema":{"$ref":"#/components/schemas/AccreditationRevokeRequest"}}}},"responses":{"200":{"description":"The request was successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevocationResult"}}}},"400":{"$ref":"#/components/schemas/InvalidRequest"},"401":{"$ref":"#/components/schemas/UnauthorizedError"},"500":{"$ref":"#/components/schemas/InternalError"}}}}}}
```

## Suspend a Verifiable Accreditation.

> This endpoint suspends a given Verifiable Accreditation. As input, it can take the didUrl as a string. The StatusList2021 or BitstringStatusList resource should already be setup in the VC and \`credentialStatus\` property present in the VC.

```json
{"openapi":"3.0.0","info":{"title":"cheqd Studio API for cheqd network","version":"2.0.0"},"tags":[{"name":"Trust Registries"}],"servers":[{"url":"https://studio-api.cheqd.net","description":"Main (production) server"},{"url":"https://studio-api-staging.cheqd.net","description":"Staging server for testing"},{"url":"http://localhost:3000","description":"Local server for testing"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"AccreditationRevokeRequest":{"type":"object","properties":{"didUrl":{"description":"Verifiable  Accreditation to be verified as a VC-JWT string or a JSON object.","type":"string"},"did":{"type":"string"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"resourceType":{"type":"string"},"symmetricKey":{"description":"The symmetric key used to encrypt the StatusList2021 DID-Linked Resource. Required if the StatusList2021 DID-Linked Resource is encrypted.","type":"string"}}},"RevocationResult":{"properties":{"revoked":{"type":"boolean"}}},"InvalidRequest":{"description":"A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}},"UnauthorizedError":{"description":"Access token is missing or invalid","type":"object","properties":{"error":{"type":"string"}}},"InternalError":{"description":"An internal error has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/trust-registry/accreditation/suspend":{"post":{"tags":["Trust Registries"],"summary":"Suspend a Verifiable Accreditation.","description":"This endpoint suspends a given Verifiable Accreditation. As input, it can take the didUrl as a string. The StatusList2021 or BitstringStatusList resource should already be setup in the VC and `credentialStatus` property present in the VC.","operationId":"accredit-suspend","parameters":[{"in":"query","name":"publish","description":"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.","required":true,"schema":{"type":"boolean","default":true}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/AccreditationRevokeRequest"}},"application/json":{"schema":{"$ref":"#/components/schemas/AccreditationRevokeRequest"}}}},"responses":{"200":{"description":"The request was successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevocationResult"}}}},"400":{"$ref":"#/components/schemas/InvalidRequest"},"401":{"$ref":"#/components/schemas/UnauthorizedError"},"500":{"$ref":"#/components/schemas/InternalError"}}}}}}
```

## Reinstate a Verifiable Accreditation.

> This endpoint reinstates a given Verifiable Accreditation. As input, it can take the didUrl as a string. The StatusList2021 or BitstringStatusList resource should already be setup in the VC and \`credentialStatus\` property present in the VC.

```json
{"openapi":"3.0.0","info":{"title":"cheqd Studio API for cheqd network","version":"2.0.0"},"tags":[{"name":"Trust Registries"}],"servers":[{"url":"https://studio-api.cheqd.net","description":"Main (production) server"},{"url":"https://studio-api-staging.cheqd.net","description":"Staging server for testing"},{"url":"http://localhost:3000","description":"Local server for testing"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"AccreditationRevokeRequest":{"type":"object","properties":{"didUrl":{"description":"Verifiable  Accreditation to be verified as a VC-JWT string or a JSON object.","type":"string"},"did":{"type":"string"},"resourceId":{"type":"string"},"resourceName":{"type":"string"},"resourceType":{"type":"string"},"symmetricKey":{"description":"The symmetric key used to encrypt the StatusList2021 DID-Linked Resource. Required if the StatusList2021 DID-Linked Resource is encrypted.","type":"string"}}},"RevocationResult":{"properties":{"revoked":{"type":"boolean"}}},"InvalidRequest":{"description":"A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}},"UnauthorizedError":{"description":"Access token is missing or invalid","type":"object","properties":{"error":{"type":"string"}}},"InternalError":{"description":"An internal error has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/trust-registry/accreditation/reinstate":{"post":{"tags":["Trust Registries"],"summary":"Reinstate a Verifiable Accreditation.","description":"This endpoint reinstates a given Verifiable Accreditation. As input, it can take the didUrl as a string. The StatusList2021 or BitstringStatusList resource should already be setup in the VC and `credentialStatus` property present in the VC.","operationId":"accredit-reinstate","parameters":[{"in":"query","name":"publish","description":"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.","required":true,"schema":{"type":"boolean","default":true}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/AccreditationRevokeRequest"}},"application/json":{"schema":{"$ref":"#/components/schemas/AccreditationRevokeRequest"}}}},"responses":{"200":{"description":"The request was successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevocationResult"}}}},"400":{"$ref":"#/components/schemas/InvalidRequest"},"401":{"$ref":"#/components/schemas/UnauthorizedError"},"500":{"$ref":"#/components/schemas/InternalError"}}}}}}
```

## Fetch Verifiable Accreditations for DIDs associated with an account.

> This endpoint returns the list of Verifiable Accreditations created by the account.

```json
{"openapi":"3.0.0","info":{"title":"cheqd Studio API for cheqd network","version":"2.0.0"},"tags":[{"name":"Trust Registries"}],"servers":[{"url":"https://studio-api.cheqd.net","description":"Main (production) server"},{"url":"https://studio-api-staging.cheqd.net","description":"Staging server for testing"},{"url":"http://localhost:3000","description":"Local server for testing"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"ListAccreditationResult":{"type":"object","properties":{"total":{"type":"number","description":"Total number of accreditations."},"accreditations":{"type":"array","description":"List of accreditations with credential data and tracking metadata.","items":{"allOf":[{"$ref":"#/components/schemas/VerifiableCredential"},{"type":"object","properties":{"metadata":{"type":"object","description":"Tracking metadata from the issued credential database record","properties":{"issuedCredentialId":{"type":"string","description":"Unique identifier for the issued credential"},"providerId":{"type":"string","description":"Provider identifier"},"providerCredentialId":{"type":"string","description":"Provider-specific credential ID (resourceId)"},"status":{"type":"string","description":"Current status of the credential","enum":["issued","suspended","revoked"]},"statusUpdatedAt":{"type":"string","format":"date-time","description":"Timestamp when status was last updated"}}}}}]}}}},"VerifiableCredential":{"type":"object","required":["@context","type","issuer","issuanceDate","credentialSubject"],"properties":{"@context":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"JSON-LD context"},"id":{"type":"string","description":"Credential identifier"},"type":{"type":"array","items":{"type":"string"},"description":"Credential types"},"issuer":{"oneOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"}}}],"description":"Credential issuer"},"issuanceDate":{"type":"string","format":"date-time","description":"Issuance date"},"expirationDate":{"type":"string","format":"date-time","description":"Expiration date"},"credentialSubject":{"type":"object","additionalProperties":true,"description":"Credential subject claims"},"proof":{"type":"object","additionalProperties":true,"description":"Cryptographic proof"},"credentialStatus":{"type":"object","additionalProperties":true,"description":"Credential status information"}}},"InvalidRequest":{"description":"A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}},"UnauthorizedError":{"description":"Access token is missing or invalid","type":"object","properties":{"error":{"type":"string"}}},"InternalError":{"description":"An internal error has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/trust-registry/accreditation/list":{"get":{"tags":["Trust Registries"],"summary":"Fetch Verifiable Accreditations for DIDs associated with an account.","description":"This endpoint returns the list of Verifiable Accreditations created by the account.","parameters":[{"in":"query","name":"network","description":"Filter Accreditations by the network published.","schema":{"type":"string","enum":["mainnet","testnet"]},"required":false},{"in":"query","name":"accreditationType","description":"Select the type of accreditation to be issued.","schema":{"type":"string","enum":["authorize","accredit","attest"]},"required":true},{"in":"query","name":"did","description":"Filter accreditations published by a DID","schema":{"type":"string"}},{"in":"query","name":"page","description":"Page number for pagination.","schema":{"type":"number","default":1},"required":false},{"in":"query","name":"limit","description":"Number of items per page.","schema":{"type":"number","default":10},"required":false}],"responses":{"200":{"description":"The request was successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAccreditationResult"}}}},"400":{"$ref":"#/components/schemas/InvalidRequest"},"401":{"$ref":"#/components/schemas/UnauthorizedError"},"500":{"$ref":"#/components/schemas/InternalError"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cheqd.io/product/api-reference/combined/trust-registries.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
