This runbook is the release path. It is not evidence that mainnet is ready today.
- Run
npm run test:allfrom a clean dependency install. - Publish final trusted setup evidence for the exact artifact set or have the setup path explicitly accepted in the third-party audit.
- Complete a third-party audit against the exact release commit.
- Deploy the audited release to mainnet-beta.
- Publish
MAINNET_EVIDENCE.jsonfromMAINNET_EVIDENCE.example.json. - Run
npm run check:mainnet:evidence. - Run
npm run check:mainnet. - Tag the release only after both mainnet checks pass.
MAINNET_EVIDENCE.json must bind:
- audited release commit
- mainnet program id
- mainnet deployment transaction
- upgrade-authority policy
- payout-bound v2 artifact label
- eight-public-input proof shape
- final trusted setup report path and SHA-256 hash
- enabled payout instruction
- final third-party audit report path and SHA-256 hash
- audit scope commit matching the release commit
- accepted residual-risk summary
npm ci
npm run check:ceremony
npm run test:all
npm run check:mainnet:evidence
npm run check:mainnetnpm run check:mainnet:evidence is expected to fail until MAINNET_EVIDENCE.json exists and all fields are real.
Do not deploy or announce mainnet if any of these are true:
- the promoted circuit has fewer than eight public inputs
- the trusted setup report is missing, still devnet-only, or not accepted by audit
- v2 payout source does not verify the promoted eight-signal proof before transfer
- the audit report is missing, draft, or scoped to a different commit
- the deployment transaction is not published
- the upgrade-authority policy is unclear
npm run test:allfails- either mainnet readiness command fails