The numbers.
How the pot splits
Every BurnBomb™ pot splits eight ways at settle. Winner takes the dominant share; second and third get smaller cuts; seed-phase contributors share a pro-rata pool; $BURN gets a deflation rake; the contract self-funds its own Chainlink VRF subscription; the founder payout address gets a tiny operations slice; whoever calls finalizeSettlement(roundId) earns a small keeper bounty.
| Recipient | Share | Notes |
|---|---|---|
| Winner (1st closest) | 72.5% | + cap-rebate + dust on big pots (excess keeper roll-in) |
| Second closest | 6.5% | Lower slot-index wins on ties |
| Third closest | 3.5% | Same tie rule as 2nd |
| Seed dividend pool | 10% | Pro-rata to seed-phase contributions |
| $BURN buyback rake | 5% | Plain ETH → $BURN contract · downstream buyback() locks $BURN forever |
| Founder payout | 0.5% | Two-step settable address · pull-payment like any other recipient |
| VRF self-funding | 1% | Contract auto-tops its own Chainlink VRF subscription · zero operator subsidy |
| Keeper bounty | min(1%, 0.01 Ξ) | Whoever calls finalizeSettlement() · excess rolls into winner |
Sum = 72.5 + 6.5 + 3.5 + 10 + 5 + 0.5 + 1 + 1 = 100%. Marketing shorthand: 5% of every pot funds $BURN deflation.
How the winner is chosen · Chainlink VRF v2.5
Randomness comes from Chainlink VRF v2.5, ETH-native (no LINK token). The contract owns its own VRF subscription, created and funded in the constructor. Each round pays 1% of the pot back into the subscription so the system is self-funding forever and survives gas-price spikes during VRF callbacks. No operator subsidy, no off-chain keeper top-ups.
Three-phase settlement keeps the on-chain surface small and honest about who knows what when:
- settle(roundId) · permissionless. Fires the VRF request. No keeper bounty for this step itself.
- rawFulfillRandomWords()· VRF callback. Stores the random word in contract state. Players see "random target revealed" here.
- finalizeSettlement(roundId) · permissionless. Ranks the top 3 closest claimed slots, credits payouts to the pull-payment ledger, sends the $BURN rake. Earns the keeper bounty (capped at 0.01 Ξ).
VRF retry · capped to keep things honest. If the callback doesn't fire within 30 min, anyone can call requestRandomnessAgain(roundId) to send another VRF request and earn a 0.0001 Ξ bounty. Total Chainlink requests per round are capped at 3 (1 initial + 2 retries). If all 3 fail to deliver, the round is recovered via the 72-hour emergency refund path. The 256-block-blockhash stuck-round failure mode from older lottery designs does not exist here.
Sold-out shortcut. If all slots fill at any point (during seed, active, or final countdown), the round IMMEDIATELY jumps to ready-to-settle. No final countdown, no waiting on the timer.
How the winner is picked · step by step
Once VRF delivers the random word, the contract picks winners deterministically. Anyone can reproduce the math from on-chain data · same input, same output, every time.
- Compute the target slot:
target = randomWord mod 100. That gives a number 0–99. The target may or may not be a claimed slot · either way is fine. - Measure distance: for every CLAIMED slot, compute
|slotIndex − target|. That's the slot's distance from the target. Empty slots are skipped. - 1st = lowest distance. The claimed slot with the smallest distance takes 1st place. Distance of 0 means the target was actually claimed · jackpot.
- 2nd = next-lowest, excluding 1st. Same scan, skip the slot that already won 1st.
- 3rd = next-lowest, excluding 1st + 2nd. Same scan, skip both. Top 3 podium locked.
What if two slots are exactly tied?
When two claimed slots are equidistant from the target (e.g., target = #50, claimed slots are #48 and #52, both distance 2), the contract uses one rule: lower slot index wins. This applies at every podium rank.
2nd: #48(distance 2 · ties with #52, but #48 < #52)
3rd: #52 (distance 2, after #48 is excluded)
#45 and #67 missed the podium
Why "lower slot index wins"? Lower slot index = cheaper slot (Minnow slot prices ascend with index: 0.001 Ξ at #1, 0.100 Ξ at #100). The rule actively rewards smaller bets in ties, which biases the game toward broad participation. It's also fully deterministic · no coin flip, no off-chain tiebreaker, no operator discretion at any rank.
Active-phase EV · how each entry shifts your odds
A new entry of value v arriving while you already hold a slot changes your expected value. The math:
Where N = current slots claimed, P = current pot. ΔEV is positive when v > P/N (the new entry is above the average slot value).
Translation: every active-phase player benefits when the pot grows. Some run the marginal math; most just FOMO when they see a bigger pot. Both grow the bomb, both grow the seed dividend, both grow the jackpot.