Every claim in these docs should be checkable from the repository. This page lists where.
Test suites
| Command | Covers |
|---|---|
cargo test --workspace | Unit tests next to the code in every crate; packages/circuit/tests (circuit vs plaintext reference, credentials, mock rows); packages/settle/tests (memo and outcome vectors); relayer API contract tests such as orders_contract. Slow real-MPC and live-network tests are #[ignore] |
pnpm test | @zpredict/sdk against the Rust test vectors (core, memo, outcome); the web app's chart, markets and mock clearing; these docs (link linter, smoke test) |
pnpm build | Builds every app, including the privacy gates of the app and these docs (no third-party URLs in what the browser loads) |
pnpm check:ci | Biome lint and format |
CI (ci.yml) runs all of them, plus cargo fmt --check and clippy -D warnings, on every pull request; main requires it to pass.
End-to-end runs (regtest)
| Script | Proves |
|---|---|
scripts/relayer-e2e.sh | Deposit → trade → resolution → withdrawal through three real relayers; forged withdrawals by each relayer refused; payout is v6, Ironwood only, transparent in+out 0; no unsealed secret left |
scripts/settle-e2e.sh | Sealed DKG → two deposits → one batched 2-of-3 payout → mined; a one-zatoshi tampered vector is refused |
scripts/scan-e2e.sh | A tagged deposit is found by all three relayers' scanners, each opening only its memo slot (MEMO_FROM=sdk builds the request with the SDK) |
Regtest output recorded in packages/settle/README.md (each run is a fresh chain, so ids differ):
settle-payout: refused to sign: action 0: 4000000 zats to an address not in the payout vector
txid 8f5c8135addb23796c87f557ccb01dd1a859363b64a6680d48f01644c7d4cf00 version 6 height 123 ironwood actions 3 orchard actions 0 transparent in+out 0Testnet
| What | Value |
|---|---|
| Escrow (Ironwood-only UA) | utest18yg3cneyjgxxknjm0j9020hmx5jp2wm67qn2p3rfmflct9hwlt363gzl50qeu3ms2u044hq8jzuzkl2tq8xa4m0ukzvlpqgtvu96ffyy |
FROST group key (ak) | a0cff44d86411e03d1ae3a76982d38bf0aac73db9568a2496324167486dbc534 |
| Escrow birthday | testnet block 4,530,716 (key ceremony, 2026-10-23) |
Testnet transactions: to be added. Deposit and payout txids from the hosted demo go here once recorded (deposit txid, payout txid, block height, and the explorer-independent check below). Until then the regtest runs above are the on-chain evidence.
| Kind | txid | Height |
|---|---|---|
| Deposit | pending | |
| Batched payout | pending |
Check a txid against your own node: zcash-cli getrawtransaction <txid> 1 should show version 6, Ironwood actions, and no transparent inputs or outputs.
Check the live claims
curl -s https://r0.zpredict.site/group-key # the same key on r0, r1, r2
curl -s https://r0.zpredict.site/markets | jq '.[] | select(.status=="resolved") | {id, outcome, blockHash, outcomeSig}'
for i in 0 1 2; do curl -s "https://r$i.zpredict.site/view?after=0" | head -c 200; echo; done # digests only
curl -sI https://app.zpredict.site | grep -i content-security-policy
curl -sI https://docs.zpredict.site/docs/introduction | grep -i content-security-policyThe full list of checks, with what to expect, is in PRIVACY.md "Verify it yourself".