Skip to content

RFQ and intents

An intent is a signed message that says what outcome you want (“at least 30,000 USDC for my 10 ETH by block N”) and lets someone else figure out how to deliver it; a request-for-quote (RFQ) is the older, narrower version where market makers send you a firm price and you sign against it. Both move price discovery off-chain and keep only settlement on-chain, which removes sandwiching and stale-quote losses but makes execution depend on who sees your order and how they compete. Ethereum’s UniswapX, CoW and 1inch Fusion and Solana’s JupiterZ and Drift JIT auctions are the live examples; Paradigm’s 2023 essay is the standard statement of the centralisation, trust and opacity risks.

Instead of driving to three car dealers and haggling at each, you post a note: “I’ll sell my car for at least 30,000 by Friday, best offer wins.” Dealers who know the market bid for it, the highest bid wins, and you never had to learn which lot was paying the most today. The catch is that the note only works if enough honest dealers see it — if a single dealer controls the noticeboard, they can quietly keep the best price for themselves.

Normally you tell the blockchain exactly what to do: “send these tokens to this pool and take what comes back.” With an intent you instead say what you want to end up with and let specialists compete to make it happen, paying the fees themselves and taking the risk that prices move. A quote system is the simple version: dealers send you a price, you accept one, and the trade settles with that dealer. Because your order never sits in a public waiting room, nobody can jump in front of it, and you usually get a better price than a pool would give. The trade-off is that you now trust the middlemen who see your order to compete fairly.

Scenario: Alice sells 10 ETH for USDC through UniswapX. The centralised-exchange mid price is 3,020 USDC/ETH; selling into the deepest on-chain pool would yield 3,005 per ETH after fee and price impact.

  1. Before. Alice: 10 ETH, 0 USDC, no gas needed beyond an earlier Permit2 approval. Fillers: inventory on-chain and at the exchange.
  2. Quote. The interface runs an off-chain RFQ; the best market maker quotes 30,150 USDC (3,015 per ETH). That quote becomes the auction’s start price; the end price is set at 29,900.
  3. Sign. Alice signs an order: output starts at 30,150 and decays linearly by 10 USDC per block toward 29,900 over 25 blocks. Her ETH stays in her wallet.
  4. Fill, happy path. The quoting maker fills at block 0: the reactor contract pulls 10 ETH via Permit2 and pays Alice 30,150 USDC. Maker: −30,150 USDC, +10 ETH, then sells 10 ETH at the exchange for 30,200 → gross 50 USDC minus gas.
  5. Fill, fallback. If the quoter fades, any filler may fill once the decayed output is profitable; at block 2 the output is 30,130 and a filler hedging at 3,020 earns 70 USDC minus gas. After: Alice 0 ETH, ≈30,130–30,150 USDC, versus ≈30,050 minus her own gas from the pool.
  • Myth: Intents are a new idea. Reality: Limit orders, CoW auctions, gas sponsorship and aggregators are all intents; the essay lists them as systems “in operation for several years” (Konstantopoulos & Kilbourn, 2023).
  • Myth: Intents remove MEV. Reality: They remove sandwiching of the user’s transaction but move value-capture to whoever fills the intent; “if poor execution is profitable, permissionless intentpools are likely to lead to this outcome” (Paradigm, 2023).
  • Myth: An RFQ quote is a commitment. Reality: Quotes range from firm to soft; makers often keep a “last look” (JupiterZ makers “have last-look execution rights”, as of 2026-08), and if quotes were user-executable the user would hold a free option makers must price (Neuder & Bahrani, 2026).
  • Myth: RFQ is better for every token. Reality: “RFQ systems excel with widely traded tokens listed on CEXs” but are “less effective for newer, low-liquidity, and highly volatile on-chain assets” — exactly the trades most exposed to MEV (Helius, as of 2025-01).

