Uniswap guide is a Decision Brief for Concentrated-Liquidity Price Ranges
Uniswap guide is a decision brief for choosing and managing a concentrated-liquidity range in Uniswap v3 or v4. An LP allocates two assets between a lower and upper price, earns swap fees only while the pool price sits inside that interval, and gradually converts inventory as trades move across it. Narrow ranges deploy capital densely and require closer management; wider ranges stay active across larger moves but dilute fee exposure. The correct range starts with inventory goals, volatility, fee tier, and rebalancing cost.
Building Stable-Pair Liquidity Around Parity
A USDC/DAI liquidity position belongs near parity only when the LP expects both assets to remain closely priced. This two-token range concentrates depth where stablecoin swaps occur, so a tighter interval raises the position’s share of active liquidity for the same capital. A departure beyond either boundary ends fee accrual and converts the inventory toward one asset. Issuer exposure, redemption design, and market depth therefore matter alongside past volatility. This use case rewards monitoring because a narrow stable-pair range expresses a continuing view about relative value.
Inventory Conversion at the Range Boundaries
Range boundaries determine both the position’s earning status and the asset that remains after a sustained price move.
Within the band, each swap moves the pool along the constant-product curve used inside the active tick interval. As WETH rises in USDC terms, trades remove WETH from the position and add USDC; as WETH falls, the direction reverses. This rebalancing follows the pool price without an LP instruction. The token mix therefore changes while the owner does nothing. Fees compensate only for swaps that cross active liquidity, while inventory divergence reflects the difference between the automated position and simply holding both starting assets. A narrow band completes that conversion over a smaller price movement (more on this in Uniswap security ).
The Two One-Sided End States
Price Below the Lower Boundary
When WETH falls below the lower boundary in USDC terms, the position finishes as WETH. It holds no active liquidity at the current tick, so swap fee accrual falls to zero. A later price re-entry activates the same interval again without changing its recorded ticks.
Price Above the Upper Boundary
When WETH rises beyond the upper boundary, trading leaves the position in USDC and pauses fee accrual. Price re-entry restores active status automatically.
Neither boundary closes the position or transfers tokens to the wallet. The balances remain represented by the position until the owner removes liquidity, collects amounts owed, and settles the chosen inventory.
How Do Ticks Set the Usable Boundaries?
Uniswap ticks turn a continuous price curve into discrete boundaries that every concentrated-liquidity position must use.
From a timing perspective, Uniswap v3 and v4 map prices to ticks using a factor of 1.0001 per tick, with core indices from -887272 through 887272. A one-tick rise changes the raw token1-per-token0 price by approximately 0.01%, while a fall applies the reciprocal move. The displayed quote may invert that raw orientation, so lower and upper prices must follow the interface’s base and quote labels.
Tick Spacing Across Uniswap v3 Fee Amounts
Around that, Uniswap v3 commonly enables four fee amounts with defined spacing. The 0.01% amount uses spacing 1, the 0.05% amount uses 10, the 0.30% amount uses 60, and the 1.00% amount uses 200. A boundary in a spacing-60 pool must therefore use a tick divisible by 60. Sixty ticks span a price factor near 1.006, or approximately 0.60%. Uniswap v4 lets a pool creator select tick spacing independently from its fee, so the PoolKey supplies the controlling value. Reading that exact spacing prevents an interface or contract from rounding a proposed boundary to an unintended interval.
Range Width as a Capital Allocation Choice
Range width determines how densely a position allocates capital and how far price travels before liquidity becomes inactive.
Each concentrated-liquidity position has exactly two price boundaries. An interval centered by equal arithmetic distances allocates uneven price ratios because the AMM grid is logarithmic. Compare the upper-price-to-current-price ratio with the current-price-to-lower-price ratio; equal ratios create a log-symmetric band. Token amounts at mint still follow square-root price formulas, so symmetry does not guarantee equal notional deposits. A narrow interval places more liquidity units around the current tick, increasing the position’s fee share per unit of capital while active. It also reaches one-sided inventory after a smaller move. A wider interval sacrifices density for more distance before either boundary.
Volatility alone does not select a range. Price path, expected holding time, asset correlation, current liquidity distribution, and reset economics determine whether density pays. A pair that oscillates through the band generates repeated fee-bearing swaps; a one-way move converts inventory and then leaves it idle. This Uniswap guide treats width as an allocation budget: commit only the capital whose ending asset you accept at either boundary.
Fee Tiers and Active-Liquidity Share
The pool fee and the position’s share of active liquidity jointly set gross fee accrual.
In most cases, Uniswap v3 associates each pool with one enabled fee amount. Four widely used amounts are 0.01%, 0.05%, 0.30%, and 1.00%, and the same pair can have separate pools at several amounts. Uniswap v4 accepts a static fee from 0% through 100% in 0.0001% increments, or a dynamic fee controlled by a hook. Each swap distributes the LP portion pro rata among liquidity active at the crossed prices. The range with the highest volume does not automatically yield the strongest return because competing active liquidity sets the denominator.
Worked example: the hypothetical changing inputs are 100 000 USDC of exact-input volume, a 0.30% swap fee, a constant 2% share of active liquidity, and a 0% protocol allocation. The pool charges 100 000 × 0.003 = 300 USDC. The position’s share accrues 300 × 0.02 = 6 USDC. The position therefore accrues 6 USDC before gas, assuming its 2% share remains constant throughout every crossed tick.
Rebalancing Costs and Idle Capital
A rebalancing decision makes sense only when expected incremental fees exceed gas, conversion costs, and time outside the market. On v3, changing ticks means removing liquidity and minting one new ERC-721 position ID through NonfungiblePositionManager; collecting fees and any balancing swap add execution steps. v4 routes changes through PositionManager and PoolManager, where command batching and hooks alter transaction design. Ethereum, Arbitrum, Base, Optimism, Polygon, and Unichain impose different gas economics. A range left outside the market earns zero swap fees, while repeated resets consume gas and establish new asset ratios. Set a review trigger before choosing a narrow interval.
Uniswap v3 and v4 Position Differences
The range-selection math stays consistent across v3 and v4, while pool identity, fees, and position handling differ.
For a regular user, Uniswap v3 identifies a pool by two ERC-20 token addresses and one fee amount, while its NonfungiblePositionManager represents each custom range as an ERC-721 token. Uniswap v4 centralizes pool accounting in the singleton PoolManager. Its PoolKey holds five fields: currency0, currency1, fee, tick spacing, and hook address. v4’s PositionManager also mints ERC-721 position tokens, yet hooks and fee configuration add pool-specific behavior. v3 requires WETH for an Ether pair because its pools accept ERC-20 tokens; v4 supports native Ether directly. Record the version and complete pool identity before modeling a range.
Choosing Among Narrow, Wide, and Layered Ranges
Range style should match the price thesis, monitoring cadence, and willingness to hold either asset at a boundary.
A broad or full-range allocation reduces boundary crossings and suits an LP who values lower maintenance over maximum capital density. Narrow bands express a stronger short-horizon view and place more capital near the current price. Layered allocation splits capital across separate positions, perhaps a broad core and one narrower band, because one Uniswap position cannot contain two intervals. The layers still share the same inventory-conversion logic. More positions add fee-collection, accounting, and gas work, so each extra band needs a distinct role rather than a cosmetic difference.
An LP reaches the final range by fixing the acceptable ending asset at each boundary, a maximum review cadence, and the exact pool identity. Usable ticks then translate those constraints into deposit amounts. That sequence ties the price thesis to capital and attention before the position starts earning.
Details worth knowing about Uniswap guide
Can I supply only one asset to a Uniswap price range?
Yes, a single-sided deposit works when the entire range sits above or below the current pool price in the correct asset. The position then behaves like a range order as swaps convert inventory across the interval. A range that straddles the current price requires both assets in the ratio set by its boundaries.
Why do my lower and upper prices appear reversed in another interface?
Price orientation changed because one interface quotes token1 per token0 and another quotes token0 per token1. The two displays are reciprocals, so a lower boundary under one orientation appears as an upper boundary after inversion. Check the base and quote asset labels before comparing ranges or entering boundary values.
Does collecting Uniswap LP fees close the position?
No, collecting fees transfers accrued token balances without removing the position’s active liquidity. In v3, NonfungiblePositionManager keeps the ERC-721 position open after collection. In v4, PositionManager likewise separates fee realization from the position’s range. The owner must decrease liquidity to withdraw principal from the pool.
What happens to a v3 position NFT after all liquidity is removed?
The ERC-721 token remains in the wallet after liquidity reaches zero, and it may still record uncollected fees. Once liquidity is zero and both owed-token balances are cleared, the owner can burn the position NFT. Removing principal alone therefore does not prove that every balance has been collected.
Does a Uniswap concentrated-liquidity range ever expire?
No, a concentrated-liquidity position has no protocol expiry date. It remains recorded until its owner removes liquidity and, where applicable, burns the position token. Market price may leave and later re-enter the interval any number of times, switching fee accrual off and on without resetting the original boundaries.
Why did minting use less of one token than I approved?
Approval sets a spending ceiling, not a required deposit. The current pool price, selected lower and upper ticks, available token balances, and minimum-liquidity protection determine the executed amounts. Any unspent ERC-20 balance remains in the wallet, while the minted position records only the amounts accepted by the transaction.
Are uncollected v3 and v4 fees automatically reinvested?
No, Uniswap v3 and v4 track accrued fees separately from position liquidity. The balances remain claimable until the owner collects them or uses a position-management action that realizes them. Automatic compounding requires an additional strategy contract or service, which introduces its own execution rules, costs, and custody model.
Updated: