Skip to main content

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.

Devnet vs mainnet

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

AreaDevnet (today)Mainnet (planned)
Oracle threshold1 (single signer)≥ 3 independent signers, M-of-N matching
Resolution timelock / dispute window0 seconds48 hours
Admin-parameter timelock0 seconds72 hours
Yield accrualScaffold — CPIs not wired, total_yield = 0Kamino vault positions, realized yield distributed off-chain
Disputeresolve_dispute, no bondAdds a dispute bond to deter frivolous disputes
AuthoritySingle keySquads 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 uses 0 seconds.
  • 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 deployedOracle threshold ≥ 3
Classic + Yield settlement, SOL + SPL48h resolution / 72h admin timelocks
Backend resolver, sweeper, settlement, bot generatorKamino yield wiring (replace scaffold)
Web creation flow, Kalshi syncDispute bond
Crucible forfeiture funding (50/50)Squads multisig
External security audit