How a game works
A game moves through a fixed sequence of phases. Everything below is enforced by the smart contract; the app just displays it.
SALE → BURN → EXIT → BURN → EXIT → BURN → … → ENDGAMEA note on timing — everything is measured in blocks
Every deadline in BurnBola is counted in Solana blocks, not wall-clock time. A block is ~0.4 seconds, but block times can stretch under network load — so blocks (not minutes) are the honest, tamper-proof unit, and the same value the contract checks. Durations below are given in blocks (with a rough time for intuition). The Mini App shows a live countdown for every deadline, so you never have to count blocks yourself.
1. Someone starts a game
Any player can create a game. The creator pays the on-chain account rent (~0.12 SOL — a storage deposit, most of it returned when the game is cleaned up afterwards) and must buy ticket #1 in the same transaction — the contract refuses a creation without the creator's own skin in the game. Named games can sell in parallel without limit — it's a launchpad: every creator runs their own sale with their own on-chain showcase (name + socials, optional banner). Unnamed games queue one at a time: a second unnamed sale can't open until the current one starts or cancels (named vs unnamed).
2. Sale
Tickets sell at a fixed price each, up to 100 per wallet per game. The sale has no clock at first: it waits as long as needed for the game to reach its minimum to start (100 tickets in the Shrimp league, 10 in the Whale league).
The moment the 100th ticket is sold, two things lock in:
- the game will definitely happen — there is no way back to "undersubscribed";
- a 216 000-block countdown (~24h) starts. Tickets stay on sale during the countdown.
The game becomes ready to start when either the countdown ends or the game hits the 40 000-ticket ceiling — whichever comes first. If a game never reaches 100 tickets, it can eventually be cancelled and everyone refunded — see Cancelled games & refunds.
One creator privilege here: in a named game (on-chain name + at least one social — details), the creator may postpone the start — push the countdown back by one full sale-window, at most twice, and only during the countdown's last window. Everyone sees a «start postponed by creator» notice; the 40 000-ticket ceiling still starts the game regardless.
One more thing: nothing happens by itself on a blockchain — something off-chain has to send each transaction. A Keeper does that automatically: it starts the game the moment the sale is ready, and drives every step after. You don't trigger anything. (How a game runs itself.)
3. Round 1 — the first burn
First, the contract takes the round commission — 10% of the bank, before every burn including this first one — and splits it (75% of it seeds the jackpot; see Fees, bank & jackpot). The jackpot exists before anyone has burned.
Then the contract draws verifiable randomness (how) and burns exactly ⌊N/2⌋ of the live tickets. Not "about half" — exactly half, rounded down. Every live ticket has an equal chance; ticket numbers, purchase order, and wallet size make no difference.
With N live tickets, your chance to survive a round is (N − ⌊N/2⌋) / N — exactly 50% for even N, and better than 50% for odd N (at 3 live tickets it's 2/3).
Round 1 is the only round with no exit window before it: everyone who bought in faces the first burn together.
4. Exit window (108 000 blocks ≈ 12h)
After every burn, the game pauses and opens an exit window. The contract computes a fixed exit price for the round:
exit price = bank ÷ live tickets(the round's commission was already taken before the burn, so this is simply the bank split among the survivors). During the window any holder can sell any number of their live tickets back at exactly that price minus the flat 1% fee — fcfs does not apply here, the price is fixed for everyone who decided to exit. In the same window tickets can also change hands on the P2P market, and newcomers can enter the game at its fair live value while the per-round entry quota lasts (Buying tickets).
When the window closes, the contract takes the next 10% commission off the bank and the Keeper runs the next burn automatically.
5. Burn → Exit → Burn → …
Rounds repeat: burn half, open exit window, close it, burn half again. Each round the exit price roughly doubles (half the claimants, ~90% of the bank). The longer you stay, the more money you get for the exit ticket — and the closer the jackpot looms.
6. Endgame
When one live ticket remains, the game ends: the winner receives the entire remaining bank + jackpot, paid straight to their wallet. The game is recorded in history, and a final cleanup transaction returns the storage rent to the game's creator.
What if zero tickets remain alive? It can happen only if during one of the exit windows all tickets will exit the game. Thus there will be no tickets to burn and the game will end automatically. With no winner, the jackpot isn't lost: 50% seeds the next game's jackpot and 50% goes to the champions tournament pot. The players who exited got their guaranteed payouts; nobody's money is stranded.
How long does a game take?
Roughly: sale (216 000 blocks after the minimum) + a 108 000-block exit window per round. A 100-ticket game has ~7 rounds (100 → 50 → 25 → 13 → 7 → 4 → 2 → 1); a full 40 000-ticket game has ~16 rounds. At ~0.4s/block that's on the order of a few days to about a week end to end — but the block counts are what the contract enforces; clock time only follows if blocks keep their usual pace.