FAQ
Questions, answered.
Is this a lottery?+
Some might call it that, but it's really a positioning game. The amount you bet IS your guess, and the slot closest to a random target wins. There's real strategy in choosing slots based on where other players have already positioned · clusters create cover, gaps create exposure, and the second/third payouts reward proximity, not just the bullseye. The split: top 3 closest get 82.5% (72.5 / 6.5 / 3.5). Seed-phase contributors share 10%. 5% rakes to $BURN. 1.5% covers founder + Chainlink VRF self-funding. 1% pays whoever fires settle.
Why does the cheap slot cost more in gas than it does in ETH?+
Because we're on Ethereum mainnet. Every claim is a real transaction with real validator settlement. The cheapest slot (0.001Ξ) plus gas is real money in absolute terms even when the slot itself is small. We don't hide this · we lean into it. Gas is the filter that keeps bots out. Read why →
What if no one shows up?+
If the 6h seed cap passes without crossing the round's threshold (creator-set per round in v1.1, 0.015 → 1 Ξ, default 0.05 Ξ), every entry gets refunded. You lose gas, you get your ETH back.
What stops a whale from buying every cheap slot?+
Per-address cap forces sybil overhead (50 slots max per address per round). The cheap-slot carpet-bomb requires meaningful ETH, many funded wallets, gas across every entry, and irrational honest participation to be profitable. Monte Carlo here →
How is the random target chosen?+
Dual-oracle randomness · Chainlink VRF v2.5 (ETH-native, no LINK token) + Supra dVRF V3 fire simultaneously per round. The first fulfillment wins, the second callback is a graceful no-op · so a single oracle ghosting can never freeze a round. The contract owns and self-funds both reserves · 1% of every pot keeps them topped up so the system is autonomous forever.
Currently in single-Supra mode. Chainlink is disabled at launch while Supra proves out the full settlement flow on mainnet. Once the first round completes cleanly, the Chainlink reserve gets funded and dual-oracle mode activates · zero contract change required, just an operator
Settlement is a three-phase flow:
Currently in single-Supra mode. Chainlink is disabled at launch while Supra proves out the full settlement flow on mainnet. Once the first round completes cleanly, the Chainlink reserve gets funded and dual-oracle mode activates · zero contract change required, just an operator
enableOracle(1) call.Settlement is a three-phase flow:
settle() fires the oracle request(s), the oracle callback delivers the random word, then permissionless finalizeSettlement() ranks the top 3 and credits payouts.What if no oracle callback ever fires?+
Layered safety net. After a 30-minute grace window, anyone can call
If retries also fail to deliver, the round is recovered via the 72-hour permissionless emergency refund path ·
Net: worst case for a totally-ghosted round is a 72-hour wait + a single gas-only call from any wallet. The 256-block-blockhash stuck-round failure mode from older lottery designs does not exist here.
requestRandomnessAgain(roundId) to re-fire whichever oracles are currently enabled (dual-oracle in steady state, Supra-only at launch) and earn a small bounty.If retries also fail to deliver, the round is recovered via the 72-hour permissionless emergency refund path ·
emergencyResolveStuckRound(roundId) can be called by anyone (no owner gating) once 72 hours elapse from the stuck timestamp · which flips the round to refund-eligible and every player pulls their ETH back via withdrawRefund. Players are never gated on owner availability or oracle availability to recover funds.Net: worst case for a totally-ghosted round is a 72-hour wait + a single gas-only call from any wallet. The 256-block-blockhash stuck-round failure mode from older lottery designs does not exist here.
What happens if there's a tie?+
Ties are resolved deterministically by lower slot index wins, at all three podium ranks (1st, 2nd, 3rd). If two slots are equidistant from the random target · say the target lands between slot #47 and slot #48 · the lower-numbered slot takes the higher finish. The math is fully on-chain and reproducible · same input, same outcome, every time. No off-chain tiebreaker, no coin flip, no operator discretion.
Where does the 5% rake go?+
Directly to the live $BURN contract at
0x886fab.... Plain ETH transfer, no bridge · fills the buyback reservoir. The contract's buyback() function then sweeps that ETH on-chain to buy and burn $BURN. Every settled BurnBomb round feeds the engine.What's the seed dividend pool?+
10% of the FINAL pot is reserved for whoever contributed during the seed phase (before the round's creator-set threshold is hit · defaults to 0.05 Ξ in v1.1, tunable 0.015 → 1 Ξ). Your share is pro-rata to your seed contribution. The math rewards early movers asymmetrically. Worked examples →
Can the owner drain the pot?+
No. The only privileged function is
emergencyResolveStuckRound(roundId), which only enables per-claimer refunds. It has no recipient parameter, no amount parameter, and cannot specify where ETH goes. Owner identity persists after freezeAdmin(), but pause/unpause get permanently disabled and the only remaining owner action (emergency refund flip) still cannot drain. All 9 guarantees →Is the contract upgradeable?+
No.The contract code is non-upgradeable from deploy. No UUPS, no proxy, no upgrade authority. What's freezable is the pause/unpause admin layer · after BurnBomb #001 settles cleanly, the owner calls
freezeAdmin() · a one-way function that permanently disables pause() and unpause(). The 72-hour emergency refund path SURVIVES the freeze · that's the permanent recovery hatch.When do refunds happen, and how long do they take?+
Two paths. Normal:if the 6h seed cap passes without crossing the round's threshold, the round auto-enters refund state and every claimer can pull their ETH back immediately via
withdrawRefund(roundId, slotIndex) (one call per slot owned). No waiting. Emergency: if a round is genuinely stuck (both oracles ghosted, retries exhausted), anyone can call emergencyResolveStuckRound(roundId) once a 72-hour delay has elapsed from the stuck timestamp · permissionless, no owner involvement, no recipient/amount parameters, no drain. The emergency path survives freezeAdmin() · it is the permanent recovery hatch.What if a bug is discovered after deploy?+
Since the contract code is non-upgradeable, we can't patch in place. The recovery sequence: pause new entries (while
freezeAdmin()hasn't been called yet), use the 72-hour emergency window if needed, return everyone's ETH via withdrawRefund(roundId, slotIndex), and deploy a fresh v2 contract with the fix. BurnBomb #001 (the first Minnow round) exists exactly so this situation is caught BEFORE we ship the freezeAdmin tx.Where does pot ETH live before settle?+
In the BurnBomb™ contract itself. Pull-payment pattern means nothing moves until
finalizeSettlement(roundId) credits payouts. Winners, 2nd, 3rd, and seed-dividend recipients then call withdrawPayout(roundId) or withdrawSeedDividend(roundId) to pull their share. The contract never auto-sends · you pull. No one can front-run you. No one can block you.What about rounding dust or stranded ETH?+
Two fixes. Rounding dust (a few wei lost in percentage math) is absorbed into the winner share · the contract computes winner as
pot - allOtherSlices, so every wei leaves the contract during settle. Direct ETH sends are rejected by the contract's receive() function · anyone trying to send raw ETH outside of enter() gets reverted. Zero stranded funds.Will there be multiple bombs running at once?+
One round at a time per bracket contract. Only one round is live at any moment. The bracket reopens (anyone can call
createRound()) when the current round settles or refunds.What's the deployment status?+
Minnow v1.1 (dual-oracle) is deployed on Ethereum mainnet at 0x9e16…b2f8c. Code + all 6 linked libraries verified on Etherscan, Blockscout, and Sourcify. The contract owns and self-funds both oracle reserves (Chainlink VRF v2.5 + Supra dVRF V3). Supra health-check callback confirmed on-chain.
Currently in single-Supra mode · Chainlink is disabled at launch while Supra proves out the full settlement flow on mainnet. After the first round settles cleanly, the Chainlink reserve gets funded and an operator
The earlier v1 contract at
Currently in single-Supra mode · Chainlink is disabled at launch while Supra proves out the full settlement flow on mainnet. After the first round settles cleanly, the Chainlink reserve gets funded and an operator
enableOracle(1) call flips the contract into dual-oracle mode · zero contract change required. BET unlocks once activate() fires.The earlier v1 contract at
0xc989…7259 (single-oracle Chainlink) is deprecated · refund-claim continuity remains for any historical holders. Contract details →