Read the
fire.
Every 30 minutes, the pyre speaks in six digits. Submit a guess. The closest to the truth — by position — takes the pot.
Pick six digits.
Each guess locks 1,000,000 PYRE. Win or lose, redeem after the round settles.
Submit a guess
After 30 min, anyone can roll() (1% bounty) and settleRound() in batches (5% / gas refund up to 0.025 ETH).
Your tickets
Submit a guess to play.
Four phases.
Fully on-chain.
No admin, no upgrade, no team allocation. Chainlink VRF paid in ETH from the pot itself — no LINK subscription, no external dependencies.
Buy & submit
Buy PYRE on Uniswap V4. 1% tax feeds the pot. Then submitGuess(digits) locks 1M PYRE per ticket.
The roll
After 30 min, anyone calls roll(). Contract pays Chainlink VRF in ETH. Caller earns 1% bounty.
Settle
VRF returns. Anyone can call settleRound(batchSize) to score guesses. Each settler earns up to 0.025 ETH.
Win or redeem
Top scorers split 94%. Stake is always redeemable. Everyone walks away — winners with ETH, losers with their PYRE back.
Past oracles.
Every winning number is recorded on-chain. Verifiable, immutable.
The questions.
Direct answers, no spin.
How is the winning number generated?
ETH directly from the pot — no LINK subscription, no external dependency. Verifiable on-chain.What happens if no one calls roll() or settle()?
roll() caller gets 1% of pot. settleRound() callers split 5% of pot (or gas refund, up to 0.025 ETH each). MEV bots compete for these.Why batched settlement?
How is "closest" determined?
142857, guess 142345 = 3 matches (positions 1, 2, 3). 6/6 is perfect. Top score wins. Ties split evenly.Why stake PYRE per guess?
Can I submit multiple guesses?
redeemMany() to batch-redeem all of them after settlement.Can the team rug?
0xdEaD. No admin keys. No claimFees. No upgrade path. No setter functions. Source verified on Etherscan. Tax rate, round duration, stake amount — all are constant in code.