A range order is a concentrated liquidity position on Uniswap V3 (or compatible AMMs) where an LP sets their price range entirely above or below the current market price — meaning the position starts as 100% one token with zero exposure to the other — and as the market price moves into and through the specified range, the position automatically and continuously converts the deposited token into the paired token, mimicking the behavior of a limit order without requiring an order book. Unlike a traditional limit order which executes at a single price, a range order converts gradually as price travels through the specified range — so if you set a range of $3,000–$3,100 ETH/USDC with USDC, your deposit converts from all USDC to all ETH as ETH’s price moves from $3,000 to $3,100. Range orders are one of the most powerful and underutilized features of Uniswap V3’s concentrated liquidity design.
How Range Orders Work
Standard LP vs. Range Order
Standard Uniswap V3 LP position (price inside range):
- Current ETH price: $3,000
- Set range: $2,800–$3,200
- Deposit: ETH + USDC (both required because current price is inside the range)
- Position earns fees while price stays in range
- Both assets change composition as price moves
Range order (price outside range):
- Current ETH price: $3,000
- Set range: $3,200–$3,400 (ABOVE current price)
- Deposit: USDC only (no ETH needed — current price is below the range)
- Position earns zero fees until price enters range
- Acts as a “buy ETH at $3,200–$3,400” limit order
Range Order Mechanics
Buy Range Order (Below Current Price)
“`
Current ETH price: $3,000
Range set: $2,600–$2,800 (below current price)
Deposit: ETH only
What happens:
- Price at $3,000: position is all ETH (below range)
- Price drops to $2,800: position starts converting ETH → USDC
- Price drops through $2,700: half converted
- Price reaches $2,600: position is all USDC (range exited below)
Result: Effectively sold ETH for USDC at $2,600–$2,800 average
“`
Wait — this is backwards. In a standard V3 pool:
- When price is above the range, the LP position is 100% in the lower-value token (the one that was bought by the pool)
- When price is below the range, the position is 100% in the higher-value token
Buy ETH range order:
- Set range BELOW current price with USDC
- As price falls into and through the range, USDC is progressively converted to ETH
- At range bottom, all USDC has become ETH at average range price
Sell ETH range order:
- Set range ABOVE current price with ETH
- As price rises into and through the range, ETH is progressively converted to USDC
- At range top, all ETH has become USDC at average range price
Range Order vs. Limit Order
| Feature | Range Order (V3) | Limit Order (Order Book) |
|---|---|---|
| Execution price | Average of range width | Single price point |
| Fee earning | Yes — earns LP fees while price traverses range | No |
| Price overshoot risk | If price gaps past range, no execution at range prices | May not fill if price gaps |
| Reversal risk | If price reverses inside range, partial conversion | Order stays open |
| Gas to open | One transaction | One transaction |
| Gas to close | One transaction (remove liquidity) | One transaction |
| Complexity | Medium | Low |
The key advantage of a range order vs. a limit order: fee income during traversal. As price moves through your range, your position is actively providing liquidity and earning the pool’s trade fees. A traditional limit order earns nothing while waiting.
The key disadvantage: price execution is spread over the range width rather than a single point. A range of $3,000–$3,100 gives you an average entry of ~$3,050, not $3,000.
Practical Range Order Strategies
Take-Profit Range Order
- Deposit ETH into V3 with range $3,400–$3,600
- As price rises from $3,400 to $3,600, ETH is sold for USDC automatically
- Result: ETH sold at an average of ~$3,500 while earning LP fees during traversal
- Remove liquidity once range is fully exited (all USDC)
DCA Buy Range Order
- Deposit USDC into V3 with range $2,600–$3,000
- As price falls through the range, USDC converts to ETH incrementally
- Acts as a dollar-cost average buy within the specified band
- Remove liquidity once range exited (all ETH)
Tight Range for Near-Limit-Order
- Range of $3,000–$3,010 is essentially a limit order at $3,005 ± $5
- Narrower range = more precise execution but = less fee earning and = higher impermanent loss if price reverses
Risks and Considerations
Reversal Inside Range
- Wait for price to continue in the original direction
- Accept the partial conversion and remove liquidity
- This is the key difference from a traditional limit order, which stays open unchanged
Range Must Be Monitored
Concentrated Impermanent Loss
Ecosystem Support
Several protocols have built range order UX on top of raw Uniswap V3:
- Uniswap V3 Interface: Native UI shows when a position is “out of range” (effectively a range order)
- Arrakis Finance: Automates range order management including re-setting ranges after traversal
- Gamma Strategies: Actively managed V3 positions including range order strategies
- DeFi Saver: Range order automation tools for V3 and V4