Orca Crypto
Menu
Start Here
Learn
Chains
Exchanges
Markets
Tools
Safety
Glossary
More
Our tokens Book a session
Advanced · Market structure

Order books, RFQ, intents and solvers

A swap is one way to trade. Here are the others, how each sets your price, and how each can fail.

Loading live prices
By the Orca Crypto teamUpdated 2026-09-28How we check this13 min readAdvanced
The short answer

Beyond AMM pools, onchain trades are filled by order books, where makers post prices and takers cross them; by RFQ, where a market maker signs a firm quote for your size; and by intents, where you sign the outcome you will accept and solvers compete to deliver it through Dutch auctions or batch auctions. Intents are gasless for you and hard to sandwich, but they depend on offchain order feeds and a healthy set of competing solvers.

Four ways to fill a trade

An AMM swap is only one way a trade is filled onchain, and for large or frequent traders it is often not the cheapest. There are four families, and modern routers mix several of them into a single quote.

MechanismWho sets the priceWho pays gasMain exposure
AMMA formula over pool reservesYouPrice impact, and sandwiches up to your tolerance
Order bookMakers resting limit orders, matched in price and time priorityVaries: a fee per order on a general purpose chain, or folded into trading fees on a dedicated oneSpread and depth; makers risk being picked off
RFQA professional market maker signs a firm quote for your sizeUsually the maker or the settlement layerThe maker may decline or fade a stale quote
Intent auctionSolvers compete to deliver the outcome you signedThe winning solver, priced into your fillYour order can expire unfilled; you rely on the solver set

The pricing mechanics of the first family are in AMM math. This guide covers the other three and how routers combine them.

Order books, offchain and onchain

A central limit order book holds resting buy and sell orders at explicit prices. A taker who crosses the spread fills against them in price then time priority, walking up the book until the size is done. Suppose ETH is bid at 2,999.50 and offered at 3,000.50 with these asks resting:

Ask priceSize restingTaken by a 30 ETH market buy
3,000.505 ETH5 ETH
3,001.0010 ETH10 ETH
3,002.0015 ETH15 ETH
3,004.0020 ETHnone

The buy averages 3,001.42, about 4.7 basis points above the 3,000 mid, plus the venue's taker fee. Unlike an AMM, depth here is not a formula. It is whatever market makers chose to post, and they can pull it in milliseconds when volatility rises.

That last property is the hard part of putting a book onchain. A maker must be able to cancel faster than informed traders can hit stale quotes, and on a general purpose chain every cancel is a paid transaction competing for the same block as the order that would pick it off. Three designs show the range of answers:

Hyperliquid: a chain built for the book

Its own layer 1 with HyperBFT consensus. Perp and spot books live in chain state and match in price and time priority. The docs cite a median end to end latency of about 0.2 seconds for a colocated client and roughly 200,000 orders per second, and within each block cancels are processed before actions that place new resting or IOC orders, which protects makers.

dYdX Chain: offchain book, onchain fills

A Cosmos SDK chain in which every node keeps an in memory order book. The block proposer matches orders from its local book and puts the fills into the block; the book itself is never committed to consensus.

Solana spot books

Solana has hosted fully onchain spot order books such as Phoenix, which settles each fill instantly instead of waiting for a separate crank transaction as earlier designs did. Short slots and cheap cancels make active quoting practical.

Sources: the Hyperliquid order book docs and the dYdX limit order book docs. Venue profiles are on the Hyperliquid page and in the DEX versus CEX comparison.

Request for quote: a market maker signs a price

In an RFQ system your wallet asks a set of professional market makers for a firm price on your exact size. The best responder signs a quote that a settlement contract will honor for a short window. There is no pool curve to walk: the maker prices from its own inventory and hedges elsewhere, often on a centralized exchange, so for a large trade in a major pair RFQ can beat any pool on the chain.

The weakness is that the maker holds an option. Between quoting and settling the market moves, and a maker whose quote has gone stale may decline to fill. UniswapX calls this fading, and its system can ignore quotes from quoters who fade too often. Every RFQ design needs a fallback for exactly this moment.

Two current examples show RFQ sitting inside broader routers. On Ethereum, UniswapX first collects quotes from a permissioned set of quoters known to Uniswap Labs. The winner of the final hard quote gets an exclusivity window, currently about 24 seconds (two blocks), and if it fades, the order falls through to an open Dutch auction anyone can fill. On Solana, Jupiter's meta aggregator lets its routing engines compete for each order, including its onchain router Metis and its RFQ engine JupiterZ, alongside third party routers.