An intent trades “how” for “what”: you gain price competition and lose transparency about who executed you and why — so the mempool that carries intents matters as much as the contract that settles them.

Paradigm defines an intent as “a signed set of declarative constraints which allow a user to outsource transaction creation to a third party without relinquishing full control”. A transaction permits one state transition; an intent permits a set, so a transaction is an intent with a unique path. Several intents can share one transaction, enabling netting, cross-domain intents and third-party gas payment.

Neuder & Bahrani’s sequence: the frontend asks makers for a bespoke quote on this trade; makers respond; the user approves a token transfer by signing against the quote; the winning maker atomically transfers tokens in and out of the user’s address. Consequences: the price does not depend on chain state; execution happens off-chain and only settlement is on-chain; liquidity is opaque until quoted; makers bear price risk on firm quotes while frontends bear fill risk on soft ones; and the output “can’t atomically” be used by another transaction until the maker’s fill lands, so composability is lost. Because makers price off the freshest venue, RFQ fills avoid loss-versus-rebalancing and “often provide much better prices than trading against passive LPs” (see /exchange/impermanent-loss-vs-lvr/).

Swappers sign orders specifying output amounts that decay over time; Permit2 lets the reactor move tokens only if sent and received amounts match the decay curve; anyone may fill. If the auction runs from AstartA_{\text{start}} to AendA_{\text{end}} over TT blocks from t0t_0, A(t)=Astart(AstartAend)min ⁣(1,tt0T),A(t) = A_{\text{start}} - (A_{\text{start}} - A_{\text{end}})\cdot\min\!\Big(1, \frac{t - t_0}{T}\Big), and the realised price “depends on when the first successful filler settles within the auction timeline” (Uniswap docs, 2026). Current UniswapX uses an off-chain RFQ to set the start price and a Dutch auction as fallback (Robinson & White, 2024), with per-chain auction variants. Fillers pay gas, so failed swaps cost the user nothing, and fills from filler inventory cannot be sandwiched; fillers are backstopped by the Uniswap Smart Order Router across v1–v4 (Adams, 2023).

Drift’s JIT auction is the same shape in slots: the taker’s price ramps from best to limit, P(s)=Pstart+(PendPstart)min(1,(ss0)/D)P(s) = P_{\text{start}} + (P_{\text{end}} - P_{\text{start}})\cdot\min(1, (s - s_0)/D), with makers filling first-come-first-served and the remainder falling to the book and AMM (see /exchange/order-books/).

Batch intents (CoW) and cross-chain intents (Across)

Section titled “Batch intents (CoW) and cross-chain intents (Across)”

CoW batches intents and lets bonded solvers compete on surplus (see /exchange/batch-auctions/). Across layers an RFQ where relayers compete “strictly based on speed” at fixed fees, a permissionless relayer network fronting capital on the destination chain, and optimistic settlement repaying relayers about every 1.5 hours (Across docs, 2026; see /cross-chain/intent-solvers/).

Robinson & White propose an order whose execution price rises with the transaction’s priority fee, e.g. minimumPrice + ($0.01 * priorityFeePerGas). Under competitive priority ordering the highest non-reverting bid fills; with a $3,000 minimum and $3,500 market the winning priorityFeePerGas is about 50,000 wei, paying the proposer roughly $0.000035 on a 200,000-gas transaction. The filler is committed only if its transaction succeeds, so AMM liquidity can compete with private inventory. Enforcing competitive priority ordering is the unsolved requirement (see /mev/order-flow-auctions/).

The Ethereum mempool cannot carry general intents (DoS concerns), so designers choose between permissionless intentpools (gossip like 0x relayers; problems: DoS, no incentive to propagate a profitable intent, MEV), permissioned APIs (DoS-resistant, reputation-backed, but trust-based), and hybrids such as order-flow auctions with permissioned propagation and permissionless execution. Paradigm’s bottom line: “It is not trivial to design a mechanism for intent discovery and matching which is incentive-compatible and not centralizing at the same time.”

