start · one receipt · three doors
The payout will not clear without a receipt.
One published receipt, three doors: this tab, your terminal, or the payout desk.
in this tab
No install. The page fetches those two files and runs the verifier your browser already downloaded with it.
Nothing has been checked in this browser yet.
Have a receipt of your own? Paste it on /verify — same verifier, same refusal to phone home.
the receipt everything below checks
receipt_idrcp_pom_synthetic_119_0001
- /example/receipt.jsonthe signed envelope, and its inclusion proof
- /example/keys.jsonthe two public test keys it should check against
- /example/proof.jsonthe proof alone, for the CLI’s --proof
Signed by a test key over synthetic material, and sealed for real into day 2, whose package this site publishes. No production key has signed an inference receipt yet — the gateway that will issue them is still in build.
in your terminal
Offline by default, and the keyset is yours to supply — a verifier that fetched its own trust would just be asking you to trust the fetch.
Fetch the two files.
curl -sO https://pcrzero.com/example/receipt.json \ -sO https://pcrzero.com/example/keys.jsonRun the check.
npx --package pcrzero pcr0 verify --receipt receipt.json --keys keys.jsonwhat that printed on a real run
{ "valid": true, "conformance": "full", "receipt_id": "rcp_pom_synthetic_119_0001", "inclusion": "not-requested", "trust_base": { "keyset": "caller-supplied" } }Exit code 0 for a valid receipt, 2 for an invalid one, 1 for an error — so this drops into CI without parsing anything.
And the sealed half, still with no network
Add the day’s published package and the anchor document as local files, and the same command also recomputes the receipt’s ledger leaf and walks it to the sealed root.
npx --package pcrzero pcr0 verify --receipt receipt.json --keys keys.json \
--proof proof.json --checkpoint 2.json --anchors anchors.jsonwhat that printed on a real run
{
"valid": true,
"inclusion": "ok",
"trust_base": { "anchors": "caller-supplied", "checkpoint": "caller-supplied" }
}The two extra files are the seal package and the anchor document, both already public.
npx --package pcrzero, not npx pcr0: the package is pcrzero and pcr0 is the command it installs. npm i -g pcrzero if you would rather have it on your path.
at the payout desk
The payout will not clear without a receipt. This is assertPayoutLock, in this tab, on the published attestation specimens /receipts already re-verifies. Missing refuses. A fail verdict refuses. Pass clears.
missing
payoutnot runfail
payoutnot runpass
payoutnot run
Nothing has been bounced in this browser yet.
A bounce, not a camera. Pass is rcp_happy_pass. Fail is rcp_happy_fail_verdict — a recorded fail that still verifies, and still does not clear. The other doors check a different envelope family (inference).
what this page witnessed
The first two doors check rcp_pom_synthetic_119_0001 against the published inference keyset. The desk runs assertPayoutLock on the published attestation specimens (rcp_happy_pass, rcp_happy_fail_verdict) — missing refuses, a fail verdict refuses, pass clears. Only the first door and the desk ran here. The terminal block is a transcript of a real run.
Checking is arithmetic over files you can fetch yourself, so it needs no account, no key and no permission from us, permanently. Issuing is the metered half, and why that split is the product is argued at length elsewhere.