What Is an Intent-Based DEX? CoW Swap, UniswapX and 1inch Fusion

By Merunas Grincalaitis, founder of MEV DAO and a developer who builds MEV, sniping and trading bots on Ethereum. Last updated: Nov 1, 2026.

TL;DR: An intent-based DEX lets you sign a message that says what you want ("sell 1 ETH for at least X USDC") instead of sending a swap transaction that spells out how to do it. Professional third parties, called solvers, fillers or resolvers depending on the protocol, compete to fill that order and usually pay the gas. CoW Swap runs batch auctions, while UniswapX and 1inch Fusion run Dutch-style auctions. Because your trade never sits in the public mempool as a swap, the classic sandwich attack mostly goes away. You are trusting an off-chain auction and signing a token permission, though, so intents are not risk-free.

When I build bots, the most interesting change of the last few years isn't a new AMM. It's that a growing share of swaps no longer hits the mempool as swaps at all. If you trade on CoW Swap, the Uniswap app or 1inch, you may already be using intents without knowing it. Here's how they work from the point of view of someone who writes the bots on the other side.

What does "intent" actually mean in crypto?

An intent is a signed order describing the outcome you want, with the execution left to someone else. A normal swap is a transaction: you pick the router, the pool path and the slippage, pay the gas and broadcast it. Everyone watching the mempool sees exactly what you're about to do before it lands, and that is what sandwich bots feed on.

With an intent you sign an off-chain message (EIP-712 typed data) that says, roughly: "I give up to this much of token A, I want at least this much of token B, valid until this time." That message goes to the protocol's order book or API, not to the public mempool. Someone else turns it into an on-chain transaction, and the settlement contract checks that you got at least what you signed for.

The ERC-7683 draft describes the model well: intent protocols let users express desired outcomes as orders, while specialized actors called solvers, also known as fillers, execute the required actions and receive payment. That standard is still marked Draft. It aims to give cross-chain intent systems a common order format so fillers can serve many apps at once.

How do CoW Swap, UniswapX and 1inch Fusion compare?

All three share the same idea but run different auctions. This is how I'd summarize them from their own documentation:

CoW Protocol (CoW Swap) UniswapX 1inch Fusion
Who executes Bonded solvers Fillers Resolvers (approved, staking 1INCH)
Auction type Batch auction across many orders Dutch auction (varies by chain) Dutch auction
Peer-to-peer matching Yes, Coincidence of Wants Fillers may use any liquidity Resolvers may use any liquidity
Who pays gas Taken from the trade, not paid upfront Filler, gasless for you Resolver, no native token needed
Failed or expired order No on-chain cost No cost for failed swaps Can be resubmitted at no cost
Approval model Token approval to the settlement contract's relayer Permit2 signature Approval or permit

The details change often, so treat this as a map and check the current docs before relying on any single line.

How does CoW Swap's batch auction work?

CoW Protocol's docs describe a fair combinatorial batch auction: the protocol collects intents off-chain and auctions them to solvers, which can bid on single orders or on groups of orders. Two parts of the design matter for MEV:

  • Uniform Directed Clearing Prices. If the same asset pair appears several times in a batch, those orders settle at one consistent price. The docs say this "makes transaction order irrelevant within the block", so there's no "first" trade to front-run.
  • Coincidence of Wants. If one user sells DAI for ETH and another sells ETH for DAI in the same batch, a solver can match them directly without touching an AMM. That's where the name CoW comes from.

Solvers are independent, bonded participants. The bond is what keeps them honest: a solver that misbehaves can lose it. CoW's own MEV page claims MEV "is responsible for over a billion dollars in losses for everyday traders". That's their figure, not one I've measured, but the direction is right.

What I like about the batch model as a builder is that it removes the ordering game rather than just hiding transactions. What I dislike is speed: you wait for the batch, so it's not what you want for a time-critical trade.

How do UniswapX and 1inch Fusion's Dutch auctions work?

Both use a decaying price instead of a batch.

UniswapX. According to the UniswapX overview, you sign an order through Permit2 that allows token transfer only if the amounts match a decay curve. The order starts at a price better for you and decays toward your minimum over time. Fillers watch the signed orders and fill when it becomes profitable for them. The first successful filler sets your price. Uniswap says swaps are gasless, with no cost for failed swaps, and that each chain uses different auction mechanisms. On Ethereum mainnet, there's a quoting step before the open auction, so a quoter can get a short exclusive window to fill.

