Binary Markets Overview
Binary Markets are YES/NO prediction markets settled on Solana. A market poses a single falsifiable question; participants back one side with capital; an M-of-N oracle resolves the outcome; and the winning side is paid from the losing side's pool. They are a distinct product from MAGMA's narrative conviction markets — different programs, different pools, and a different settlement model.
Two variants ship with the same program, differing only in how the losing pool is treated at settlement:
- CLASSIC — a pure zero-sum market. The losing pool is redistributed to winners pro-rata, minus a flat commission to the treasury.
- YIELD — a capital-loss market. Losers forfeit a fixed fraction of their stake and keep the remainder; winners recover full principal; and the forfeited capital funds the Crucible Pool.
The magma_binary_vault and magma_crucible_pool programs are deployed and operating
on Solana devnet, with SOL and SPL support, backend resolution workers, and a live
web creation flow. The REST /v1/binary/* surface and on-chain yield accrual are not
yet live — see Program & API and the status notes
below.
Classic vs Yield
Both variants are created from the same instruction set and resolved by the same oracle; the variant is fixed at market creation and determines the settlement math.
| Property | CLASSIC | YIELD |
|---|---|---|
| Settlement model | Zero-sum | Capital-loss |
| Loser pool treatment | Redistributed to winners | Partially forfeited |
capital_loss_bps | n/a | 3500 (35%) default |
| Loser principal returned | None (loser pool fully redistributed) | 65% of stake |
| Winner payout | Principal + pro-rata share of loser pool | Full principal + yield (see below) |
| Protocol take | 2% commission to treasury | Forfeiture split (see Crucible) |
| Funds the Crucible Pool | No | Yes — forfeitures only |
| Creation review | Admin review before live | Instant-live |
| Creation cost (native) | BINARY_MARKET_FEE_SOL (~5 SOL) + seed liquidity | BINARY_MARKET_FEE_SOL (~5 SOL) + seed liquidity |
MAGMA-native market creation carries an anti-spam fee — BINARY_MARKET_FEE_SOL (defaults to the
~5 SOL narrative publish fee) — on top of any seed liquidity, plus a Cloudflare Turnstile + signature
check. This applies to creator-seeded (seed) markets only; bot/admin/protocol-created markets and
Kalshi/Polymarket imports are not MAGMA-fee-gated. See
Creating Markets → the creation-fee gate.
CLASSIC settlement
A Classic market is zero-sum. At finalization the entire losing pool is distributed to the winning side pro-rata to each winner's stake, after a 2% commission is taken to the treasury. Winners receive their own principal back plus their share of the loser pool; losers receive nothing.
YIELD settlement
A Yield market is not zero-sum. The losing pool is split by capital_loss_bps (default
3500 = 35%):
- 35% of the loser pool is forfeited. Losers keep the other 65% of their stake.
- Winners recover their full principal — they do not capture the loser pool the way Classic winners do.
- The forfeited 35% is routed out of the market: split 50/50 between the Crucible Pool and the treasury.
The YIELD variant is named for a planned yield-bearing mechanism (winner principal
earning DeFi yield while the market is open). That accrual is a scaffold today: the
deposit_to_yield / withdraw_from_yield CPIs are not wired into finalize, and
total_yield is 0 at settlement on devnet. The mainnet plan routes principal into
Kamino vault positions and distributes realized yield to winners off-chain. See
Backing & Settlement and
the Mainnet checklist.
The Crucible relationship
The Crucible Pool is funded exclusively by binary
YIELD-market forfeitures — there is no other inflow. Of the forfeited capital,
crucible_share_bps (default 5000 = 50%) flows to the Crucible and the remaining
50% to the treasury. The Crucible then pays out weekly, pro-rata to eligible
participants (the YIELD-market backers themselves).
The Crucible is not part of the Echo / Forge / Seam / Core pool system that serves MAGMA's narrative markets. There is zero crossover: Classic markets never touch the Crucible, and the conviction pools never receive binary forfeitures.
Lifecycle
A binary market moves through an on-chain oracle_status state machine. The timelock
between resolution and finalization is 0 seconds on testnet and 48 hours on
mainnet, during which a dispute may be raised.
oracle_status | State | Meaning |
|---|---|---|
0 | pending / open | Market accepting backings; no verdict yet |
1 | resolved | M-of-N verdict written; timelock + dispute window running |
3 | disputed | A dispute was opened during the window; awaiting admin |
4 | refund_triggered | Resolution failed / refunded; backers reclaim stake |
The market is finalized (and payouts become claimable) once the timelock elapses with
no open dispute, or once an admin upholds the outcome. Full payout math is in
Backing & Settlement.
Programs
| Program | Devnet program ID | Role |
|---|---|---|
magma_binary_vault | HLFKqqKXmBfeh43Fiqdj1fBgGuXgpipcNq338Ve1pyd4 | YES/NO markets (Classic + Yield); backing, oracle resolution, dispute, claim |
magma_crucible_pool | 8BqDJTwKAJMSkQzC652N92KvtY7WK9ghqNLfhfru9R2e | Weekly pro-rata pool funded by YIELD-market forfeitures |
Both support SOL and SPL assets. The on-chain account model, PDA seeds, and full instruction list are documented in Program & API.
Where to next
- Creating Markets — the 5-step creation flow and source types.
- Backing & Settlement — payout math, disputes, refunds.
- Crucible Pool — funding, epochs, eligibility, claims.
- Oracle Resolution — consensus, categories, third-party sync.
- Program & API — on-chain program, REST surface, SDK helpers.
- Mainnet Checklist — what changes before mainnet.