Skip to the article
Web3 Report

Crypto news and its trade-offs

How Opposing Crypto Orders Match Without an AMM Pool

Opposing crypto orders can settle directly when traders want each other’s assets; matching, pricing and residual routing determine whether a pool is needed.

By Web3 Report Editorial5 min read

How Opposing Crypto Orders Match Without an AMM Pool

Opposing crypto orders can exchange assets directly when traders in the same batch want what each other is selling, avoiding an automated market maker (AMM) pool for the matched amount. That changes the route from two separate trades against pool reserves to a shared settlement, but it depends on the orders lining up in assets, timing and acceptable prices. Any unmatched remainder still needs another liquidity source.

This mechanism is often called a “coincidence of wants.” A batch auction groups signed trade intents, then solvers look for orders that can improve one another’s execution. For a fuller account of treasury use cases, see cowswap. The useful distinction is that matching does not create liquidity: it finds compatible demand that is already present.

What are the four steps in matching opposing orders?

The process moves from collecting orders to settling a feasible match. A solver has to preserve each trader’s conditions throughout:

  • Collect orders into a batch. Traders sign intents stating which asset they will sell, which they want to buy, and the minimum acceptable terms. Orders are submitted off-chain and grouped for an auction.
  • Find overlap. The solver compares orders for reciprocal demand. If one trader sells token A for token B while another sells token B for token A, some or all of their amounts may be matched directly.
  • Check amounts and prices. The solver determines how much can be exchanged while respecting each order’s limit. Unequal sizes may allow only a partial match; compatible assets alone are not enough if the price terms conflict.
  • Submit a settlement. The solver proposes the resulting trades for on-chain execution. The settlement contract transfers the assets under the signed orders’ conditions. If no feasible direct match exists, the solver can seek other liquidity for the order.

For example, imagine one order offers 1 ETH for at least 2,000 units of a stablecoin, while another offers 2,000 units of that stablecoin for at least 1 ETH. If both orders are valid in the same batch and their limits permit the exchange, the solver can route the corresponding amounts between them without swapping through a pool. The example describes the mechanism; actual orders may set different amounts, limits and execution conditions.

How does a direct match set the price?

The solver must choose amounts that satisfy both orders, rather than simply pairing their stated market prices. Each trader’s limit sets a boundary: a sell order must receive at least its specified minimum, and the opposite order must also receive enough of the other asset to meet its own terms. Where the protocol uses uniform directional clearing prices, orders trading the same token pair in the same direction within a batch face a consistent price, subject to protocol rules.

This changes the execution problem compared with an AMM. A pool quotes against its reserves, and a trade changes those reserves as it executes. A direct match instead uses the reciprocal demand in the batch; for the matched amount, there is no pool price curve to move. The orders still settle on-chain, so “without a pool” describes the source of the exchanged liquidity, not an off-chain transfer or an absence of contract execution.

Solvers compete to propose settlements, and a batch may contain more than one order on each side. The matching can therefore extend beyond a single pair of traders: a group of orders may share assets and amounts in a way that permits a feasible combined settlement. The solver’s task is to find a valid arrangement, not to assume every opposing order can be paired one-to-one.

What happens when orders do not line up?

A direct match is limited by the smaller compatible quantity and by the orders’ price conditions. If one order offers more than the opposing side can take, the remainder is unmatched. If the orders’ limits do not overlap, they cannot trade directly even when they name the same two assets. The solver may then route the remainder through available on-chain or other liquidity, or leave it unfilled if no route meets the order’s conditions.

That makes direct matching a possible cost and execution advantage, not a guarantee. A complete match can avoid the pool interaction and its liquidity-provider fee for that portion, while a partial match can still require a pool for the balance. A conventional AMM, by comparison, can quote from its reserves without waiting for a reciprocal order in the same batch, but trades against its pricing curve and available depth. Direct matching relies on timing and counterpart demand; pool routing relies on available reserves.

For traders, the practical check is straightforward: review the order’s assets, limit and validity, then assess the final quote and the amount expected to fill. A match that respects those conditions can be useful even if the whole order does not pair off. The signals to watch are whether the batch contains compatible opposing orders, how much of each order they cover, and whether the remaining amount can meet its limit through another source before the order expires.

Related coverage