A receipt is proof that Warrant evaluated an action and returned ALLOW or DENY. Auditors can verify receipts without trusting Abstraxn servers alone.

What auditors need

  1. Receipt JSON — shared by whoever ran check() (from logs, export, or API)
  2. Warrant public key — from GET /v1/warrant/keys/receipt or published hex
No Abstraxn API key is required for basic offline verification.

Verification layers

Using @abstraxn/warrant-verifier

Install:
Package: npm @abstraxn/warrant-verifier Verify a saved receipt file:
Or use the library in Node:

On-chain verification (optional RPC)

After offline Ed25519 + Merkle checks, auditors can confirm anchors on-chain using the same package — no Warrant API calls:
Contract addresses and supported chains: On-chain.

Understanding results

  • verdict=ALLOW + valid signature — Warrant allowed this action under policy
  • verdict=DENY + valid signature — Warrant blocked it; receipt is still authentic
  • Invalid signature — tampered receipt or wrong public key
DENY is a normal business outcome, not a verification failure.

On-chain fields on the receipt

After the batch worker runs, receipts include:
Verification uses chainId to pick the right RPC (Base Sepolia vs Polygon Amoy).

For compliance teams

  1. Collect receipt JSON from agent logs or exports
  2. Verify Ed25519 offline
  3. Confirm Merkle + ReceiptLog for long-term audit trail
  4. Optionally match mandate hash on MandateRegistry

Next step

On-chain — supported chains and contract roles.