JupiterZ runs signature-based pricing: makers quote off-chain, cover the priority fee, and the transaction is compute-efficient because no routing logic runs on-chain; the meta-aggregator picks the better of RFQ and on-chain Metis per order (Jupiter docs, as of 2026-08; Helius, as of 2025-01). Kamino Swap broadcast swap requests to searchers through Pyth Express Relay, where the winner paid a tip to the user and users kept any surplus — a mechanism wound down by Pyth governance in July 2026. Neuder & Bahrani argue Solana’s proprietary AMMs are the composable alternative: makers keep quotes on-chain via cheap oracle updates instead of quoting off-chain (see /exchange/lp-toxicity-and-jit/).

Same scenario as §2: Alice sells 10 ETH; exchange mid 3,020; pool execution 3,005; Alice’s own gas for a pool swap ≈ 5 USDC.

Pool baseline. 10×3,0055=30,04510 \times 3{,}005 - 5 = 30{,}045 USDC net.

UniswapX order. Astart=30,150A_{\text{start}} = 30{,}150, Aend=29,900A_{\text{end}} = 29{,}900, T=25T = 25 blocks, so the decay is (30,15029,900)/25=10(30{,}150 - 29{,}900)/25 = 10 USDC per block: A(t)=30,15010tA(t) = 30{,}150 - 10t.

Filler economics. A filler that fills at block tt and hedges at the exchange receives 10×3,020=30,20010 \times 3{,}020 = 30{,}200 USDC for the ETH; with gas g=5g = 5 its profit is π(t)=30,200A(t)5=45+10t\pi(t) = 30{,}200 - A(t) - 5 = 45 + 10t. It is profitable from block 0, so competition fills early: at t=0t = 0, π=45\pi = 45; at t=2t = 2, π=65\pi = 65. A filler waiting for t=7t = 7 (π=115\pi = 115) risks being beaten by anyone willing to accept less.

PathAlice receivesGain vs pool
Pool swap (pays own gas)30,045
UniswapX, quoter fills at block 030,150+105 (+0.35%)
UniswapX, open fill at block 230,130+85
Dutch auction runs to the end (no filler)29,900 limit, or unfilled−145