Intents: sign the outcome, not the path

An intent is a signed message that says what you will accept rather than how to get it: sell this amount of this token, receive at least that amount of another, before this deadline. You do not submit a transaction. A solver (also called a filler or resolver) does, and the settlement contract checks your signature and enforces your minimum. If the solver cannot deliver at least what you signed for, the fill reverts, the solver absorbs the gas and you pay nothing.

Three things change. Gas becomes the solver's problem, folded into your price. MEV protection is built in, because no swap of yours sits in a public mempool waiting to be sandwiched. And price discovery becomes a competition among solvers who can draw on AMMs, private inventory, centralized exchanges and other users' orders at once. The Intermediate guide to limit orders, DCA and TWAP shows the same machinery used for orders that wait for a price.

The signature is the trade
A signed order is a spendable authorization. Anyone holding a valid signature can settle it against your token approvals until it expires, which is why fake swap sites ask for exactly this kind of signature. Read the tokens, amounts and minimum in the typed data before you sign, as covered in reading what you sign.

Dutch auctions: UniswapX and 1inch Fusion

A Dutch auction starts at a price that is good for you and worsens step by step until someone takes it. The first filler for whom the current price is profitable wins, so competition pushes the fill toward the best filler's true cost. Take an order to sell 10 ETH that starts at 30,000 USDC out and decays by 15 USDC a block to a floor of 29,850, a 0.5% tolerance. Filler A can sell the ETH elsewhere for 30,000 and has about 13 of gas and required margin to cover, so it breaks even at an output of 29,987. Filler B has worse access and breaks even only at 29,972.

BlockOutput offered to youFiller A (breaks even at 29,987)Filler B (breaks even at 29,972)
030,000 USDCShort by 13Short by 28
129,985 USDCFills, 2 above break evenShort by 13
229,970 USDC(already filled)Would have filled, 2 above break even
1029,850 USDC, the floor

You receive 29,985 USDC. Without Filler A you would have received 29,970 a block later. The auction discovers the best filler's price without anyone revealing it, and the step size is the price of that discovery: coarser steps leave more on the table, finer ones take longer.

UniswapX runs this RFQ plus exclusive Dutch auction model on every chain it supports. On Ethereum the exclusivity window and decay are measured in time; on the others, including Arbitrum, Base and Unichain, in blocks. A cosigner, currently Uniswap Labs for its own interface and API, updates the auction start to current prices within the bounds you signed. The details are in the UniswapX auction documentation.

1inch Fusion uses the same shape with a gated set of takers. Per the 1inch help center, resolvers are approved addresses that stake 1INCH, must hold at least 5% of total Unicorn Power, and at most 10 are listed; priority fees are capped, with escalating suspensions for resolvers who break the cap. A Fusion order that nobody fills before it expires can be resubmitted at no cost.

Batch auctions and coincidence of wants

CoW Protocol collects signed orders offchain and auctions them in batches to bonded solvers. Its current mechanism, which it calls a fair combinatorial batch auction and which was formalized in a 2024 paper, lets a solver bid on single orders or on groups of orders. The protocol discards batched bids that give any order less than it could get alone, then picks the combination of bids that delivers the most surplus to users. Two properties follow.

Uniform directed clearing prices. Every order selling ETH for USDC in the same batch gets the same price, and so does every order going the other way. Position inside the batch stops mattering, so there is nothing to front run.

Coincidence of wants. If Alice sells 100 ETH and Bob buys 40 ETH in the same batch, 40 ETH can pass directly between them at the clearing price. At a 0.05% pool fee and a price of 3,000, each saves 60 USDC of LP fees on the matched part, plus the impact those 40 ETH would have caused in each direction, and only Alice's remaining 60 ETH needs a pool. Rings of three or more traders across several tokens are possible too.

Aggregators and split routing

An aggregator solves a smaller version of the same problem for one order: how to divide it across pools and venues so the total output is highest. For pools with the same fee and the same starting price, the answer is to split in proportion to depth, which leaves every pool at the same marginal price afterward.

Route for a 60,000 USDC buy of ETH at 3,000ETH receivedAverage price
All through pool A (1,000 ETH and 3,000,000 USDC, 0.3% fee)19.5503,069.03
40,000 through A and 20,000 through pool B (500 ETH and 1,500,000 USDC, 0.3% fee)19.6783,049.03

