Reference

Exit codes

What tally verify and the secret guard return, so scripts can rely on them.

tally verify

CodeMeaningExamplesSource
0Verified. The total printed is the round's total from the declared lanes in the windowA valid bundlecli/tally.ts: cmdVerify returns normally after a verified result from verifyRound
1Could not verifyA missing argument; no round with that id under that funder; fewer than 5 transfers; a derived verification key that differs from the pinned vk.zk.bin; a network errorVerifyError (code 1) in verify/core.ts; die in cli/tally.ts
2The proof was rejected (PROOF FAILED)The sealed total altered by one; a bundle replayed against a different challengecli/tally.ts: a rejected result from verifyRound
3The round has aged out of the RPC's event window. This is not a proof failureA round older than about seven dayscli/tally.ts: an expired result from verifyRound

A verification-key mismatch exits with 1, not 2: the tool refuses to check the proof at all rather than reporting it as rejected.

Both tampering cases in evidence/README.md were re-run against round-004 on 2026-10-05 and exited with 2.

tally run with no command prints the usage and exits 0; with an unknown command it exits 1.

pnpm check:secrets

CodeMeaning
0No tracked file contains a secret it detects
1At least one finding; each is printed with file and line

See The secret guard.

pnpm demo

Exits 0 when the round is verified and the donor's total matches the expected total. Exits 1 if any step fails, if the window does not contain exactly 16 transfers, if the proof does not verify, or if the total does not match.