Glossary

Range Order

A range order is a concentrated liquidity position that functions as a limit order, automatically converting one asset to another within a price range.

Key Takeaways

  • A range order uses concentrated liquidity to mimic a limit order: depositing a single token into a narrow price range on an AMM causes it to convert fully into the other token when the market price crosses that range.
  • Unlike traditional limit orders, range orders earn trading fees while waiting to be filled, because the position serves as active liquidity in a liquidity pool.
  • Range orders require active management: if the price crosses the range and then reverses, the position converts back to the original token unless the liquidity provider withdraws promptly.

What Is a Range Order?

A range order is a liquidity position placed entirely above or below the current market price on a concentrated liquidity AMM such as Uniswap V3 or V4. Because the position sits outside the current price, the AMM accepts only one token (single-sided liquidity). When the market price moves through the specified range, that token is gradually swapped into the other token by traders executing swaps against the pool. Once the price fully traverses the range, the position has been entirely converted: the effect is similar to a filled limit order.

The concept was introduced with Uniswap V3 in 2021, which replaced the uniform liquidity curve of earlier AMMs with concentrated liquidity positions that LPs could target to specific price ranges. The Uniswap V3 whitepaper describes the mechanic directly: "Positions on very small ranges act similarly to limit orders: if the range is crossed, the position flips from being composed entirely of one asset, to being composed entirely of the other asset."

Range orders appeal to traders who want limit-order functionality on a decentralized exchange without relying on an order-book matching engine. They also appeal to liquidity providers looking for more capital-efficient ways to earn swap fees.

How It Works

Range orders leverage the tick-based pricing system of concentrated liquidity AMMs. In Uniswap V3, prices are discretized into ticks using the formula:

p(i) = 1.0001^i

where i is the tick index
valid range: -887,272 to 887,272

Each pool enforces a tick spacing determined by its fee tier. For example, a 0.3% fee pool uses a spacing of 60 ticks, meaning liquidity boundaries can only be placed at multiples of 60. A 0.05% fee pool uses a spacing of 10 ticks, allowing finer granularity.

Creating a Range Order

Setting up a range order involves depositing a single token into a price range that the market has not yet reached:

  1. Choose a target price range above the current price (to sell the base token) or below it (to buy the base token)
  2. Deposit only the token you want to convert: for a sell order, deposit the base asset; for a buy order, deposit the quote asset
  3. The AMM mints a position (represented as an NFT in Uniswap V3) tracking your liquidity within that range
  4. As the market price enters and moves through the range, traders execute swaps against your liquidity, gradually converting your deposited token
  5. Once the price fully exits the other side of the range, your position is 100% converted to the other token

Sell Range Order Example

Suppose ETH is trading at $1,800 and you want to sell at approximately $2,000. You deposit 1 ETH into a narrow range of $1,990 to $2,010. As the price rises and traders buy ETH through your range, your ETH is incrementally swapped into USDC. When the price passes $2,010, your entire position is now USDC (roughly $2,000 worth, plus any fees earned during the transit).

Buy Range Order Example

Conversely, if ETH is at $2,000 and you want to buy at approximately $1,800, you deposit USDC into a range of $1,790 to $1,810. If the price drops through that range, your USDC converts to ETH at an average price near $1,800.

Single-Tick Range Orders

For maximum precision, a range order can span a single tick: the smallest possible price increment. A single-tick position on a 0.05% fee pool (tick spacing of 10) covers roughly a 0.1% price range, making it behave almost identically to a traditional limit order at a specific price point. The tradeoff is that less liquidity is active at any given moment, so very large orders may not fill entirely within one tick.

Why Range Orders Earn Fees

The defining advantage of range orders over traditional limit orders is fee generation. A standard limit order on a centralized exchange or order-book DEX sits idle until matched. A range order, by contrast, is a live liquidity position: every swap that executes within the range pays fees to the LP.

Uniswap V3 pools offer fee tiers of 0.01%, 0.05%, 0.3%, and 1%. A range order in a 0.3% fee pool earns 0.3% of every swap routed through its ticks. Because concentrated liquidity focuses capital into a narrow band, the effective fee yield per dollar of liquidity can be significantly higher than a full-range position: a position concentrated in a 10% price range earns the same fees as a full-range position ten times larger.

Fees accrue only while the market price is within the range. Once the price moves beyond the range (meaning the order has been "filled"), the position becomes inactive and earns nothing further until the price returns.

Uniswap V4 and Automated Range Orders

A significant limitation of range orders in Uniswap V3 is the need for manual withdrawal after the price crosses the range. Uniswap V4, launched with its hooks architecture, addresses this through Limit Order Hooks: custom smart contracts that attach logic to core pool events.

A Limit Order Hook uses the afterSwap callback to detect when a swap causes the price to cross a tick containing range orders. The hook automatically removes the liquidity and mints the converted tokens as ERC-6909 claims that users can withdraw at any time. This eliminates the reversal risk that plagues V3 range orders because the position is closed as soon as it fills.