1inch Fusion. The 1inch help center explains that you become the "maker", and resolvers compete in a Dutch auction where the rate "starts high and moves lower" until a resolver fills it, the price falls below your slippage tolerance, or the order expires. A resolver is "any approved address that stakes 1INCH tokens". Expired swaps can be resubmitted at no cost, and you don't need ETH, BNB or other native assets, even for failed swaps. Fusion also supports partial fills.

The Dutch auction is simple and elegant. The price only gets worse for you over time, so a filler who waits too long risks losing the order to a competitor. In a competitive market, orders get filled close to the best price fillers can actually offer.

Do intents really protect you from MEV?

Mostly, for the classic attacks. A sandwich needs your swap visible in the mempool with loose slippage. An intent isn't a mempool swap, and the filler settles it in their own transaction, usually through private submission. The filler is the one exposed to the chain. That's why I list intent-based DEXs next to private RPCs in what is MEV protection.

But MEV doesn't vanish. It moves into the auction. Solvers and fillers are themselves MEV-style operators: they backrun, arbitrage and route through private liquidity, much like the searchers I write about elsewhere. Your protection depends on how competitive that auction is. If only two fillers show up for a pair, the "best price" is whatever those two decide to offer, above your minimum.

If you want protection while still sending normal swaps, the alternative is a private RPC, which I compare in Flashbots Protect vs MEV Blocker. Some of those even pay you back for your order flow, as in MEV-Share.

What are the risks of intent-based trading?

These are the ones I'd actually think about:

  1. Signature phishing. The same signed-order pattern that makes intents gasless also powers drainers. A fake site can ask you to sign a Permit2 or order message that hands your tokens to an attacker, and no gas prompt warns you. Read what you sign, and see how wallet drainers use approvals and permits.
  2. Lingering approvals. Intent protocols need a token approval to a settlement or Permit2 contract. That's normal, but clean up old ones with how to revoke token approvals and Permit2 signatures.
  3. Concentration. A small set of professional solvers and fillers handle most volume. If they go offline or collude, orders don't fill or fill at your minimum.
  4. Off-chain dependencies. Order books, APIs and, in some designs, a cosigner run by the protocol sit off-chain. If they're down, you can't trade through that route.
  5. Expiry. Orders that don't fill simply expire. That's safer than a failed transaction, but it can be annoying in a fast market.

When would I still use a normal swap?

I still send a regular transaction through a private RPC when I need guaranteed inclusion in a specific block, when the token is new and illiquid (fillers often won't quote it), or when I'm interacting with a contract that isn't a simple swap. For tiny trades on L2s, the difference is usually small enough not to matter. For a mid-sized swap on Ethereum mainnet, I'd compare the intent quote with a protected normal swap and take the better one.

Frequently asked questions

What is the difference between a solver, a filler and a resolver?

They're mostly the same role with different names. CoW Protocol calls them solvers, UniswapX calls them fillers, and 1inch Fusion calls them resolvers. All of them take your signed order and settle it on-chain, competing on price.

Is CoW Swap safe to use?

CoW Swap is a long-running, widely used protocol, and its batch auctions with uniform clearing prices remove the usual sandwich risk. The main risks are the general ones: approvals, phishing sites that copy the interface, and the solver market's competitiveness.

Do I need ETH to trade on UniswapX or 1inch Fusion?

Not for the swap itself. Fillers and resolvers pay the gas and recover it through the trade price. You may still need gas once to approve a token, unless it supports permit signatures.

Can intent orders still be front-run?

Not in the classic mempool sense, because the order isn't a public swap transaction. Value can still be captured inside the auction, so your outcome depends on how many solvers or fillers compete for it.

What is ERC-7683?

ERC-7683, "Cross Chain Intents", is a draft Ethereum standard that defines a common format for cross-chain intent orders so fillers can serve many protocols. It was proposed by Uniswap Labs and Across and is still a Draft.

If you're thinking about running a solver, filler or backrun bot of your own, that's the kind of system we build at MEV DAO. See how our custom MEV bot development works.

← More on Flashbots & MEV Protection All articles