> ## Documentation Index
> Fetch the complete documentation index at: https://docs.truthlocks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Signed record specification

> How to construct, retain and verify an attestation without confusing claims with verification results.

Revision: 2026-10-13.

## The signed payload

Minting accepts either structured `schema` and `claims`, or `payload_b64url` containing the exact bytes to sign. Do not supply both forms. Preserve the payload, response and idempotency key. An encoded payload is not encryption.

The record includes its identifier, issuer, issuance time, payload digest, declared signing algorithm, key identifier, signature and transparency references. Choose a key that is active, available for signing and supports the requested algorithm. Public-key registration alone does not make a private signing key available.

## Expiry

For structured input, optional `expires_at_unix` is an integer Unix timestamp in seconds. It becomes part of the signed JSON payload. For encoded input, put this field at the root of the JSON payload before encoding it; do not send a separate unsigned expiry field.

The date must be after issuance. Verification returns `EXPIRED` after that instant. Stored expiry cannot be extended or removed in place; issue a replacement. Omitting expiry does not invent a default lifetime. Historical records without a stored expiry are not assigned one retrospectively. Dates inside claims, such as `claims.expiry_date`, do not automatically set the attestation expiry.

## Issuer risk and claims

The governance snapshot records the issuer's classification at issuance. An issuer risk rating is not an automated risk score for the document's contents. `unknown` means no assessment was recorded. New staff approvals require an evidence-supported assessment; they do not rewrite old snapshots.

## Transparency references

`log.leaf_index` is zero-based: zero can be the first real entry. A missing or unavailable reference is distinct from zero. `log.leaf_hash` identifies the recorded leaf. These fields alone do not establish successful inclusion verification; check the proof and checkpoint against a trusted key.

## Verification and export

Supply the original payload to check payload integrity and its signature. Read the verdict and reasons together: `INCOMPLETE` with `signature_verified: false` and `payload_not_provided` means payload-signature verification was not performed. A file hash comparison checks the supplied fingerprint against the stored fingerprint; it does not prove ownership or the truth of the file's contents.

Private Console certificates require workspace access. A certificate download does not publish a record. Public verification is subject to the record and environment available to the public verifier.

Use [Mint Attestation](/api-reference/attestations/mint), [verification](/api-reference/verify) and the [quickstart](/quickstart) for request formats. Retain an unchanged request when retrying a mint; changing signed fields under the same idempotency key is a conflict.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.