Skip to main content
A proof is the saved result of a completed check, permission, or action. Store its proof ID, then read its current status whenever a decision depends on it.

What a proof records

What was checked, who or what it describes, the outcome, who issued it, its current status and expiry, its visibility, and any scope needed to evaluate it. Outcome and status are separate. A proof that passed earlier never overrides expiry or revocation. A receipt is the same kind of record for a completed action, payment, or job run.

Proof ID

The API field for the proof ID is qHash. Store it with the user or record it belongs to. contentHash identifies the checked content or file. It is not the proof ID.

Read a proof

Visibility

Unlisted proofs are public to anyone who has the proof ID. To share a private proof without making it public, create a signed access grant with POST /api/v1/verification/access/grant. client.verify() and VerifyGate create private proofs unless you choose otherwise.

Storage

Proofs are stored offchain by default. A blockchain record is optional: request it with options.publishToHub: true or targetChains. IPFS pinning is optional with enableIpfs: true. Neither changes who can read the proof, and neither replaces a status check.

Reuse

Before a protected action, check the current proof instead of repeating the original check. Reuse verification

Revoke

Or call POST /api/v1/proofs/revoke-self/{qHash}. A revoked proof stops satisfying any gate.

Portable proofs

Wallet-signed requests return a portable envelope another system can check without calling Proofable:
The envelope proves who signed the request. Current status still comes from Proofable. Portable Proof

Guides

Proof lifecycle

Status, freshness, and revocation.

Link and version proofs

Typed links and version chains.
Last modified on September 12, 2026