Verify Attestation
Performs a full cryptographic and status verification of an attestation.
Verdict Truth Table
| Verdict | Valid | Description |
|---|---|---|
| VALID | true | Signature correct, attestation active |
| REVOKED | false | Attestation explicitly revoked |
| SUPERSEDED | false | Replaced by newer attestation |
| ALTERED | false | Signature verification failed |
| UNKNOWN | false | Attestation not found |
Parameters
Document hash verification
When you includedocument_hash_hex in your verification request, the platform compares it against the document_hash stored at mint time. Two additional reason codes may appear in the reasons array of the response:
| Reason | Verdict | Description |
|---|---|---|
document_hash_mismatch | ALTERED | The provided hash does not match the stored document hash. The content has been modified since it was protected. |
document_hash_not_stored | (continues verification) | The attestation was minted without a document hash, so the check cannot be performed. Verification continues with signature and log checks. |
document_hash is set automatically during minting. The platform resolves
it from three sources in priority order: an embedded claims.document.sha256
in the payload, an explicit document_hash field in the mint request, or an
auto-computed SHA-256 of the payload bytes.Verdict reference
Every verification request returns exactly oneverdict value.
| Verdict | Description |
|---|---|
VALID | Cryptographically valid and trusted |
ALTERED | Document hash mismatch — the content has been modified |
REVOKED | Explicitly revoked by the issuer |
SUPERSEDED | A newer version of this attestation exists. Follow superseded_by_attestation_id in the response to find the replacement. |
EXPIRED | The attestation has passed its validity period |
INVALID | Cryptographic signature verification failed |
NOT_FOUND | No attestation exists with the given ID |
UNKNOWN_ISSUER | The issuer could not be resolved or is no longer trusted |
Superseded attestations
When an attestation has been replaced by a newer version, the verdict isSUPERSEDED and the response includes a superseded_by_attestation_id field pointing to the replacement. Use this to follow the version chain:
superseded_by_attestation_id value as the attestation_id.
Billing and rate limits
API verification requests are metered against your organization’s billing plan. The consumer portal at verify.truthlocks.com provides unlimited free verification for end-users.| Channel | Auth required | Metered | Rate limit |
|---|---|---|---|
POST /v1/verify (API) | No | Yes — counted against the issuer’s plan quota | Plan-dependent |
| verify.truthlocks.com (Portal) | No | No — free and unlimited | Fair-use rate limiting only |
Authorizations
API key for machine-to-machine authentication
Body
The unique identifier of the attestation to verify.
Base64url-encoded payload for signature verification. If provided, the system verifies that the SHA-256 hash of this payload matches the stored payload_hash. Use this to confirm you hold the exact original content that was attested.
SHA-256 hex hash of the original document for integrity verification. If provided, compared against the stored document_hash. Use this when you want to verify a file's integrity without sending the full payload over the wire.
Response
Verification result
- VALID: Signature verified and attestation is active
- REVOKED: Attestation was explicitly revoked
- SUPERSEDED: Attestation replaced by a newer version
- ALTERED: Signature verification failed (tampered)
- INVALID: General validation failure
- UNKNOWN: Attestation not found
VALID, INVALID, REVOKED, ALTERED, SUPERSEDED, UNKNOWN 
