Skip to main content
Every long and short token has an order book on Manifest, a permissionless on-chain order book. For the 13 live markets that is 26 books, each quoting one token in cUSDC. You trade there with other traders. The protocol takes no side, charges no fee, and Manifest charges none either. The books are open at any hour. They matter most while the underlying market is closed: the bin books keep trading then, but only up to a small capped size, and committed orders can’t settle because no price push arrives. On the order book, size is limited only by who is on the other side. While a market is closed the app shows the bin book’s quotes and traders’ orders as one book.
Book prices never feed NAV, the oracle, γ or the CLP. A thin off-hours book is easy to push around, so nothing outside the book reads its prices.

One book while closed

While a market is closed, the app shows the bin book’s quotes and traders’ orders in one ladder and trades them as one book.
  • A market order takes the cheapest offers first when you buy, and the highest bids first when you sell, whichever source holds them. At the same price, traders’ orders fill before the pool.
  • When both sources fill part of an order, it goes out as one transaction from your trading account: the pool’s share through swap_pool, the rest as an immediate-or-cancel order on the book. If either part fails, neither happens. The pool’s share is subject to the market’s exposure cap; the order book’s share is not.
  • The protection band caps traders’ offers, not the pool’s quotes. After outside markets move, the pool’s remaining side can sit outside the band and still be the honest price. A trader’s offer outside the band fills only when it is cheaper than a pool quote the order takes anyway; on a sale, only when it bids more than one.
  • A limit order priced through the pool’s quote takes from the pool first, at the pool’s price and never past your limit, and the rest rests on the book. A maker-only order priced through the pool’s quote is refused, since it would fill at once.
  • Your own resting orders show in the ladder, marked as yours, and your new orders skip them. Manifest has no self-trade prevention, so when a new order would match one of yours, the app cancels yours first, in the same transaction, and says so. Fill or kill can’t be combined with that cancel: cancel your order first.
While a market is open, a market order is a committed order at the next official price, unless traders’ orders fill all of it now for less when you buy, or for more when you sell.

Orders

Partial fills are normal on a book: a limit order can fill in several pieces as other traders arrive, and whatever is left keeps resting. Fills happen at the resting order’s price, oldest first at each price. A buy is sized in cUSDC to spend and a sell in tokens. A resting buy sets aside its limit price times its size until it fills or ends; a resting sell sets aside the tokens.

Protection band

A market order takes traders’ orders no worse than the leg’s last posted price, widened by how far the price could plausibly have gapped by the reopen:
  • σ_day is the market’s daily volatility forecast: its realized daily volatility over the last 20 trading days, from the keeper’s nightly run. Closed-market gaps scale with it almost one for one, so the band widens in a turbulent market and narrows in a calm one.
  • t is the time since the last price post, and T the scheduled closed period, about 17.5 hours on a weeknight and 65.5 over a weekend. The band reaches its full width at the scheduled reopen.
  • K is the 99th to 99.5th percentile of the gap measured in σ_day, over 2013–2026 (2019–2026 for FX and metals). It is 2 after a weeknight and 3 over a weekend or holiday for indices and single stocks, 2 for an FX weekend, and 1 for metals. A weekend gap is only about one and a half times a weeknight’s, far less than its extra hours suggest.
  • E is 15% for a single stock within a week of the days it has usually reported on since 2022, when its gaps run about five times larger. Tesla’s quarterly delivery reports count too. Other nights, and indices, FX and metals, get none.
With a 1% daily forecast, an index gets a 2% band after a weeknight and 3% at a weekend’s reopen. A single stock at 2.5% a day gets 5% on an ordinary night and 20% in an earnings week. A limit order can sit anywhere. The app only warns when your price is outside the band. The report days are the usual ones, not a calendar, so a release far from them gets no allowance, and neither does unscheduled company news: a market order at the reopen price can then be refused, and a limit order still goes in. The pool’s own quotes aren’t held to the band. After outside markets move, the keeper pulls the quotes a trader could exploit, and the ones left on that side, further out, can honestly sit outside the band. A market order’s pool share is bounded by its slippage instead.

Trading account and trading key

Book orders go through your trading account, the same account that trades the pool and committed orders. One wallet approval sets it up and puts a trading key in your browser. For 30 days the key places and cancels orders without a wallet prompt. It can’t send funds anywhere except your own wallet. A stolen key could still trade badly with an accomplice on the other side of the book. So the program holds every key-signed order to a wider backstop band, 3 · σ · √(t / 30s) + 10% clamped to 10%–25% around the posted price. Orders your wallet signs are not checked. The key also has a total budget, $10,000 by default, which you can set to $1,000, $10,000, $100,000 or No limit when you turn it on. The app shows “$X of $Y left”. Cancelled orders still count against it, and when it runs out the app asks you to approve the key again, which resets it. The key trades only each market’s canonical book, and only while the market is active. See Trading account. If your trading account can’t cover an order, the app moves the difference from your wallet in the same transaction and asks for one approval. After a fill, proceeds stay in the account, ready for the next order; Withdraw sends them to your wallet, with no prompt.

Stops, take-profits and TWAP

These run in your browser tab, not on-chain. They only work while a tab with the app is open and online.
  • A stop loss or take profit sends a market order when the best bid (for a sale) or best ask (for a buy) reaches your price: across the pool and traders’ orders while the market is closed, and across traders’ orders and a committed order’s price while it’s open. Your own orders don’t count.
  • A TWAP splits an order into equal parts over a period you choose.
Each fill is a market order signed by your trading key and filled like one you place by hand, with 1% slippage. They draw only on the trading account: a stop that would need a wallet approval fails instead of waiting for one.

Spam and overload

Anyone can place orders on a Manifest book, so spam is the main risk to plan for.
  • Resting orders cost the placer rent. Every resting order takes an 80-byte block of the book account. Whoever grows the account pays about 0.00056 SOL per block, and it isn’t refunded.
  • Expired orders are cleared by the next trade. An order past its last slot stays in the account until a trade walks into it, and that trade pays the compute to remove it. Measured against both builds of Manifest, removal costs 382–722 compute units per order. One transaction clears about 1,900–3,600 of them.
  • A side can be blocked, at a price. Someone who parks more expired orders at the top of a side than one transaction can clear would block new trades on that side. Doing it costs them roughly 1–2 SOL of rent per side, which they never get back.
  • Recovery is cheap. Funds in a blocked book are never stuck: withdrawals and cancels don’t walk the book. The recovery is to list a fresh book for that token, about 0.007 SOL.
  • Global orders fill like any other. A Manifest global order is backed by one deposit per token, shared across books, and its funds move only when it is matched, so a taker must pass that token’s global accounts. Without them Manifest stops an immediate-or-cancel order at the first global order and fails a resting order that would cross one. The app passes them whenever the side an order takes holds a global order, and the trading program checks every address against the market.

Addresses

Trading account PDAs, under the trading program: