A round every 30 minutes

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.

142857
Time to oracle
14:23
Round 47 · open
Current pot
0.847
ETH · grows with every swap
Guesses this round
23
11 players
Your tickets
0
0 PYRE staked
3 7 1 9 8 4

The fire has spoken. Scoring in progress.

Anyone can settle. Earn up to 0.025 ETH or 5% pro-rata.

63 / 210 scored ≈ 0.012 ETH bounty left

Pick six digits.

Each guess locks 1,000,000 PYRE. Win or lose, redeem after the round settles.

Submit a guess

Open
stake required1,000,000 PYRE
your PYRE balance0
if you win~0.797 ETH

After 30 min, anyone can roll() (1% bounty) and settleRound() in batches (5% / gas refund up to 0.025 ETH).

Your tickets

Round 47
No tickets yet.
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.

01

Buy & submit

Buy PYRE on Uniswap V4. 1% tax feeds the pot. Then submitGuess(digits) locks 1M PYRE per ticket.

02

The roll

After 30 min, anyone calls roll(). Contract pays Chainlink VRF in ETH. Caller earns 1% bounty.

03

Settle

VRF returns. Anyone can call settleRound(batchSize) to score guesses. Each settler earns up to 0.025 ETH.

04

Win or redeem

Top scorers split 94%. Stake is always redeemable. Everyone walks away — winners with ETH, losers with their PYRE back.

Pot split at roll()
~1%
1%
5%
94%
VRF Cost ~0.01 ETH
Roll caller 1%
Settle callers 5% (gas-capped 0.025 ETH)
Winners 94%

Past oracles.

Every winning number is recorded on-chain. Verifiable, immutable.

Round
Winning number
Top score
Pot
Winners
Loading on-chain history…

The questions.

Direct answers, no spin.

How is the winning number generated?
Chainlink VRF v2.5 with Direct Funding mode. The contract pays for randomness in ETH directly from the pot — no LINK subscription, no external dependency. Verifiable on-chain.
What happens if no one calls roll() or settle()?
Eventually someone will — there's a bounty. 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?
If one round has 500 guesses, scoring all of them in a single tx would exceed VRF callback gas limit. Splitting into batches (up to 200 per call) means anyone can contribute, multiple settlers can race in parallel, and large rounds always settle.
How is "closest" determined?
Per-digit position match. Answer 142857, guess 142345 = 3 matches (positions 1, 2, 3). 6/6 is perfect. Top score wins. Ties split evenly.
Why stake PYRE per guess?
Each guess locks 1,000,000 PYRE (0.1% of supply). After settlement you redeem fully — no fee on stake itself. The stake stops bot spam.
Can I submit multiple guesses?
Yes. Each guess needs another 1M PYRE locked. Use redeemMany() to batch-redeem all of them after settlement.
Can the team rug?
No. LP NFT locked at 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.
What's the cost to roll/settle as a player?
You don't have to roll or settle — bots will race. But if you do, you earn rewards: 1% for rolling, up to 5% (or 0.025 ETH gas refund) for settling. Anyone, anytime, no whitelist.