Skip to main content
POST
Mint Attestation
This is the collection-route variant of attestation minting. Use the structured-record or encoded-payload option shown in Try It and retain the same Idempotency-Key when retrying the same request. Verification packs and record types remain selectable in the request schema.

Authorizations

X-API-Key
string
header
required

API key for machine-to-machine authentication

Headers

Idempotency-Key
string
required

Body

application/json

Choose Structured record to select a record type and enter claims, or Encoded payload to sign existing bytes. Never combine both input formats.

alg
enum<string>
required

Must match the selected issuer signing key.

Available options:
Ed25519,
ES256,
ES384,
ES512,
RS256,
RS384,
RS512,
PS256,
PS384,
PS512
issuer_id
string<uuid>
required

The UUID of the issuer creating the attestation

Example:

"550e8400-e29b-41d4-a716-446655440000"

kid
string
required

Key identifier for the signing key

Example:

"es256-key-1"

schema
enum<string>
required

Record type for structured input. Provide claims and omit payload_b64url. This label does not independently validate the truth of claims.

Available options:
verifiable-id,
passport,
drivers-license,
government-id,
self-sovereign-id,
employment-verification,
professional-role,
membership-card,
professional-certification,
license,
accreditation,
degree,
completion-cert,
course-credit,
transcript,
micro-credential,
training-completion,
medical-license,
dea-registration,
board-certification,
health-credential,
vaccination-record,
aml-kyc,
security-clearance,
sam-gov,
jurisdiction-approval,
attestation-of-will,
bank-verification,
credit-attestation,
income-verification,
skill-badge,
competency,
industry-cert,
product-authenticity,
chain-of-custody,
origin-verification,
custom,
attestation
Example:

"verifiable-id"

claims
object
required

Structured record fields. Required with schema; cannot be combined with payload_b64url.

Example:
attestation_id
string
content_type
string

MIME type of the original bytes, such as application/json, application/pdf or image/png. Structured schema/claims input requires application/json.

Example:

"application/json"

document_hash
string

Optional hexadecimal SHA-256 document hash. An embedded claims.document.sha256 takes precedence; otherwise this field is used, then the decoded payload hash.

pack_id
string<uuid>

Optional workspace verification-pack UUID. Use List verification packs with the same API key to select an existing active pack; omit for a standalone record.

expires_at_unix
integer<int64>

Optional future Unix timestamp in seconds for structured schema/claims input. It is included in the signed JSON payload. For payload_b64url input, omit this request field and embed expires_at_unix at the root of the exact JSON payload instead. Expiry cannot be changed in place.

Required range: 1 <= x <= 253402300799
recipient_email
string<email>

Optional recipient for asynchronous notification after minting. A successful mint response does not confirm delivery.

Response

Attestation minted

id
string<uuid>
issuer_id
string<uuid>
kid
string
status
enum<string>
Available options:
VALID,
REVOKED,
SUPERSEDED
payload
object
signature
string
log_index
integer
created_at
string<date-time>