Prerequisites
- Node 22+
- Monad Foundry — the standard
foundryup will not give you Monad’s
gas schedule, and every gas number in this project depends on it
circom 2.1.9+
Build
Always run make fixtures, never the individual generators. They are coupled: the settlement
fixtures prove a statement about the ciphertext the action fixtures produce, so regenerating
one alone leaves a proof bound to a ciphertext that no longer exists.
Deploy to testnet
The deployment verifies itself before reporting. If any invariant fails — an unbound exit
path, a stale committee key, a miswired component — it reverts rather than printing addresses.
Verify a deployment
Run both after any deploy. Two of the worst bugs this project has shipped were deployments
that looked fine and could never pay anyone out.
Run the services
Run them in separate environments. The sequencer is trusted for liveness only; the
publisher holds the committee key, and anyone who obtains it can decrypt every bet.