Skip to content
VOUCHVOUCHDocs

Reference

Performance and limits

How long things take, how big they are, and the hard limits of the current design. Every number here was measured on the code in this repository; where it was measured is stated.

On this page

#At a glance

Proof11.9 KB11,884–11,898 bytes
Reserves batch, 3 proofs35.7 KBreserves.pofb
WASM verifier4.6 MBloaded once, in a worker
Attestor memory33 MBRender, 0.1 CPU

#Verification

Time to verify (ms)

0100200300400500WASM, one proof93Native CLI, one proof130Native CLI, batch of 3148WASM, batch of 3277WASM warm-up330
Measured 11 October 2026 unless noted: native on a 12-core Intel Core 5 210H under WSL; WASM in Node 24 through the committed build (pnpm test:wasm).
Show as a table
MeasuremsNotes
WASM, one proof93Node, after warm-up; testnet dormancy proof
Native CLI, one proof130whole process, including key loading; median of 3
Native CLI, batch of 3148batched Halo2 check; median of 3
WASM, batch of 3277members checked one by one in WASM
WASM warm-up330once per page: parameters and verifying keys; measured 24 Sep 2026

Natively, a batch of three costs barely more than one proof, because the openings of all members are checked in one multi-scalar multiplication. In WASM the members are checked one by one.

#The hosted attestor

Hosted attestor on Render’s free plan (0.1 CPU) (s)

012345Verify a proof0.3Rail certificate0.4Reserves batch + attestation2.0Deposit match3.4
Measured on the deployed container. A proof takes about 119 s at this CPU, which is why the hosted attestor does not prove and /demo uses pre-made proofs.
Show as a table
MeasuresNotes
Verify a proof0.3
Rail certificate0.4verify under policy, record tags
Reserves batch + attestation2.0
Deposit match3.4includes the testnet lightwalletd round trip

#Proving

Demo-ledger proof1.4 s12 cores, native
Same proof at 0.1 CPU~119 sRender free
Mainnet actions scanned565,704to block 3,493,000

A real-wallet proof adds trial decryption of every Ironwood action in the snapshot, which runs in parallel; the Halo2 proof itself is the same size of work whatever the wallet.

#Hard limits

LimitValueWhyWorkaround
Notes per proof5The delegation circuit has five slotsA reserves batch, or consolidate first
Value unit0.125 ZECThe circuit counts ballots of 12,500,000 zatoshiRound thresholds up
ClaimsHoldsAtLeastPayment and “received since” claims are designed, not built—
Batch members64The .pofb count fieldSeveral batches
Attestors per program8MAX_ATTESTORS—
Request expiry1–365 daysRequest validation—
Unmoved-since blocka multiple of 1,000Snapshots keep a checkpoint every 1,000 blocksPick the checkpoint at or before H
Attestor request body64 KiB (2 MiB for batches)Bounded memory per request—