CenturionDEX
Launch App

Range Orders

Last modified:

Concentrated liquidity and single-sided provisioning enable a new trading primitive: the range order. By depositing a single asset within a narrow price band, a provider can approximate a limit order — one that earns fees as it fills.

In a traditional order book, a limit order sits passively at a target price. A range order works similarly: the provider places capital at a price above or below spot, and the order fills as the market crosses through the range. Unlike a conventional limit order, however, the provider collects LP fees for the duration of the fill.

Feasible and infeasible order types

AMM mechanics make some limit-order styles replicable and others impossible. The key constraint: in any pool, the asset above the spot price is the higher-valued token, and the asset below spot is the lower-valued token.

Reversal risk: Unlike traditional limit orders, a range order can unfill. If the spot price crosses the full range and then reverses back through it before the provider withdraws, the position converts back to the original asset. Providers must monitor the order or use a third-party position manager to auto-withdraw upon fill.

Take-profit order (feasible)

The current DAI/CTN price is 1,500 DAI/CTN. You want to sell CTN at 1,600. Since the price space above spot is denominated in the higher-valued asset (CTN), you can provide CTN at 1,600 and have the order fill when the spot price crosses your position.

Buy-limit order (feasible)

The current price is 1,500 DAI/CTN. You expect a dip to 1,000 and want to buy. The price space below spot is denominated in the lower-valued asset (DAI), so you can deposit DAI at 1,000 — it will convert to CTN as the spot price drops through your range.

Buy-stop order (infeasible)

You want to buy CTN at 2,000, above the current 1,500 spot. This is impossible: the price space above spot is denominated in CTN, so you cannot deposit the DAI required at that price.

Stop-loss order (infeasible)

You want to sell CTN at 1,000, below the current 1,500 spot. This is impossible: the price space below spot is denominated in DAI, so you cannot allocate CTN at that price.

The math behind range orders

Setting a take-profit order

To sell CTN at ~1,600 in a pool currently at 1,500, provide single-sided CTN liquidity in a narrow range just above spot.

Convert the target price to ticks:

tick_lower = floor(log(1600) / log(1.0001)) = floor(7.378 / 0.00009999) = 73,777
tick_upper = tick_lower + tick_spacing

In a 0.30 % pool (tick spacing 60):

tick_lower = floor(73777 / 60) * 60 = 73,740   → price ≈ $1,593.50
tick_upper = 73,740 + 60 = 73,800               → price ≈ $1,603.09

The order fills as spot crosses from $1,593.50 to $1,603.09. A lower fee tier (tighter tick spacing) produces a narrower effective range — closer to a true limit order.

Deposit amount

For a single-sided position above spot, only token0 (CTN) is deposited. The required amount for L units of liquidity:

Δx = L * (1/sqrt(P_lower) - 1/sqrt(P_upper))

Example: Selling 10 CTN at ~$1,600:

Δx = L * (1/sqrt(1593.50) - 1/sqrt(1603.09))
   = L * (0.025051 - 0.024976)
   = L * 0.0000749
 
L = 10 / 0.0000749 = 133,511

Progressive fill

As the price rises through the range, CTN is steadily swapped to DAI. At any price P within [P_lower, P_upper]:

CTN remaining = L * (1/sqrt(P) - 1/sqrt(P_upper))
DAI received  = L * (sqrt(P) - sqrt(P_lower))

When P reaches P_upper, the position is 100 % DAI — fully filled.

PriceCTN remainingDAI accumulated% filled
$1,593.50 (lower)10.0000 %
$1,596.007.493,99325 %
$1,598.504.997,98850 %
$1,601.002.5011,98475 %
$1,603.09 (upper)015,982100 %

Effective fill price: 15,982 / 10 = $1,598.20 — the volume-weighted average across the range.

Fees earned during fill

Unlike a traditional limit order, the provider earns swap fees as the price traverses the range. If $2 M in volume crosses the tick range during the fill:

Fees earned = $2,000,000 * 0.003 * (your_L / total_L_at_tick)

With 133,511 liquidity representing 1 % of the tick's total:

Fees = $2,000,000 * 0.003 * 0.01 = $60

This is pure bonus atop the fill — impossible with conventional limit orders.

Reversal risk

If the price completes the range and then reverses back through it, the DAI converts back to CTN — effectively undoing the fill. To prevent this, withdraw liquidity promptly after the order fills, either manually or via an automated position manager.

Fees

Fees from a filled range order are denominated in both tokens of the pair. Regardless of the order's direction, a small amount of each asset accrues as LP rewards.

Wider ranges may capture more fee revenue if the price oscillates within the band, but at the cost of increased reversal risk — a tradeoff each provider must evaluate against their own exit requirements.