LLMs.txt: agent-readable Markdown index of this site at /llms.txt

Fillers Overview

Learn how UniswapX fillers and quoters compete to settle swaps across chains.

Choose Your Integration Path

ChainAuction typeReactorGuide
EthereumRFQ + Exclusive Dutch AuctionDutch V2Filling on Mainnet, Become a Quoter
Arbitrum, Avalanche, Base, BNB Smart Chain, Robinhood Chain, Tempo, UnichainRFQ + Exclusive Dutch Auction (block-based decay)Dutch V3Filling Dutch V3 Auctions

UniswapX fillers compete to settle swaps through permissionless auctions. Use this section to choose a chain, ingest orders, and fill.

UniswapX now uses RFQ and the exclusive Dutch auction model on every supported chain. Priority gas auctions are no longer a separate integration path. Fillers previously integrated against a Priority reactor should migrate to DutchV3. See the changelog entry for the Base and Arbitrum transition.

Filler Roles

UniswapX has one permissioned role (quoter) and one permissionless role (filler). This table is the canonical reference.

RolePermissionWhen they fillFade riskHow they discover orders
QuoterPermissioned, vetted by Uniswap LabsResponds to the off-chain RFQ; if it wins the hard quote, it gets the exclusivity windowYes: if it wins exclusivity and does not fill, it triggers the circuit breakerReceives quote requests from the parameterization service
Exclusive fillerThe quoter that won the RFQDuring the exclusivity window (about 24 seconds, or 2 blocks, on mainnet)YesIt is the RFQ winner
Non-exclusive fillerPermissionless, no vettingAfter exclusivity expires in the open Dutch auction, or during exclusivity through a soft-exclusivity override (exclusivityOverrideBps greater than zero)No: it never held exclusivity, so it cannot fade and is not subject to the circuit breakerPolls the orders API at 6 RPS

A non-exclusive filler carries no fade risk and is never subject to the circuit breaker, because it never commits to an exclusivity it could fail to honor.

An order reaches the open, non-exclusive period in two ways:

  • Exclusivity expiration: after the exclusivity window ends, the order enters an open Dutch auction for all fillers with no penalty.
  • Missing exclusivity: if the hard quote comes back enough lower than the soft quote, no exclusivity is assigned and the order goes straight to decay. See the Filler FAQ for details.

How Filling Works

  1. Retrieve open orders from the Uniswap API.
  2. Decode and evaluate each order with your strategy, inventory checks, and risk controls.
  3. Submit execute transactions to the target reactor, ensuring required output amounts are met.

Order Discovery

Retrieve open orders from the UniswapX Orders Endpoint. The Swagger documentation lists every parameter. Pass the chain ID and order type for the chain you fill:

ChainChain IDOrder type
Ethereum1Dutch_V2
Arbitrum42161Dutch_V3
Avalanche43114Dutch_V3
Base8453Dutch_V3
BNB Smart Chain56Dutch_V3
Robinhood Chain4663Dutch_V3
Tempo4217Dutch_V3
Unichain130Dutch_V3
GET https://api.uniswap.org/v2/orders?orderStatus=open&chainId=1&orderType=Dutch_V2&limit=1000

Native ETH Input

UniswapX supports native ETH input from EIP-7702 smart wallets through ERC20ETH. Fillers may see orders where inputTokenAddress is the ERC20ETH deployment address; route those orders as native ETH, not as a pool-backed ERC-20.

For the required filler handling and contract details, see the Native ETH Input FAQ.

Troubleshooting

For common RFQ and execution issues, see the Filler FAQ.

Support