Docs
Elysa is an on-chain casino on Elysium, Kinetiq's layer 2 for Hyperliquid. Every game is a public smart contract paid in HYPE. This page explains how each game works, where the randomness comes from, where fees go, what the team can and can't do, and what can go wrong.
Elysa is on the Elysium testnet. Test HYPE has no value. Numbers on this page are the settings the mainnet contracts will use unless a line says otherwise.
Start playing
- Tap Connect wallet at the top.
- Press Log in and choose X, Google, email or a wallet (Rabby, MetaMask). On testnet you get 0.25 free test HYPE whenever your balance is under 0.05, once a day. After that every bet goes through without wallet popups.
- Choose a game from Games.
This is the testnet: test HYPE has no real value, so play freely.
Blob Royale
- Send blobs into the arena at a fixed price each (0.02 test HYPE on testnet). Every blob is one ticket: send 10 of 40 blobs and you hold a quarter of the arena.
- The 20-second countdown starts when a second player joins. You can send up to 50 blobs at a time, and the arena holds 1,000.
- When time is up the blobs brawl for about 12 seconds while the ring closes, until three are left. 1st takes 82% of the pot, 2nd 10%, 3rd 5%. The last 3% is the fee. With only two blobs in the arena, 1st also gets 3rd's share.
- One player can hold more than one place.
- The three places come from the round's random value (see Fairness). Every other knockout, who lands it and the fight feed are drawn from the same value, so a replay of any round tells the same story. Tap Replay next to a past winner to watch it again.
- Alone in the arena? Tap Take them back any time before a second player joins.
- If a round isn't settled within 2 minutes of the countdown ending, every player claims their own blobs back in full.
Coinflip
- Pick Mint or Lilac, pick a bet, press Flip. One signature; the coin lands in a few seconds.
- Right side: you get 1.96× your bet. Wrong side: you lose the bet. That's a 2% house edge.
- You play against the Treasury, so there's always a flip available and wins are paid in full. One flip can win at most 1% of the Treasury; the page shows the largest bet right now.
- If a flip isn't settled within 60 seconds, a Refund button gives you your bet back.
Jackpot
Jackpot has been retired: Blob Royale is the same bet (your share of the pot is your chance), with a faster round and three winners. The old Jackpot page stays online so anyone with a deposit in an unfinished round can still claim it back.
Tug of War
- Two players, the same stake, 100 blobs each.
- Every round you both secretly choose how many blobs to send (at least 1). The bigger group wins the round and pulls the rope one notch. Equal numbers: nobody pulls. Blobs you send are used up.
- Lead by 3 to win the whole pot minus 3%.
- Run out first and your opponent takes over: every blob they still have pulls one notch for them, straight away. If that gives them a 3-notch lead, they win.
- If both teams run out, the one ahead wins. Still level: a rematch with fresh blobs (after 5 rematches, both stakes are refunded).
- You have 30 seconds for each move. If your opponent stalls, you can claim the win.
- One signature per match. Opening or taking a match is the only thing your wallet asks you to sign. It also sets up a temporary match key on this device (with a tiny bit of gas, 0.001 HYPE). The page plays every move with that key in the background. The key can only play that one match: it can't move your HYPE, and winnings always go to your own wallet.
- Testnet only: a practice bot takes any match nobody joins within 20 seconds, and plays random moves.
Card duel
Both players hold the same 8 cards. Each round you both play one face down, then flip. First to 4 points wins the pot minus 3%.
- Otherwise the higher number wins the round.
- On hold: a tie or a Spy puts the round's point on hold. The next round's winner takes the held points too.
- If both players use all 8 cards without reaching 4, it's a rematch with fresh hands.
- 30 seconds per move; stalling loses.
- One signature per match. Opening or taking a match is the only thing your wallet asks you to sign. It also sets up a temporary match key on this device (with a tiny bit of gas, 0.001 HYPE). The page plays every move with that key in the background. The key can only play that one match: it can't move your HYPE, and winnings always go to your own wallet.
- Practice free: the Card duel page has a practice match against the house blob, in your browser, with nothing at stake.
- Testnet only: a practice bot takes any match nobody joins within 20 seconds, and plays random cards.
Slots
- Pick a bet and spin. The spin settles in about a second. About 1 spin in 3 wins something, and every win pays more than your bet.
| Result | Pays | Chance |
|---|---|---|
| 3 gold coins | 100× | 1 in 10,000 |
| 3 lilac | 40× | 1 in 1,000 |
| 3 peach | 15× | 1 in 200 |
| 3 mint | 8× | 1 in 80 |
| 3 drops | 4× | 1 in 24.6 |
| 2 coins, anywhere | 3× | 1 in 16 |
| Mint, peach and lilac, any order | 2.5× | 1 in 12.5 |
| 1 coin, anywhere | 1.5× | 1 in 9.1 |
- Where each bet goes: on average 94% comes back through the table above, 1.5% feeds the Mega Jackpot, 0.5% the weekly pot, and 4% is the house edge (3.5% for Treasury depositors, 0.5% to the FeeRouter). Total return to players: 96%.
- Wins are paid in full by the Treasury. When you spin, the Treasury sets aside your largest possible win (100× your bet) until the spin settles. One spin can win at most 1% of the Treasury, so the largest bet is the Treasury's size ÷ 10,000. The page shows the current maximum.
- Mega Jackpot: opens once the first 100 spins have settled (so it starts with a real pot). After that, every spin has a 1 in 100,000 chance per 0.01 HYPE bet to take 95% of it. It's paid from its own pool, not the Treasury.
- Weekly pot: every HYPE you bet is a ticket. One ticket wins the pot when the week ends (Thursday 00:00 UTC). The winning ticket is picked from a block hash after the week ends; there is no house seed in this draw.
- If a spin isn't settled within 60 seconds, a Refund button appears on the Slots page and gives you your bet back.
Crash
- Pick a bet and a cash-out multiplier (1.01x to 1000x), then press Bet. How high you can go also depends on the vault: one bet can win at most 1% of it, and the page tells you when a cash-out is too high for your bet.
- The first bet opens a round. Bets are taken for 10 seconds, then the round launches.
- The multiplier climbs from 1.00x until it crashes. If the crash point is at or above your cash-out, you win bet × cash-out. Below it, you lose the bet.
- Your chance of winning is 98.5% ÷ your cash-out: 2x wins 49.25% of the time, 10x wins 9.85%. That's a 1.5% house edge on every target.
- Limits: one bet can win at most 1% of the vault, and a round's bets can win at most 5% of it. The page shows the largest bet the vault takes for your cash-out.
- If a round isn't settled within 60 seconds of bets closing, a Refund button appears for everyone in it, and one refund returns every bet in the round.
Why you set your cash-out in advance. Elysium's clock only counts whole seconds and its blocks only exist when someone sends a transaction, so a contract can't fairly tell who clicked "cash out" first at 2.37x. Setting your cash-out with the bet keeps everything on-chain and verifiable. The climb on screen replays the result the contract already fixed.
You steer, the chain decides. During the flight you fly the blob with the arrow keys (or by dragging on a phone) and dodge obstacles for a flight score. Everyone in a round flies the same obstacle field. Steering never changes a payout: the crash point and every cash-out are fixed on-chain before the flight starts, so a bot that dodges perfectly wins exactly what you win. That's also why the end can't be dodged: at the crash point a mega urchin, too big to fly around, rolls in and splats the blob.
The formula. The contract takes 32 bits r from keccak256(houseSeed, blockhash(lastBetBlock), roundId) and sets the crash point to max(1.00, floor(98.5 × 2³² ÷ (2³² − r)) ÷ 100). For any target x, the chance of reaching it is 0.985 ÷ x.
Treasury (be the house)
The vault is the bankroll behind Crash, Slots and Coinflip. Losing bets flow into it and winners are paid out of it. Anyone can deposit HYPE and get eHOUSE shares, which own a slice of everything in the vault.
How you earn
- Crash has a 1.5% edge. Of every bet, 0.5% goes to the FeeRouter and the rest of the edge stays in the vault. Over many rounds the vault expects to keep about 1% of everything wagered.
- Your share's value is
vault balance ÷ total shares. It rises when the house wins a round and falls when it loses one. - Worked example: the vault holds 1,000 HYPE and you deposit 100, so you own 1/11. Players wager 50,000 HYPE over a month; the vault's expected gain is about 500 HYPE. Your share would then be worth about 145 HYPE. A lucky month for players can go the other way.
Depositing and withdrawing
- Minimum deposit is 0.01 HYPE. Your shares count straight away, including any Crash round already in the air.
- Withdrawing takes 24 hours: request it, then claim it a day later. You get the share value on the day you claim, so you keep sharing the vault's wins and losses while you wait.
- Why the wait: big bets are public. Without it, depositors could leave just before the vault pays a big win and leave the loss to everyone else.
- A new request adds to the one already pending and restarts the 24-hour wait for the whole amount.
- You can cancel a request any time before claiming.
- A claim can't use the part of the vault set aside for open bets. If a round is in the air, try again a few seconds later.
What protects depositors
- Deposit cap: the vault can hold at most a set amount of HYPE. At launch the house funds it itself; the cap for public deposits goes up step by step as the vault runs safely and after an outside audit. Lowering the cap never touches existing deposits.
- Caps: one bet can win at most 1% of the vault, one round at most 5%. The owner can lower these, never raise them above 1% and 5%.
- Money set aside: each bet's possible win is reserved in the vault until its round ends, so the vault can always pay.
- Only approved games can take HYPE out, and only up to what they reserved. Approving a new game takes 48 hours, visible on-chain, so depositors have time to leave before it goes live.
- The owner has no withdraw function. The team can pause deposits, set the cap, remove a game and approve one after 48 hours, and nothing else (see What the team can do).
- Share-price attacks: the vault uses virtual shares (the ERC-4626 method OpenZeppelin uses), so a first depositor can't inflate the share price to steal later deposits.
The vault can lose. The edge wins over many rounds, but a lucky streak for players can put it down for days or weeks. Only deposit what you can leave in through a bad run.
Fairness
Tug of War and Card duel have no luck at all. Your move is sealed (only a fingerprint of it goes on-chain) and revealed after both players have locked in. Nobody can see your move early, including us.
Coinflip, Slots, Crash and Blob Royale need a random result. It comes from two things mixed together:
- A house seed. Before the contract was deployed, the house generated a chain of 200,000 secret numbers where each is the hash of the next, and locked only the last one into the contract. Every game reveals the next number, and the contract checks that it hashes to the one before. So the house can't pick or swap a number after bets are in.
- The block hash of the block with the last bet, which nobody knows before that block exists.
The result is fixed the moment bets close. The house can't choose outcomes. What it could do: the keeper knows each result a moment before it reveals it, so it could refuse to reveal a round and let it refund instead of paying. In the player-vs-player games and Slots (paid from player pools) the house has nothing to gain from that. In Crash, which pays out of the vault, it could cancel rounds the vault would lose. You would see it: every refunded round is public on-chain, with its timer (60 seconds for flips, spins and Crash rounds, 2 minutes for Jackpot and Blob Royale). The house wallet never places bets.
Check a result yourself
- Open the game's contract in the explorer and find the settle transaction (
reveal, ordrawfor Jackpot). - Its input is the seed. Check that
keccak256(seed)equals the seed revealed one game earlier. - Recompute the result from the formula for that game (for Crash, see the formula) with the seed and the block hash. It must match what the contract paid.
What you do have to trust: Elysium has a single sequencer run by Kinetiq and Conduit that orders transactions and produces block hashes. A sequencer working with the house could in theory influence the block hash. That is true of every app on a single-sequencer chain.
Fees and $ELYSA
- 3% of the pot in Blob Royale, Tug of War and Card duel, taken only when a game has a winner. No fee on cancelled games, refunds or draws.
- Coinflip: 2% house edge; 0.5% of each bet goes to the fee router, the rest of the edge stays in the Treasury vault.
- Slots: 4% house edge; 0.5% of each bet goes to the fee router, the rest of the edge stays in the Treasury vault.
- Crash: 1.5% edge; 0.5% of each bet goes to the fee router, the rest of the edge stays in the vault.
- Gas on Elysium is tiny: a few millionths of a HYPE per move.
Where fees go
On testnet the FeeRouter is live and every game sends its fees there; the Reserve gets its share once $ELYSA launches.
Fees are sent to the FeeRouter contract, which splits every payment on arrival:
- 70% to the Reserve, which backs every $ELYSA (below). Until $ELYSA launches it just fills up, so the token starts with backing already in place.
- 20% team treasury, planned to be held as kHYPE (Kinetiq's staked HYPE).
- 10% player rewards.
Changing the split or where the 70% goes waits 48 hours in public, and that share can never go below 50%. The team can't withdraw it, except through a buyback swapper, and adding one also waits 48 hours in public.
The floor under $ELYSA
- The Reserve holds HYPE from casino fees. Backing per token = HYPE in the Reserve ÷ $ELYSA not yet burned. Every token counts, including locked and unsold tokens, so unlocks never lower it.
- Anyone can redeem $ELYSA with the Reserve for 98.5% of the backing, paid in HYPE. The tokens are burned. The 1.5% left behind raises the backing of every other token, so redemptions can only push the floor up.
- The backing grows every time someone plays, because fees keep flowing in.
- The Reserve has no owner and no way for HYPE to leave except redemptions. The token address is set once and can never be changed.
- There is no staking yield and no new supply: the floor is the whole mechanism. $ELYSA is not a share of profits and nothing on this page is a promise of returns.
$ELYSA hasn't launched yet. It is planned as a fair launch around Elysa's mainnet launch: a public launch open to everyone at the same price rules, with no presale and no airdrop. Launch details will be posted here first.
Points
- Points for every HYPE you play in a finished game, weighted by the game's house edge (or fee) so every point costs the same on every game: Slots 1,333, Tug of War, Card duel, Blob Royale 1,000, Coinflip 666, Crash 500 per HYPE.
- 200 points for every HYPE of profit when you win.
- A daily streak bonus: 500 points on your first day, growing by 500 each day in a row, up to 3,500, and never more than the points you played that day.
- Bets from your play balance count for the wallet that owns it.
- Invite friends: share your link from the Points page. You get 10% of your friends' game points for as long as they play, and they get +10% on their own points for their first 30 days. It counts for new players who open your link before their first game.
- Tumble, the free daily level: 500 points for clearing it, 50 more per walker home above the target, and 1,000 / 600 / 300 for the day's top 3. Tumble points count up to the points you earned from bets in the last 7 days, so it can't be farmed with empty wallets. Your score is checked by replaying your moves on our server.
Streak days are UTC days. How points turn into rewards will be announced before mainnet. See your rank and pick a username on the Points page.
Your wallet
- A Play now wallet is yours. Its key is created in your browser and stays there. We never see it.
- Tap your balance at the top, then Copy backup key, to keep a copy or import it into Rabby or MetaMask.
- If you clear your browser data or lose the device without a backup, the wallet can't be recovered. Nobody can move its funds but you.
Play balance (with your own wallet)
- Connect Rabby or MetaMask and choose Set up my play balance. Your wallet signs one free message (no transaction), which creates your play wallet.
- Top up once with one signature. From then on every bet in every game is sent from the play balance: no wallet popups. Winnings land there too.
- Cash out sends everything back to your wallet at any time, with no popup.
- Signing the same message on any device brings back the same play balance, so it can't be lost. Its key sits in the browser while you play, so only what you top up is ever at risk, never your main wallet.
- USDC, USDT and KNTQ top-ups are coming: they'll be swapped to HYPE on the way in.
Security
- Tests: every contract has a Foundry test suite (over 140 tests), including fuzz tests that check the contracts can always pay everything they owe.
- Internal review: done on all contracts before mainnet. It found two issues, both fixed: buybacks, if they are ever turned on, could have been triggered by anyone at a manipulated price (now only the keeper or owner can trigger them, and only within the price limits), and a lapsed Slots weekly draw could be restarted by a losing ticket holder (now only the keeper can restart it). Testnet runs the same reviewed code as mainnet.
- No outside audit yet. The vault, Crash and the FeeRouter are live without one. That's why the vault has a deposit cap. An audit is planned once the treasury can pay for it; the report will be linked here and the cap raised after it.
- Payouts can't be blocked: winnings are sent directly; if a wallet refuses a payment, the amount is kept for it to withdraw later, so one player can't jam a game.
- Every function that moves HYPE is protected against re-entry.
What the team can do
Every owner-only function in the deployed contracts. "The owner" is one team wallet on testnet; on mainnet every contract is owned by a multisig from the first block.
- Every contract with an owner: hand ownership to another address.
- Every game: change where its fees go, but only after a public 48-hour wait. Fees can only go to the FeeRouter; anyone can push them there with
flushFees(), and there is no function to withdraw them anywhere else. - Coinflip, Slots, Crash: pause new bets and lower the largest bet (never above 1% of the Treasury). Crash can also lower its per-round cap (never above 5%). Slots can set the operator, the keeper that may restart an expired weekly draw.
- Blob Royale: pause new entries (a running round still settles or refunds). The 3% fee and the 82/10/5 split are fixed in the code.
- Tug of War, Card duel: pause new matches (running ones always finish or refund), set the fee (never above 5%, never changed for a match already open), and set stake limits.
- Treasury vault: pause new deposits, set the deposit cap, remove a game instantly, approve a new game after a public 48-hour wait. There is no function to withdraw depositors' HYPE.
- FeeRouter: withdraw the team treasury and player-rewards buckets, change where those two buckets go, set the operator and the buyback size and spacing within hard limits. Changing the split, the Reserve address or the swapper waits 48 hours in public, and the Reserve share can't go below 50%.
- Reserve: nothing. It has no owner.
- The keeper (the server that reveals seeds) can delay results but not change them; delays end in refunds.
No contract is upgradeable. What's deployed is what runs.
Risks
- Smart contract risk. The contracts are unaudited. They can have bugs despite testing and review. You use them at your own risk; don't put in more than you can afford to lose.
- Vault drawdowns. Depositors can lose money over days or weeks when players run hot.
- Keeper downtime. If the keeper stops, games pause and refund instead of settling.
- Chain risk. Elysium is a new layer 2 with one sequencer. An outage or a sequencer problem affects every app on it.
- Guest wallets live in your browser. Back up the key; clearing browser data without a backup loses the wallet.
- Local rules. Online gambling is restricted in some countries. Check yours before playing.
Contracts
Every contract is public on the Elysium testnet. Open any of them in the explorer. Mainnet addresses will be listed here at launch. The testnet contracts are the same code mainnet will run.
- Coinflip
0xc609c10210ed2d753B30e0538215203277b79A4B - Jackpot
0x54bEe72Ec34A1EccF6ef7CAad2a21Bc5BBb41e91 - Tug of War
0x8F8610Fa3E5bDcA92AECdC554be3deb5f796cdA4 - Card duel
0x03dE2040c625E7f2dCf8D2F7eEBEFbd25220d3b7 - Slots
0xA22CF8f84A199776cD351E8101c4A1872Ee115eB - Blob Royale
0xF41281f76524f37785C2EbaC9920f02D2bFD462b - Crash
0x27B637C6ce158DDbb562F567031E0d0078FD5Acd - Treasury vault (eHOUSE)
0xb17D55F7E2E992A9b68FB2aBA17bEC763B0a8E65 - Reserve
0x4ff5fc97A555533AeF3834F2B1cee7B166A2628F - tELYSA (test stand-in for $ELYSA)
0xe7d386748F976fcC5cDFbE4180D5E1C7Ef0Af8B1 - FeeRouter
0x9f1A8dF3EE766b209BD217A0d83Fc8c00FF40D3C
FAQ
Is this on mainnet?
Not yet. Everything runs on the Elysium testnet with test HYPE. Mainnet follows Elysium's own mainnet launch.
Can the house see my Crash cash-out and cheat?
Everyone can see bets; they're on-chain. The crash point comes from a seed locked in before the game and a block hash nobody knows in advance, so seeing bets doesn't help anyone pick the result.
Why did my vault claim fail?
Either 24 hours haven't passed yet, or a Crash round was in the air and its possible wins were set aside. Wait a few seconds and claim again.
Where do I report a bug?
Message the team on X.