Mainnet Checklist
Binary markets run on Solana devnet today with development-velocity parameters and several scaffolded features. This page is the explicit gap list between the current devnet build and a mainnet launch. Items here are planned, not live.
The account structures, PDA seeds, and instruction set are intended to be identical between devnet and mainnet — only parameters, the yield wiring, and operational controls change. Do not assume any item below is live on devnet.
Parameter & wiring changes
| Area | Devnet (today) | Mainnet (planned) |
|---|---|---|
| Oracle threshold | 1 (single signer) | ≥ 3 independent signers, M-of-N matching |
| Resolution timelock / dispute window | 0 seconds | 48 hours |
| Admin-parameter timelock | 0 seconds | 72 hours |
| Yield accrual | Scaffold — CPIs not wired, total_yield = 0 | Kamino vault positions, realized yield distributed off-chain |
| Dispute | resolve_dispute, no bond | Adds a dispute bond to deter frivolous disputes |
| Authority | Single key | Squads multisig |
Oracle threshold → ≥ 3
Devnet finalizes on a single oracle submission (threshold = 1). Mainnet requires
at least three independent oracle signers to submit matching verdicts before
finalize_resolution can execute, so no single key can resolve a market. See
Oracle Resolution → M-of-N consensus.
Timelocks → 48h / 72h
- Resolution timelock / dispute window: 48 hours. After a verdict is written
(
oracle_status = 1), payouts are held for 48 hours, during which anyone can open a dispute (ML-3). Devnet uses0seconds. - Admin-parameter timelock: 72 hours. Changes to economic parameters
(
capital_loss_bps,crucible_share_bps, thresholds) are delayed 72 hours before taking effect.
Kamino yield wiring
The YIELD variant's accrual is a scaffold on devnet — the
deposit_to_yield / withdraw_from_yield CPIs are not called from finalize and
total_yield stays 0. For mainnet:
- Winner principal is routed into Kamino vault positions while the market is open.
- Realized yield is distributed to winners off-chain at settlement.
Until this is wired, do not build payout logic that assumes non-zero total_yield. See
Backing & Settlement → Yield accrual status.
Dispute bond
Mainnet introduces a dispute bond required to open a resolve_dispute against a
resolved market. The bond deters frivolous disputes; the binary_dispute[market_id]
record is extended accordingly. Devnet has no bond.
Squads multisig
Program authority and parameter control move from a single key to a Squads multisig, so privileged actions (config updates, upgrades) require multiple signers under the 72h admin timelock.
External audit
The magma_binary_vault and magma_crucible_pool programs — including the
settlement math, the M-of-N oracle path, the
forfeiture split, and the (then-wired) Kamino yield CPIs — are slated for external
security audit before mainnet. See Security.
Summary
| ✅ Live on devnet | 🚧 Required for mainnet |
|---|---|
magma_binary_vault + magma_crucible_pool deployed | Oracle threshold ≥ 3 |
| Classic + Yield settlement, SOL + SPL | 48h resolution / 72h admin timelocks |
| Backend resolver, sweeper, settlement, bot generator | Kamino yield wiring (replace scaffold) |
| Web creation flow, Kalshi sync | Dispute bond |
| Crucible forfeiture funding (50/50) | Squads multisig |
| — | External security audit |