On-chain raffle · BNB Chain
Same odds for everyone holding a ticket.
LOTTERY is a BNB Chain token wired to a round-based drawing vault. Stake the minimum and you get exactly one ticket — staking more doesn't buy extra chances. The prize is BNB, funded straight from the token's own trading tax.
Will be posted at launch
How it works
One round runs through five steps
The whole process happens on-chain and anyone can call the functions below — no team has to stand in and run the draw for you.
Trading fills the prize pool
Every buy or sell of LOTTERY carries a 1% tax. That tax is converted to BNB and sent straight into the vault — this is the pool the prize gets paid from.
Stake to get a ticket
Approve, then call enter() with the amount you want to stake. The moment your balance reaches the minimum, your wallet counts as exactly one ticket for this round — staking further doesn't create a second ticket.
Round closes, prize gets locked in
Once the round's time is up, anyone can call the close function. A fixed percentage of the accumulated pool is locked in as this round's prize; everything else stays in the pool for the next round.
closeRound()Drawn from a future blockhash
A few blocks later, the draw function reads the hash of a block that was committed to in advance — at close time nobody could know what that hash would be — and uses it to pick one qualified ticket at random, with equal odds for every ticket.
drawWinner()Claim the prize, withdraw your stake
The winner claims the BNB prize. More importantly: once a round has been drawn, everyone who staked — winner or not — can withdraw their full LOTTERY stake back. Your stake is never at risk; only the BNB prize is won or lost.
claimPrize(roundId) · claimStake(roundId)Fair odds
One wallet, one ticket — staking more doesn't win more
This is a deliberate design choice: your odds of winning are not proportional to how much you put in.
Fair by wallet, not by size
A wallet that stakes exactly the minimum has the exact same odds as a wallet that stakes ten times that. Staking more only changes how much you withdraw afterward — it never buys an extra ticket.
A trade-off worth knowing
Because tickets are counted per address rather than per token, someone willing to split funds across many wallets — each staking the minimum — could in theory collect more tickets than someone holding a single wallet. The minimum stake is set high enough that splitting like this isn't worth the gas and capital cost, but it's still worth understanding before you stake — it's a trade-off of this design, not a bug.
Tokenomics
Trading tax feeds the prize pool directly
There's no separate team wallet collecting the tax — the entire flow goes straight into the drawing vault.
-
Buy taxApplied on every LOTTERY buy order1%
-
Sell taxApplied on every LOTTERY sell order1%
-
Tax allocationAll of it converts to BNB and funds the drawing vault — no burn, no separate dividend, no added liquidity100%
-
Paid out per roundA fixed share of the accumulated pool; the remainder rolls automatically into the next round—%
Security & randomness
A transparent draw, no third party needed
No admin key gets to pick the winner. A commit–reveal scheme uses a future blockhash as the source of randomness.
- When a round closes, the contract commits to a block a few blocks in the future — at that moment, nobody, not even validators, knows what that block's hash will be.
- Once that block exists, anyone can call the draw function so the contract reads the hash itself and picks the winner with a modulo operation, giving every ticket an equal chance.
- If nobody calls the draw within 256 blocks of the committed block, the original hash is no longer available on-chain — the contract automatically re-commits to a new block instead of drawing on an empty, predictable hash.
- This is a gas-free mechanism, well suited to a community lottery at a moderate scale. For very large prizes, blockhash-based randomness still carries a theoretical degree of validator risk — worth keeping in mind as the pool grows over time.
- Player stakes and the prize pool are tracked separately inside the contract's own accounting — win or lose, your stake is always withdrawable once a round has been drawn.
Frequently asked
Before you stake
Can I lose my staked tokens?
No. Once a round has been drawn, anyone who staked — winner or not — can call claimStake() to withdraw the exact amount of LOTTERY they put in. Only the BNB prize is won or lost; your principal always comes back.
How much do I need to stake for a ticket?
Reaching the minimum configured for the vault (see "LOTTERY needed for a ticket" above) is enough for exactly one ticket. Staking more doesn't create a second ticket — the extra balance is simply returned in full once the round ends.
What happens if nobody reaches the minimum in a round?
That round has no winner, the locked prize is returned to the shared pool, and a new round starts immediately. No BNB ever gets stranded.
Where does the prize come from?
From LOTTERY's 1% buy / 1% sell trading tax, converted to BNB and accumulated in the vault. Each round only pays out a fixed percentage of that balance — the rest rolls forward automatically, letting the pool grow over time instead of being emptied by a single winner.
Who controls the draw?
Nobody. Both the close and draw functions are open to any address to call — there's no privileged admin role in picking the winner. See "Security & randomness" above.
Ready to grab a ticket for the next round?
The contract address will be announced right at launch. Follow Telegram or X so you don't miss it.