Audit any auction
Status:Testnet.
Command line
What it does (
crates/sealforge-chain/src/audit.rs scan_incoming, sealforge_auditor::audit_chain):
- Trial-decrypts every compact block in range with the UIVK, for both the Orchard and Ironwood pools.
- Fetches each matching transaction and decrypts value, output index and memo.
- Reclassifies every payment with
sealforge_core::selectionand recomputes withcompute_result. - Compares clearing price, volume, valid bid count, winner count, Merkle root and every per-bid outcome. Exit code 1 on any mismatch.
In the browser
On/audit/<CODE>, Rescan the chain in my browser runs the same sealforge-scan and sealforge-auditor compiled to WebAssembly. Blocks come over gRPC-web from a lightwallet endpoint the auditor types in. Nothing but the result being checked comes from sealForge. The older quick check (payments_from_published) only checks that the published list is self-consistent. It doesn’t detect an omitted bid, and the page says so.
As a bidder
Load your receipt on/verify. The WASM auditor (verify_receipt) recomputes your leaf, checks the Merkle proof against the published root, and shows your outcome and refund plan. Tests: winning_receipt_is_included_with_its_refund_plan, losing_and_unknown_receipts, tampered_root_breaks_inclusion.
Testnet record
Both auctions ran on public Zcash testnet through the hosted instance, in sealed-reveal mode, uniform price. Full tables (heights, txids, signer pairs, per-wallet end balances, fees) live in the evidence files. They are not copied here.
Both used test-network-only settings (
SF_MIN_WINDOW_BLOCKS, SF_REFUND_DELAY_SECS) so they’d fit in about an hour. Both were run from one machine holding all three trustee keystores (scripts/testnet-demo.sh), which defeats the threshold and is acceptable only on test networks. Trustee aliases in the evidence are labels for those keystores.
Regtest
- Full auction on a local chain (Zebra + Zaino regtest, real binaries): evidence/regtest-e2e.md. Deposit mode, 4 bids, close, publish, receipt check, refund planning.
- FROST spike: the first 2-of-3 FROST escrow spend mined on regtest, txid
8367e1c6ca8ef305678a7179faf3d161647f90da40bb5462ecc6dc6275ec016f(docs/spikes/frost-pczt.md).
Reproducibility
CI
.github/workflows/ci.yml, on every push to main and every pull request:
Test inventory
Generated from test-runner output byscripts/test-inventory.sh into evidence/test-inventory.md, the single source for counts and names. Don’t hand-count.
Adversarial tests worth reading first:
Not covered by an automated test: the testnet runs themselves (recorded as evidence), the embed widget, and anything ShieldRamp beyond the score.