Swap anything on Robinhood Chain
The best price across Uniswap v3 and v4, pons pools included, compared after gas. Settles through Uniswap's audited Universal Router, straight from your wallet.
- Uniswap contracts onlyUniversal Router 2.1.1 + Permit2. ROOK deploys nothing you approve.
- 0.30% fee, shown before you signHalf buys and burns $ROOK once it launches on pons.
- Exact approvals by defaultApprove only what you swap; unlimited is opt-in.
Share ROOK, earn from every swap
Your referrer share of the swap fee is paid in the same transaction, straight to your wallet. No claiming, no waiting.
- 1Claim a codeSign a message (no transaction, no gas) to link a code to your wallet. One code per wallet.
- 2Share your linkAnyone who opens it is referred for 30 days on that device.
- 3Earn on every swap20% of the ROOK fee on their swaps is paid to you inside each swap.
Earnings
Fees buy $ROOK and burn it
Half of every ROOK Swap fee goes to the burn wallet. It swaps what it collects into $ROOK through the same Uniswap router and sends it to 0x…dEaD, where no one can move it. Every burn is on-chain and listed here.
Waiting to be burned
Burn transactions
The order book for Robinhood Chain
Limit orders that live on-chain and settle in the same transaction they fill. Serum's design, rebuilt for the EVM and tested against the attacks that broke its descendants.
A rook moves in straight lines. So do your orders.
No crank, no settle step, no queue between you and your money. The rules are the rules of any serious exchange, written into a contract anyone can read.
One balance for every market
Deposit USDG, WETH or a meme once and trade every ROOK market from the same balance. Withdraw any time, even when new orders are paused.
Limit, post-only, IOC, FOK, flip
Price-time priority on 5-significant-figure ticks. Set an expiry, a client id and how self-trades are handled. Dust never rests on the book.
Makers are paid in the taker's transaction
Serum made makers wait for a crank. On ROOK a fill credits both sides in the same block, so a full queue can never freeze the market.
Serum's book, rebuilt for the EVM
A three-level bitmap finds the best price in a few reads. Each price level is a first-in-first-out queue, and each order is one storage slot. Every taker sets a fill cap, so no transaction can be made too expensive to land.
- 01No eviction, no fixed capacitySerum dropped the worst order when its book filled up. ROOK has no ceiling to fill, and caps each account at 64 open orders per market instead.
- 02IOC never restsA remainder rests only if it doesn't cross and clears the minimum. The bug that let immediate-or-cancel orders rest in OpenBook v1 can't happen here.
- 03Four self-trade modesCancel the maker, expire the taker, decrement both, or abort. Wash trading between your own wallets always costs the full protocol fee.
Flip orders keep a new book alive
A flip order re-posts itself on the other side when it fills: buy at 0.5300, sell at 0.5400, forever. A grid of them is a market maker that needs no bot, which is how ROOK seeds a new meme's book and earns the spread from the first trade.
Gold squares are the last price. Green rests as bids, red as asks; each fill turns a square the other colour one step away.
The chain's memes, one book each
We open markets where the chain already trades, then list pons graduates that pass depth, age and holder gates.
- Tick
- 5 sig. figures
- Min order
- 0.002 WETH
- Fees
- 0 / 5 bp
- Gate
- graduated on pons
- Depth
- ±2% ≥ $25K
- Listing
- bond + vote
Built against the attack list
Book first. Everything else is priced off it.
Launches on pons. Fees buy it back.
$ROOK launches on pons like the chain's other memes. Half of every ROOK Swap fee goes to the burn wallet, which buys $ROOK back and sends it to 0x…dEaD; every burn is listed with its transaction on the Burn page. It pays no revenue share, and swapping on ROOK never requires holding it.
Your balance, every market
One deposit funds every market. Withdraw any time, even when new orders are paused.
Balances
Open orders
Fills
How the ROOK book works, and how we tried to break it
ROOK is a Solidity central limit order book for Robinhood Chain. It follows Serum's core idea (price-time priority on-chain, exact lot math) and drops the parts Solana forced on it: the crank, the event queue and the fixed-size book. The core is 19.3 KB with a 14.9 KB extension for admin and heavy views, plus a 14.6 KB router that splits swaps with a Uniswap v4 pool. No proxy.
Serum → ROOKWhat changed and why
| Area | Serum v3 (Solana) | ROOK v0.2 (Robinhood Chain) |
|---|---|---|
| Settlement | Makers wait for a crank to process the event queue | Makers credited inside the taker's transaction |
| Book | Fixed-size critbit tree; evicts the worst order when full | 3-level bitmap + FIFO queues; no capacity, no eviction |
| Balances | One OpenOrders account per market | One balance per token, shared by every market |
| Prices | Fixed tick per market | 5-significant-figure ticks: 0.1–1 bp at any price |
| Spam | Dust threshold stored but unchecked | Minimum notional, 64 orders per account, fill cap ≤ 64 |
| Fee tiers | Token-balance tiers (flash-loanable) | Flat per market; referral set once, capped at 20% |
| Governance | Upgradeable; key held by FTX | No proxy; pause stops new orders only |
PricesFive significant figures, exact fills
A price is an integer number of quote atoms per base lot, and every integer with at most five significant digits is a valid tick. Fills are exact integers, so only fees round: the taker fee rounds up on the whole order, rebates round down.
quote = lots × price(tick) exact takerFee = ceil(Σquote × takerFeePpm / 1e6) whole order rebate_i = floor(quote_i × makerRebatePpm / 1e6) referral = floor(takerFee × referralSharePpm / 1e6) protocol = takerFee − Σrebate − referral never negative (hard caps)
GasMeasured on the EVM, Prague rules
L2 execution gas including the 21,000 intrinsic cost; Robinhood Chain adds an L1 data fee on top. Worst case: every maker is a different account.
| Operation | v0.2 gas | Target |
|---|---|---|
| Place, existing level (fresh / recycled slot) | 77,785 / 60,685 | 80k / 65k |
| Cancel (tail / middle) | 54,836 / 59,964 | 55k / 55k |
| Take (IOC), 1 fill | 61,881 | 62k |
| Each extra fill, same level | 10,327 | 12k |
| Take, 64 fills on one level | 721,296 | 900k |
| Take, 64 fills across 64 levels | 903,614 | 1M |
| Swap buy, 1 fill, no account | 92,568 | 90k |
InvariantsChecked after every fuzzed operation
| I1 | For each token, the contract's balance equals free balances + funds locked in orders + protocol fees, and each account matches a model rebuilt from events. |
| I2 | The book is never crossed; the cached best bid and ask equal the extremes found by walking the bitmap. |
| I3–I4 | Orders in each level are in placement order; level totals, counts and bitmap bits match exactly. |
| I5 | At most 64 live orders per account and market; no untracked orders. |
| I6 | Fills at the maker's price, never worse than the taker's limit, never against an expired maker or yourself. Post-only never fills; IOC, FOK and market never rest. |
| I7–I8 | Cancel and withdraw succeed while paused; the contract only reverts with its own errors. |