By mid-2026, multiple Limit Order Hook implementations have been deployed across Ethereum, Base, Arbitrum, and other chains. Some variants are "impermanent loss aware," accounting for impermanent loss in their execution logic. Separately, Uniswap launched UniswapX-based limit orders on Ethereum mainnet, where off-chain fillers execute orders with zero gas cost to users.

Use Cases

DCA and Gradual Execution

A wider range order naturally produces dollar-cost-averaged execution: rather than filling at a single price, the position converts gradually across the entire range. Traders who prefer smooth entry or exit over a price band can use a wider range to reduce price impact and avoid front-running.

Take-Profit and Stop-Loss Substitutes

Range orders can substitute for take-profit orders on decentralized exchanges that lack native order types. A trader holding ETH can place a sell range order at their target exit price, earning fees while the price approaches the target. Similarly, placing a buy range order below the current price functions as a limit buy or accumulation strategy.

Liquidity Provision with Directional Bias

Professional liquidity providers use range orders to express a directional view while still earning fees. By placing single-sided liquidity above or below the current price, the LP bets on a price move in one direction and profits from both the conversion and the fees earned during transit.

Arbitrage and Market Making

Arbitrage traders use narrow range orders on multiple pools or chains to capture price discrepancies. When prices diverge between venues, range orders positioned at the right ticks fill automatically as arbitrageurs route volume through the pool.

Range Orders vs. Order-Book Limit Orders

While range orders approximate limit-order behavior, they differ from traditional order-book limit orders in several important ways:

FeatureAMM Range OrderOrder-Book Limit Order
ExecutionGradual conversion across rangeAtomic fill at exact price
Fee earningEarns swap fees while being filledMay earn maker rebates
Reversal riskYes, unless withdrawn or using V4 hooksNo: once filled, the order is closed
Price precisionRange midpoint (exact at single tick)Exact specified price
ExpiryNo native expirySupports time-based expiry
InfrastructureFully on-chain AMMOrder-book matching engine
Partial fillsNatural (continuous conversion)Supported by most engines

For traders who need exact price execution and no reversal risk, order-book DEXs or Uniswap V4 Limit Order Hooks are better suited. For traders willing to accept a price range in exchange for fee income, range orders on a concentrated liquidity AMM offer a compelling alternative.

Risks and Considerations

Reversal Risk

The most critical risk of range orders in Uniswap V3 is reversal. If the price crosses through a range and then reverses back, the position converts back to the original token, effectively undoing the order. The LP ends up holding the same asset they started with but has suffered impermanent loss from the round-trip conversion.

Mitigation strategies include monitoring positions with bots that submit withdrawal transactions as soon as the range is crossed, using Uniswap V4 Limit Order Hooks that handle withdrawal automatically, or using protocols like Carbon DeFi that implement one-directional range orders via dual bonding curves.

Gas Costs

Creating and closing a range order position on Ethereum mainnet requires on-chain transactions that incur gas fees. For small orders, gas costs can erode or exceed the benefit of fee income. Layer-2 deployments on networks like Arbitrum, Base, or Optimism significantly reduce these costs.

Tick Spacing Constraints

Range orders are limited by the pool's tick spacing. A 1% fee pool with 200-tick spacing only allows range boundaries at relatively coarse price intervals. Traders needing fine price granularity should use lower-fee-tier pools (0.01% or 0.05%) that offer tighter tick spacing, though these pools may have less liquidity depth.

Slippage on Wide Ranges

A wider range order converts the deposited token at an average price across the range, not at a single point. If the range is broad (for example, $1,800 to $2,200), the average execution price may differ significantly from the trader's target. Narrower ranges reduce this slippage but also reduce the window during which fees are earned.

MEV Exposure

Range orders on public mempools are visible to MEV searchers. Bots may sandwich the creation or removal of range order positions, extracting value from the LP. Using private transaction submission or MEV-protection services can mitigate this risk.

Range Orders and the Broader DeFi Landscape

Range orders represent one approach to bringing traditional order types into decentralized finance. As concentrated liquidity AMMs have matured, the line between AMM-based liquidity provision and order-book trading has blurred. Uniswap V4 hooks push this further by enabling protocol-level limit orders with automatic execution. For a deeper look at how AMM mechanics and liquidity provision strategies are evolving, see the research on DeFi revenue models and sustainable tokenomics.

For Bitcoin-native users, similar limit-order functionality is emerging through different mechanisms. Platforms built on Bitcoin Layer 2s like Spark are exploring order-matching designs that do not rely on EVM-style AMMs, instead leveraging atomic swaps and HTLCs for trustless token exchange.

This glossary entry is for informational purposes only and does not constitute financial or investment advice. Always do your own research before using any protocol or technology.