Huntadocs

Verify the attestation

Prove your store's isolation boundary in about 60 seconds, offline, against published cryptography.

Every Hunta tenant can request a signed proof that its isolation boundary holds, and check that proof without trusting Hunta's word for it. The verifier is open source, has zero runtime dependencies, and pins the key from Hunta's published JWKS. This page is the whole loop.

1. Get a receipt

From the console: Provenance and run verify. Or from the API:

curl -sS -X POST "https://mcp.hunta.ai/v1/admin/verify-isolation?nonce=$(date +%s)" \
  -H "Authorization: Bearer $GATHER_TOKEN" > receipt.json

The nonce is echoed into the signed manifest, so you can prove the receipt is fresh, not replayed.

The receipt is not a static document. Generating it runs live adversarial probes against your tenant's actual boundary, at request time:

ProbeWhat it proves
physical (GRANT)as your tenant's database role, reading any other tenant's tables is refused for lack of privilege
logical (RLS)row-level security hides your rows from a wrong tenant context
crypto (per column)another tenant's ciphertext does not decrypt with your key, per encrypted column
dedup-hmaccontent fingerprints are keyed per tenant, so they cannot be matched across tenants

A signed pass also requires conclusive: true, meaning the probes genuinely ran. An empty store or a broken probe can never produce a vacuous green.

2. Verify it

npx -y @hunta/verify receipt.json
PASS  isolation attestation verified
  signature   valid Ed25519, kid hunta-attest-1 (pinned from https://mcp.hunta.ai/.well-known/jwks.json)
  tenant      hunta
  build       0.4.7   probe set p4-2
  signed at   2026-07-31T09:40:25.218721+00:00   nonce p1-live-proof
  conclusive  true   all boundaries held  true
    physical (GRANT)   "54/54"
    logical (RLS)      true
    crypto (per-col)   "23/23"
    dedup-hmac         "17/17"

That transcript is real output from a production receipt. Exit code is 0 on PASS and 1 on FAIL, so you can run it in CI.

Fully offline

Save the JWKS once, then verify with no network at all:

curl -sS https://mcp.hunta.ai/.well-known/jwks.json > jwks.json
npx -y @hunta/verify receipt.json --jwks jwks.json

The trust model

  • The signature is checked against a key pinned from the published JWKS, resolved by the receipt's attest_kid (hunta-attest-1).
  • The public key embedded in the receipt is never trusted. A forger controls that field, so trusting it would let any self-signed manifest pass. It is a discovery hint only.
  • Canonicalization is byte-for-byte identical to the signer, so the bytes verified are exactly the bytes signed. Tampering with any field of the manifest, even one probe count, fails verification.
  • The verifier is three small files using only Node's built-in crypto. Read it before you trust it: verify/src.

The proof is also reproducible: the manifest's mechanism and probes fields describe exactly what was tested, so you can re-run the same probes against your own tenants and compare.

On this page