MEV-tax variant. If Alice instead sets price = 29,900 + 0.01 × priorityFeePerGas (USDC per 10 ETH), a searcher who values the fill at 30,150 bids priorityFeePerGas ≈ 25,000; on a 200,000-gas fill the proposer receives 200,000×25,000200{,}000 \times 25{,}000 wei =5×109= 5\times10^9 wei, about $0.000015 at 3,020 USDC/ETH, and Alice gets ≈30,150 in the next block.

  • UniswapX — Dutch-auction intents with RFQ start prices, Permit2 settlement, gasless for swappers, immutable reactors; launched July 2023 with plans for cross-chain swaps. docs.uniswap.org
  • CoW Protocol — intents settled in batch auctions by bonded solvers. docs.cow.fi
  • 1inch Fusion — resolvers compete to fill signed orders; named alongside UniswapX as an “intent-based DEX routing protocol” (Robinson & White, 2024).
  • Across — cross-chain intents with RFQ, relayer and settlement layers. docs.across.to
  • RFQ routers — Hashflow, Odos, WOOFi (SoK: Cross-Domain MEV, 2023); Ethereum aggregators fill “partially onchain and partially through an RFQ” (Neuder & Bahrani, 2026).
  • JupiterZ (Jupiter RFQ) — default-on for all Jupiter swaps since December 2024; makers cover priority fees, last look, no slippage; beats on-chain by 5–20 bps on majors (as of 2026-08). developers.jup.ag/docs/swap
  • Drift JIT auctions — every market order runs a per-order Dutch auction before the book/AMM. docs.drift.trade
  • Kamino Swap via Pyth Express Relay — searcher auction with user-kept surplus (Helius, as of 2025-01); Express Relay wound down July 2026 (Pyth docs).
  • 1inch Fusion resolver exploit, 6 March 2025. An integer-underflow/calldata-corruption bug in deprecated Fusion v1 resolver contracts let an attacker redirect settlement calls and drain about $5M (2.4M USDC and 1,276 WETH) from resolvers, notably TrustedVolumes; end-user funds were not at risk (rekt.news, 2025-03). Root cause: Yul-level memory pointer underflow in _settleOrder missed across nine audits.
  • CoW Swap solver exploit, 7 February 2023. ~$166K drained via a solver’s external contract; covered by the solver bond. See /exchange/batch-auctions/.
  • Order-flow centralisation. Permissioned intent execution can hand a builder “exclusive order flow”, threatening the competitive builder market PBS depends on and opening censorship (Paradigm, 2023). See /mev/pbs-and-epbs/.
  • Trust and entrenchment. Flashbots and CoW receive most OFA flow partly by reputation; a new design “would have to spend a lot of time convincing users and wallets” — a barrier to entry that slows innovation (Paradigm, 2023).
  • Opacity. The worst case is an intent that “disappears (into the dark forest, if you will)” and reappears as a transaction “with no clarity on how or by whom” (Paradigm, 2023).
  • Dutch-auction leakage. On-chain Dutch auctions “leak some value to MEV due to price movements between blocks, and may take many blocks to complete” (Robinson & White, 2024, citing Moallemi).
  • Quote fading and last look. Soft quotes fail to fill; firm quotes expose makers to arbitrageurs; user-executable quotes create a free option (Neuder & Bahrani, 2026).
  • Permissionless intentpools. DoS resistance, propagation incentives and MEV-safe execution remain unsolved; Paradigm suggests “permissionless, but encrypted intentpools” (see /mev/encrypted-mempools/).
  • Instant on-chain RFQ. “Can RFQ-style solutions be implemented on a blockchains to allow for near-instantaneous trades after quotes are provided?” — sequencers, RFQ chains or SUAVE are candidates (SoK, 2023).
  • Enforcing competitive priority ordering. MEV taxes need block builders to follow priority rules trustlessly, which Robinson & White call an open problem.
  • Composability vs price. Whether on-chain active liquidity (proprietary AMMs) can match RFQ pricing without losing composability is the live question on both chains (Neuder & Bahrani, 2026).
AspectEthereumSolana
Flagship intent systemsUniswapX (Dutch + RFQ), CoW (batch), 1inch Fusion, AcrossJupiterZ RFQ (default since 2024-12), Drift JIT auctions
Why intents12 s blocks make on-chain quotes stale; public mempool enables sandwichesNo public mempool; RFQ competes with on-chain proprietary AMMs on price
Who pays gasFillers; user pays nothing for failed ordersMakers cover priority fee in JupiterZ
SettlementPermit2 + reactor contracts; batch settlement for CoWMaker-signed transactions; last look; not CPI-composable
Main risk in sourcesBuilder/OFA centralisation, resolver contract bugsOff-chain liquidity reduces composability; weak on long-tail tokens

On Ethereum intents grew out of MEV defence and stale on-chain prices, and the policy debate is about where the resulting order flow ends up. On Solana, RFQ arrived as a price improvement layer inside an aggregator that already dominates retail flow, competing head-to-head with market makers who chose to stay on-chain via cheap oracle updates. Both converge on the same trade: better prices from professional makers in exchange for opacity and reduced composability.

Intent-Based Architectures and Their Risks — Georgios Konstantopoulos and Quintus Kilbourn (Paradigm), 1 June 2023. paradigm.xyz/writing/intents

Introduction. A transaction says how; an intent says what. Intents let users express outcomes and outsource execution, but on Ethereum they have “significant ramifications for off-chain infrastructure”, notably MEV and market control.

