Skip to main content

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.