How to Play
1. Connect Your Wallet
Open the app and connect a supported wallet:
MetaMask
Rainbow
Coinbase Wallet
WalletConnect
The app runs on Hyperliquid L1 (HyperEVM) — Chain ID 999. If your wallet does not have the network configured, it will be added automatically.
2. Buy Tickets
Each ticket consists of:
5 white numbers
1–90
Must be unique, stored in ascending order
1 gold number
1–90
Can be the same as a white number
1 gold position
0–4
Which slot (of the five) the gold number occupies
You can pick your own numbers or use the random generator.
Limits
Per player per round: up to 25 tickets.
Per round total: up to 10 000 tickets.
Pricing
Ticket price is dynamic — it equals 0.05 % of the combined Jackpot + Super Jackpot pool, with a floor of 0.01 HYPE.
Free Ticket Credits
If you have free ticket credits (earned by triggering a public draw or cancelling a stuck draw), they are applied automatically and reduce the amount you pay.
3. Wait for the Draw
Once the round's upkeep interval elapses (default: 24 hours) and at least one ticket has been sold, the draw can be triggered:
Automated — the server calls
closeBettingAndDraw().Public — after a 5-minute grace period, anyone can call
triggerPublicDraw()and earn 2 free ticket credits.
The contract sends a CCIP message to LotteryVRFRequester on Base, which requests a random word from Chainlink VRF v2.5. The result is sent back to Hyperliquid via CCIP.
During the draw, ticket purchases are paused.
4. Settlement
After randomness is applied, the round enters the DRAWN state. Settlement counts winners and calculates payouts:
Small rounds (≤ 500 tickets): settled in a single
settleRound()call.Large rounds (> 500 tickets): settled in batches via
settleRoundBatch().
Anyone can trigger settlement. The caller earns 1 % of the round's fee pool as a reward.
Once settled, a new round opens automatically.
5. Check Results & Claim
After settlement, open the History tab to view past rounds and check your tickets.
Match 5/5 whites → you win a share of the Jackpot.
Match 5/5 whites + exact gold number and position → you also win a share of the Super Jackpot.
Claim your prizes with a single transaction (claimPrize) or batch-claim multiple tickets at once (claimPrizeBatch).
Prizes never expire — claim whenever you like.
If an ETH transfer fails (e.g. your address is a contract that rejects transfers), your prize is stored in pendingPayouts and can be withdrawn later with claimPendingPayout().
Last updated
Was this helpful?