Crossmint Verifiable Credentials API
The Verifiable Credentials API from Crossmint — 2 operation(s) for verifiable credentials.
The Verifiable Credentials API from Crossmint — 2 operation(s) for verifiable credentials.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/crossmint:crossmint-verifiable-credentials-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
contact:
email: support@crossmint.com
name: Crossmint Support
url: https://www.crossmint.com
description: Generated from Crossmint's published product API specifications. Do not edit by hand.
title: Crossmint Verifiable Credentials API
version: 1.0.0
servers:
- description: Staging environment (testnets)
url: https://staging.crossmint.com/api
- description: Production environment (mainnets)
url: https://www.crossmint.com/api
tags:
- name: Verifiable Credentials
paths:
/v1-alpha1/credentials/verification/verify:
post:
description: 'Checks that a verifiable credential is authentic and still valid: the proof matches the issuer, the credential has not expired, and its NFT has not been burned. Send the full credential object as returned by Get Credential.
**API scope required**: `credentials.read`
**Related**: Verify credentials'
operationId: credentials.verify
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VerifyCredentialDto'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/VerifyCredentialResponseDto'
description: The verification result. `error` names the reason when `isValid` is `false`.
security:
- apiKey: []
summary: Verify Credential
tags:
- Verifiable Credentials
/v1-alpha1/credentials/{credentialId}:
delete:
description: 'Revokes a verifiable credential and burns the NFT that carries it. Only the issuing project can revoke a credential. The burn is processing when this returns; Verify Credential reports the credential as revoked once it completes.
**API scope required**: `credentials.delete`
**Related**: Revoke credentials'
operationId: credentials.revoke
parameters:
- description: The credential's ID, `urn:uuid:<UUID>`, as returned by Issue Credential.
in: path
name: credentialId
required: true
schema:
type: string
responses:
'200':
description: Burn started. Returns the burn action with its `actionId` and `status`, the same shape as Burn NFT.
'404':
description: No credential matches `credentialId`.
security:
- apiKey: []
summary: Revoke Credential
tags:
- Verifiable Credentials
get:
description: 'Returns a verifiable credential by its ID. An encrypted credential comes back as `encryptedCredential`; when the issuing project makes the request, Crossmint also decrypts it into `unencryptedCredential`, and `decryptionError` explains a decryption that failed. A credential whose NFT is still minting is not available yet.
**API scope required**: `credentials.read`
**Related**: Retrieve credentials'
operationId: credentials.get
parameters:
- description: The credential's ID, `urn:uuid:<UUID>`, as returned by Issue Credential.
in: path
name: credentialId
required: true
schema:
type: string
responses:
'200':
description: The credential as `unencryptedCredential`, `encryptedCredential`, or both. `pass` carries the wallet-pass links for the issuing project when the template issues passes.
'404':
description: No credential matches `credentialId`.
security:
- apiKey: []
summary: Get Credential
tags:
- Verifiable Credentials
components:
schemas:
VerifyCredentialDto:
properties:
credential:
properties:
'@context':
description: The context of the credential
items:
type: string
type: array
credentialSubject:
additionalProperties: {}
description: The credential subject, including all the data to be verified
propertyNames:
type: string
type: object
description:
description: The credential description
type: string
id:
description: The credential ID
type: string
issuer:
properties:
id:
description: The issuer DID
type: string
required:
- id
type: object
name:
description: The credential name
type: string
nft:
properties:
chain:
description: The blockchain type
enum:
- abstract
- abstract-testnet
- apechain
- aptos
- arbitrum
- arbitrum-sepolia
- arbitrumnova
- arc
- arc-testnet
- astar-zkevm
- avalanche
- avalanche-fuji
- base
- base-goerli
- base-sepolia
- bsc
- bsc-testnet
- celo
- celo-sepolia
- chiliz
- chiliz-spicy-testnet
- coti
- coti-testnet
- curtis
- ethereum
- ethereum-goerli
- ethereum-sepolia
- flow
- flow-testnet
- hedera
- hedera-testnet
- hypersonic-testnet
- lightlink
- lightlink-pegasus
- mantle
- mantle-sepolia
- mode
- mode-sepolia
- optimism
- optimism-goerli
- optimism-sepolia
- plume
- plume-testnet
- polygon
- polygon-amoy
- polygon-mumbai
- rari
- rari-testnet
- robinhood-chain
- robinhood-chain-testnet
- scroll
- scroll-sepolia
- sei-atlantic-2-testnet
- sei-pacific-1
- shape
- shape-sepolia
- skale-nebula
- skale-nebula-testnet
- solana
- soneium
- soneium-minato-testnet
- space
- space-testnet
- stellar
- story
- story-testnet
- sui
- tempo
- tempo-testnet
- u2u-nebulas
- u2u-solaris
- verify-testnet
- viction
- viction-testnet
- world-chain
- world-chain-sepolia
- xai
- xai-sepolia-testnet
- xion
- zenchain-testnet
- zkatana
- zkyoto
- zora
- zora-goerli
- zora-sepolia
type: string
contractAddress:
description: The contract address for the NFT
type: string
tokenId:
description: The unique onchain identifier for the NFT
type: string
required:
- chain
- contractAddress
- tokenId
type: object
proof:
properties:
eip712:
description: Proof metadata needed for EIP712 signature verification
properties:
domain:
properties:
chainId:
type: number
name:
type: string
verifyingContract:
type: string
version:
type: string
required:
- chainId
- name
- verifyingContract
- version
type: object
types:
additionalProperties: {}
propertyNames:
type: string
type: object
required:
- domain
- types
type: object
proofValue:
description: The proof value
type: string
required:
- eip712
- proofValue
type: object
type:
description: The type of the credential
items:
type: string
type: array
validFrom:
description: The issuance date of the credential
type: string
validUntil:
description: The expiration date of the credential
type: string
required:
- '@context'
- credentialSubject
- id
- issuer
- nft
- proof
- type
- validFrom
type: object
required:
- credential
type: object
VerifyCredentialResponseDto:
properties:
error:
description: Why the credential is not valid. Absent when `isValid` is `true`.
type: string
isValid:
description: '`true` when the credential is authentic and still valid.'
type: boolean
required:
- isValid
title: Verification result
type: object
securitySchemes:
apiKey:
description: API key required for authentication
in: header
name: X-API-KEY
type: apiKey
orderClientSecret:
description: The `clientSecret` returned when the order was created, sent as the raw `Authorization` header value. Lets a browser or mobile client read and continue its own order without a server-side API key.
in: header
name: Authorization
type: apiKey
userJwt:
bearerFormat: JWT
description: 'The end user''s JWT, sent as `Authorization: Bearer <JWT>` together with a client-side API key. Validated against the project''s external JWT configuration.'
scheme: bearer
type: http
x-provenance:
method: harvested
publisher: Crossmint
source: https://www.crossmint.com/openapi.yaml
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)