What are intents? Transactions permit one computational path against a state; an intent is “signed a set of declarative constraints” permitting any path that satisfies them — a signed message allowing a set of state transitions, of which a transaction is the unique-transition special case. Many intents can share one transaction (netting in a builder order book), and intents enable cross-domain signing, alternative replay protection and flexible gas payment.

The past and future is intents. Limit orders, CoW-style auctions, gas sponsorship, delegation, batching and aggregators are all intents that have run for years; new interest comes from cross-chain MEV (SUAVE), ERC-4337 and Seaport. Critically, every intent system needs “at least one other party who is aware of the intent, incentivised to execute the intent and able to do so in a timely manner”.

The middlemen and their mempools. The Ethereum mempool cannot carry general intents. Permissionless intentpools (0x-style gossip, shared 4337 mempools) face DoS, propagation-incentive and MEV problems. Permissioned APIs are DoS-resistant and reputation-backed but trust-based. Hybrids such as order-flow auctions mix the two. Bottom line: designing incentive-compatible, non-centralising discovery and matching is not trivial.

What can go wrong. (1) Order flow: permissioned execution with a poorly chosen set creates exclusive order flow, letting one builder dominate blocks, censor and shift value from Ethereum to itself. (2) Trust: a monopolist can extract rents and deny traction to new designs; even outside block building, reputational barriers (Flashbots, CoW) deter new OFAs, and enshrining 4337 infrastructure could block new intent formats. (3) Opacity: intents surrender more freedom than slippage limits do, so a system where signed intents vanish and reappear as transactions of unknown provenance undermines auditing and threat detection.

Mitigating risks. An ideal system is permissionless (anyone can match and execute without sacrificing execution quality), general (no new mempool per application) and transparent (execution reported, data available for auditing). Flashbots and Anoma work toward this; meanwhile applications should allow fallback to transactions, seek generality if permissionless and choose middlemen carefully if permissioned. The conclusion notes the shift to alternative mempools is “justified and inevitable” but urges caution and community vigilance.

“an intent is signed a set of declarative constraints which allow a user to outsource transaction creation to a third party without relinquishing full control to the transacting party.” (What Are Intents?)

“By signing and sharing an intent, a user is effectively granting permission to recipients to choose a computational path on their behalf” (What Are Intents?)

“It is not trivial to design a mechanism for intent discovery and matching which is incentive-compatible and not centralizing at the same time.” (The Middlemen & Their Mempools)

“If intent execution is permissioned and the permissioned set is not chosen with care, the migration out of the public mempool threatens to centralise block production on Ethereum.” (Order Flow)

“Such a system should be permissionless so that anyone can match and execute intents while not trading off much execution quality; general so that deploying new applications doesn’t require standing up new mempools; and transparent” (Mitigating Risks)

Background needed: how Ethereum transactions and the public mempool work, MEV-Boost and proposer-builder separation (see /mev/pbs-and-epbs/), and what an order-flow auction is. Skip the ERC-4337 asides on a first pass. The hardest paragraph is the “Order Flow” section: the argument is that PBS only channels MEV to validators if many builders compete, that competition needs access to transactions, and that permissioned intent APIs can hand one builder exclusive access — so a UX feature (intents) can quietly change consensus-layer market structure.

  • UniswapX launched in July 2023 (a month after the essay) with permissionless fillers and an RFQ start-price mechanism; Across and 1inch Fusion extended intents cross-chain.
  • Robinson & White (2024-06) proposed MEV taxes so intents can be filled by on-chain priority-fee competition instead of off-chain quotes.
  • On Solana, JupiterZ made RFQ the default path for the dominant aggregator (2024-12), and Neuder & Bahrani (2026-07) framed proprietary AMMs as the composable counter-model to RFQ.
  • Pyth Express Relay, an intent/auction layer used by Kamino Swap, was wound down in July 2026.
  1. Uniswap Labs, “Introducing the UniswapX Protocol” (2023-07-17) and UniswapX Overview docs — read if you want the concrete Dutch-auction/Permit2 design and its stated benefits.
  2. Robinson & White, “Priority Is All You Need” (2024-06-04) — read if you want the MEV-tax alternative to RFQ and Dutch auctions.
  3. Neuder & Bahrani, “Proprietary AMMs and Ethereum” (2026-07-26) — read if you want RFQ flow diagrams and the composability critique.
  4. McMenamin, “SoK: Cross-Domain MEV” §3.12 (2023) — read if you want RFQ placed among MEV-mitigation protocols.

