How it works
One chip is one USDC, in and out at the same rate. The shuffle is provably fair and you can check it yourself, and your hole cards are sealed in a hardware enclave that serves each one only to the seat that holds it.
The life of one hand
Click through the stages. The key below says which are checkable from public data and which are sealed in hardware.
Try to cheat it
The attacks a poker player actually worries about, and where each one dies. Open any attempt.
Read an opponent's hole cardsblocked
Each card account answers only its seat's occupant. An authenticated request from any other wallet returns nothing. Measured, not assumed.
Scrape the cards from Solanablocked
Card accounts are private during play, and the deck is wiped at hand end before anything public could carry it.
Rig the shuffle as the operatorblocked
The seed is the VRF output XOR every player's salt. Steering it needs the oracle and every seated player colluding; one honest player is enough.
Take money out with a session keyblocked
A session key plays hands for you without a popup for every action, and that is all it can do. Depositing and cashing out always need your wallet. Keys last a week, live only in this browser, and you can revoke one at any time.
What keeps your cards private
Four parts, and what each one does. Open any of them.
Intel TDX
The deck and every hole card live inside a hardware enclave, and the enclave will not serve a card to anyone but the seat that holds it. Intel's hardware isolation is what enforces that, at the silicon rather than in our code.
The validator
MagicBlock runs the enclave. The design denies them card access, and their validator keeps rollup execution traces only: commits, account cloning, rate limits. No account data and no program logs, so no cards.
Attestation
The app checks a fresh Intel TDX quote before it will log in to the validator at all, and on mainnet it also requires an approved workload measurement. A table whose enclave does not attest is a table this client refuses to join.
Where your chips sit
Chips in your balance sit on Solana, owned by you and never delegated. Only a seat stack goes to the rollup for the length of a session, and every hand is committed back to Solana as it settles.
The fees
2.5% of a flopped pot, capped at 3 big blinds. Drag the pot to see it.
No flop, no rake. A pot of one big blind or less is never raked. The chips come out of the pot at showdown; none are minted to pay it.
Pots of one big blind or less pay no rake, and neither does a hand with no flop or no drop. Fees round down to whole USDC, so the headline rate is a ceiling on small pots: a cash pot under $40 pays nothing at all. A Flip instead takes 10% of the contested winnings only, so uncalled bets and chips that were never committed stay redeemable as USDC.
Flips, and $POKER
A Flip is one hand of poker with one betting round, and the only way to get the token before the curve graduates. The full terms live on the token terms page.
How a Flip is played
Everybody antes a fifth of the table’s stake. Hole cards and the flop are dealt together, then one betting round of fold, check, bet or raise, then the turn and river run out and the best hand takes the pot. It is real poker: position, sizing and bluffing all work, because you are deciding against hands you cannot see.
Your cards are hidden the same way
Folding only means anything if your cards are hidden while you decide, so a Flip runs where the cash game runs: on the MagicBlock rollup, deck sealed in the enclave, each seat’s cards readable only by its occupant, the shuffle seeded by the oracle plus every player’s salt and checkable after the hand. A Flip is dealt exactly the way the cash game is.
A Flip table plays a session
Before a Flip table goes private it reserves a session on Solana, and the reservation travels with it. Hands keep starting for as long as people keep playing; half an hour of quiet ends the session, and a day ends it regardless. Every hand is committed to Solana as it settles, and your win is paid into the escrow from that record while the table plays on, so nothing waits for the table to come home. If a table never comes home at all, its reservation can be released by anyone a day later, so one stuck table cannot hold up everybody else’s allocations. Any chips still on that table wait for the rollup.
What the winner actually receives
The eligible contested winnings leave the game vault as USDC within moments of the hand settling, move to the separate token escrow, buy $POKER on the bonding curve, and are credited to the winning wallet as an allocation with its cost written on chain. The line beside the Flip pill follows that, step by step. Uncalled bets return as chips.
Those tokens cannot be moved, sold or transferred until the curve graduates. The token itself enforces that: a sealed transfer-hook allow-list refuses every destination except the escrow and the pool. That is also why nobody, us included, can buy it on the open market beforehand.
When the curve graduates
Graduation is a reserve condition. When the pool’s quote reserve reaches the threshold written into its config at creation, admission closes and existing rounds and purchases drain before delivery opens. Both figures are fields on accounts anyone can read, the comparison between them is the graduation test itself rather than an estimate of it, and anyone can execute the transition. Trading opens once, and there is no instruction to close it again. From that moment the token is ordinary: you can sell it anywhere, buy more anywhere, and send it to anyone. The escrow then sends every allocation to the wallet it belongs to, so there is nothing to click and no SOL to find.
You can also take your own allocation yourself at any time, from this site or straight from the program, and nobody can send it anywhere except to you: the delivery instruction has the destination pinned to your own account, which is why it is safe to let a stranger pay the fee for it.
The escrow’s own orders are bound by an immutable buy ceiling and sell floor, fixed before the first Flip was ever played, so no market move can have it overpay for your round. A round that will not fill inside those bounds unwinds instead: you get the USDC principal back, plus any tokens already bought for it, and nobody else’s allocation waits on it.
If the launch is wound down
The automation sells through the approved market into escrow and returns proceeds, not face value, pro rata by each allocation’s on-chain cost basis. What it sells for is what comes back.
Who can touch the money
USDC and tokens stay in program custody throughout, and measured balance changes inside configured price bounds decide what can be credited. Keepers pay fees and trigger steps; they cannot choose a beneficiary or report a sale that did not happen.
What you can check
| Public shuffle evidence | V2 binds source metadata to the settlement digest, checkable by anyone |
| Chip conservation | Enforced by Solana account ownership |
| Rules correctness | Property tested, deterministic |
| Cards hidden from everyone but your seat | Enforced by the enclave; each card account answers only its occupant |
| Which enclave you are dealt from | A fresh Intel TDX quote is checked before login, and an approved measurement on mainnet |
| Hand completes if you disconnect | Yes, auto-fold |
| Card state kept out of operator logs | Per MagicBlock: rollup traces only, no account data, kept a week |
| Hand survives the validator restarting | Yes, it resumes where it left off |
| Your balance stays on Solana | Always. Only a seat stack is delegated, for the length of a session |
| Nobody can hold the token before graduation | Enforced by the mint's own transfer hook, readable on chain |
| Getting your allocation after graduation | Yours to take whenever you like, and deliverable only to your own account |
