Most explanations of a token swap start with the same picture: you send a transaction, it hits a liquidity pool, a formula sets the price, and the trade executes on chain in that one step. That is still how the majority of swaps work, and it is worth understanding first if you have not read our guide on how a token swap works under the hood.
But a growing share of swap volume now works differently. Instead of sending a transaction that touches a pool directly, you sign a message describing what you want, and a separate network of participants competes to get you that outcome. This is usually called an intent based swap, and the participants who compete to fill it are called solvers.
The problem this model is trying to solve
A direct swap has a few rough edges. You pay gas even if the trade fails, as we cover in our guide on why a transaction fails on Base. Your transaction sits briefly in the public mempool before it is included, where it can be seen and sometimes front run, which is part of what our MEV and sandwich attacks article describes. And you are limited to whatever price the pool you route through happens to offer at that moment, even if a better one exists elsewhere.
Intent based systems were built to reduce these frictions by changing who does the work of getting your trade executed, and how.
What an intent actually is
An intent is not a transaction. It is a signed message, typically using the same EIP-712 signing standard covered in our wallet signature requests article, that states what you are willing to trade, the minimum you will accept back, and a deadline. Signing a message costs no gas and does not touch the blockchain by itself.
That signed intent is then passed to a network of solvers, sometimes also called fillers or resolvers depending on the protocol. Solvers are independent parties, often professional trading firms or automated bots, who look at your intent and compete to fill it as cheaply as possible for themselves while still meeting the terms you signed.
How solvers actually fill an order
Different protocols run this competition differently. Two well known examples illustrate the range.
CoW Protocol (the name stands for Coincidence of Wants) collects signed orders and looks first for direct matches, cases where one person wants to sell what another wants to buy. When a match exists, the two orders can be settled against each other without touching an outside pool at all, which avoids the fees and price impact of an AMM entirely. When no direct match exists, solvers route the order through external liquidity such as Uniswap or Aerodrome instead, competing in a batch auction for the right to execute it. CoW Protocol originally launched on Ethereum and has since expanded to other networks, including Base.
UniswapX uses a Dutch auction instead. Your signed order starts at a price that favors the solver, and that price steadily moves in your favor over a short window until a solver accepts the fill or the order expires. Because solvers compete for the right to fill it, the auction tends to converge on a price close to what you would have gotten from the best available route, without you needing to check every pool yourself.
Other systems, such as 1inch Fusion, use a comparable request for quote model where market makers stream competing prices to fill your order.
What actually happens on chain
The important detail for a self custody user is that solvers do not receive custody of your funds and cannot execute outside the limits you signed. The actual settlement, when it happens, is a transaction submitted by the winning solver to a smart contract that enforces your minimum output and deadline. If those terms cannot be met, the settlement simply reverts or the order expires unfilled. Your tokens stay in your wallet the entire time an order is unfilled, the same way an unsigned or unexecuted transaction never leaves your balance untouched.
This is a meaningful difference from just trusting a solver's word. The enforcement is on chain and contract based, not a promise from whoever wins the auction.
What this changes for you as a user
A few practical effects follow from this design:
- No gas paid on a failed attempt. Since nothing is broadcast until a solver has a fill ready, you are not paying network fees for orders that never complete, unlike a failed direct transaction.
- Less mempool exposure. Because your order is not sitting as a pending transaction the way a direct swap is, it is harder for bots to see and front run it before it lands.
- Execution is not instant. A Dutch auction or batch window takes some time to resolve, typically seconds, so intent based swaps are not always the fastest option for a trade where speed matters more than price.
- Solver competition has to actually exist. The price improvement this model promises depends on enough solvers genuinely competing for your order. In quiet markets or for illiquid tokens, that competition can be thinner, and the result may not differ much from a direct route.
Why this is worth knowing even if you never choose it directly
You may never manually pick between a direct swap and an intent based one. Many swap apps and aggregators, including the kind covered in our DEX aggregator article, decide the routing for you behind a single quote screen. But understanding the difference helps explain why a swap confirmation screen sometimes mentions a signature step with no gas estimate, why some trades take a few extra seconds to settle, and why the app you use might route the exact same trade through a pool directly on one occasion and through a solver network on another. None of this changes the core self custody guarantee: your funds only move within the exact limits you signed, and only once, on chain.