Appearance
Fair randomness
"Random" is the easiest thing to fake and the hardest thing to prove. Here is exactly where BurnBola's randomness comes from and why no one — including us — can steer it.
Exactly half burns. Always.
First, the deterministic part: each round burns exactly ⌊N/2⌋ tickets out of N live ones. There's no probability cloud, no variance in the count — randomness only decides which tickets, never how many. Every live ticket has an identical chance; position, purchase time, and wallet contents are irrelevant. Survival odds per round: exactly 50% at even N, better at odd N (at 3 live tickets — 66.7%).
Where the random seed comes from
The burn selection is seeded by a two-tier randomness cascade:
Tier 1 — Switchboard oracle (primary)
The contract requests randomness from Switchboard On-Demand, a decentralized oracle network with a commit-reveal scheme: the oracle commits to a future value before anyone (including itself) can know it, then reveals it. The contract verifies the reveal cryptographically. Up to 3 attempts are made, ~30 seconds apart.
Tier 2 — SlotHashes fallback (release valve)
If the oracle is down or unresponsive ~90 seconds into the round, the contract falls back to Solana's own SlotHashes — a commit-reveal on future block hashes: the contract first commits to a future slot number, and only after that slot has passed does its hash become the seed. The hash of a block that doesn't exist yet can't be known in advance by players or by us.
The fallback exists so the game can never get stuck waiting for an external service — autonomy beats elegance. The oracle stays primary because block hashes are, in theory, grindable by the block's producer; for a large jackpot we don't want even that theoretical edge. Two independent mechanisms, each sufficient, each verifiable from the transaction history.
What this rules out
- We can't pick winners. There is no instruction in the contract that accepts a winner from outside. The seed comes from the oracle or future block hashes; the selection from the seed is deterministic public code.
- We can't re-roll. A committed seed is consumed exactly once; the commit is on-chain before the reveal exists.
- Players can't snipe. Ticket positions don't matter, mid-game entry doesn't exist, and the burn order within a round gives no exit advantage — the exit price is fixed per round.
Verify it yourself
Every commit, reveal, and burn is a public transaction on Solana. Each game card links to the chain; the burn selection can be recomputed from the revealed seed by anyone with the (open) program code. You don't have to trust the app's animations — the chain is the game.