Introducing the UniswapX Protocol — Hayden Adams (Uniswap Labs), 17 July 2023, with the UniswapX Overview developer docs (fetched 2026-08-29). blog.uniswap.org/uniswapx-protocol

The announcement frames UniswapX as “a new permissionless, open source (GPL), Dutch auction-based protocol for trading across AMMs and other liquidity sources”, launched as an opt-in beta on the Uniswap interface for Ethereum mainnet. Four benefits are promised: better prices by aggregating liquidity, gas-free swapping, MEV protection and no cost for failed transactions, with cross-chain swaps to follow.

Next-level aggregation. Routing complexity is growing with fee tiers, L2s and the expected explosion of v4 pools; UniswapX outsources it to an open network of third-party fillers who compete using on-chain liquidity or private inventory. All orders are backstopped by the Uniswap Smart Order Router across v1, v2, v3 and v4.

Gas-free swapping. Swappers sign an off-chain order; fillers submit it on-chain and pay gas, pricing it into the swap and batching orders to lower cost. Users still pay gas for the one-time Permit2 approval and for wrapping native tokens.

MEV protection. Value that would go to arbitrage is returned as price improvement; inventory fills cannot be sandwiched, and fillers are incentivised to use private relays when routing to on-chain venues.

Cross-chain and launch. A cross-chain version combining swap and bridge was announced for later in 2023. The contracts are immutable and permissionless, audited by ABDK, with a bug bounty and a governance-controlled fee switch. The developer overview adds the mechanics: swappers sign orders defining auction parameters and price tolerance; each chain uses its own auction mechanism; a Dutch order starts at a maximum output and decays to a minimum; Permit2 authorises transfer only if amounts match the decay curve; anyone can fill; realised price depends on when the first successful filler settles.

“UniswapX aims to address this by outsourcing routing complexity to an open network of third-party fillers who then compete to fill swaps using onchain liquidity like AMM pools or their own private inventory.” (Next-level aggregation)

“All orders are backstopped by the Uniswap Smart Order Router, which forces fillers to compete with Uniswap v1, v2, v3 and, once it launches, v4.” (Next-level aggregation)

“orders executed with fillers’ inventory cannot be sandwiched, and fillers are incentivized to use private transaction relays when routing orders to onchain liquidity venues.” (MEV protection)

“Swappers generate signed orders which specify the outputs of their swap, and fillers compete to satisfy these orders using their own filling strategies.” (UniswapX Overview docs)

Background needed: Permit2 signatures and why a signed order can move tokens without a transaction from the user. Skip the launch and licensing paragraphs. The hardest idea is the decay curve as an auction: because output falls over time, the first filler for whom the order is profitable wins, so competition among fillers, not the swapper’s guess, sets the price — and the RFQ start price exists to shorten that search.

  • Current UniswapX (per Robinson & White, 2024) uses an off-chain RFQ for the start price with the Dutch auction as fallback; docs now describe per-chain auction types (as of 2026-08).
  • Uniswap v4 (2024-08 whitepaper) gave the Smart Order Router backstop a hook-based pool universe to route across.
  1. UniswapX Overview — developer docs — read if you want fillers, reactors and auction types.
  2. Robinson & White, “Priority Is All You Need” — read if you want why Dutch auctions leak value between blocks.