The split gains about 0.128 ETH, roughly 385 dollars, for one extra pool interaction. Real routers add fee tiers, concentrated liquidity ranges, multi hop paths through a third token and the gas of each extra hop, which is why two routers can quote the same trade differently. A meta aggregator goes one level up: it asks several routers, RFQ systems included, and takes the best answer.

Cross chain intents

Intents suit cross chain transfers especially well. In the common escrow design you lock funds on the origin chain with an order stating what must arrive on the destination chain. A solver delivers from its own inventory there, often within seconds, then claims your locked funds once the fill is verified. You wait seconds instead of a bridge's settlement time, and the solver carries the capital and the settlement risk. ERC-7683, a draft standard created in April 2024, defines a common solver facing interface so one solver can serve many intent protocols. The trust question moves to how the origin chain verifies the fill, which is the subject of cross chain security.

The tradeoffs, and how these systems fail

Direct AMM swap

You submit the transaction yourself

  • Permissionless, and composable with anything else in one transaction
  • Lands in the next block if the fee is right
  • You pay gas, including on reverts
  • Sandwichable from a public mempool
  • Limited to onchain liquidity

Intent or RFQ order

You sign, someone else executes

  • Gasless for you, and a failed fill costs nothing
  • Reaches private inventory and direct matches
  • No public swap to sandwich
  • Depends on offchain order feeds, cosigners and a solver set
  • Can expire unfilled in a fast market
  • Solver concentration. Many taker sets are permissioned, capped or bonded, and the edge from private inventory and hedging access favors large, well capitalized firms. Competition protects you only while there is enough of it.
  • Fading and expiry. In a sharp move quotes go stale and auctions decay to your floor or expire. Your minimum protects the price; nothing ensures the fill.
  • Offchain dependencies. Order feeds, RFQ servers and cosigners are run by companies. If one is down, orders do not fill, though your funds stay in your wallet.
  • Censorship. A solver set can decline an order, and a permissioned one can be instructed to. A direct onchain transaction remains the fallback.
  • Contract risk. Settlement contracts hold approvals and route funds. Your signed limits are enforced onchain, but a bug in that contract is a risk in the path like any other.

Choosing a mechanism for a trade

SituationUsually the best fitWhy
Small swap on a cheap chainA direct router swapGas is negligible and an auction adds latency for little gain
Large swap in a major pairRFQ or an intent auctionMakers hedging on deep venues beat pool impact, with no mempool exposure
Two sided flow in the same pairA batch auctionDirect matches skip LP fees and impact
Long tail tokenA router with a tight minimumFew makers quote it; the pool is the market
A price that has not arrived yetA limit orderThe same intent machinery, waiting for your level
Perps, or quoting all dayAn order bookMakers need fast cancels and price time priority

Compare venue by venue on the Uniswap versus 1inch and Jupiter versus Raydium pages, and see the MEV guide for what happens to swaps that take the public route.

Common questions

What is the difference between an intent and a limit order?

A limit order is one kind of intent: it states a price and waits. The intents used for swaps state a minimum and ask to be filled now, with solvers competing to beat that minimum. Both are signed messages that someone else settles onchain.

Do I pay gas when I trade with an intent?

Not directly. The solver pays gas and prices it into your fill, and a fill that fails costs you nothing. You may still need a one time approval transaction for the token you sell, unless the protocol accepts a signed permit instead.

What happens if no solver fills my order?

It expires and your tokens never leave your wallet. You can resubmit it, usually with a wider minimum if the market moved. On UniswapX an exclusive quoter that fades hands the order to an open Dutch auction before it expires.

Are intent based swaps protected from MEV?

From sandwiches built on the public mempool, yes, because your swap never sits there. Solvers still earn a margin, and competition between them is what keeps that margin small. Your signed minimum is the floor either way.

Why do RFQ quotes sometimes fail to fill?

Because the maker quoted a price that went stale before settlement and chose not to honor it, which UniswapX calls fading. Good systems penalize makers who fade often and fall back to an open auction.

Is an onchain order book fully decentralized?

It depends on the design. Hyperliquid keeps its books in the state of its own validator set, dYdX Chain keeps them in node memory and commits only fills, and Solana books live in program accounts on a general purpose chain. Check who runs the validators and the front end, not just where matching happens.

Kept on this device only. Nothing is sent anywhere.

Where to go next

Next: LP as a strategy: LVR, ranges and JIT liquidity

Guide 4 of 16 in the Advanced level. Your place is kept on this device, so you can pick up exactly here next time.

Share this page

Was this page useful?