Decision outcome
Before minting, record:- the exact pool and canonical token order
- lower and upper ticks aligned to tick spacing
- the current price region relative to the range
- expected token0 and token1 inventory at entry
- a rebalance trigger and the cost assumptions behind it
Start with the correct pool
Pool identity includes:- Canonically sorted token0
- Canonically sorted token1
- Fee tier
Fee tier and tick spacing are bound by administrator configuration. Both range boundaries must be multiples of the pool’s tick spacing.
The protocol fee setting is separate from the trading fee tier. A
fee_protocol value of 4 assigns 4/16 of each integer step fee to the protocol, not 4 percent of trade value. Market makers should read the current setting from the slot because it changes the share left for LPs.
Read Trading fees and protocol share.
Inventory by price region
Inventory composition follows the current price region:- Below the range, the position is funded with token0.
- Inside the range, the position uses both tokens.
- Above the range, the position is funded with token1.
sqrt_price is a base-unit Q128.128 value, not a ready-made market quote.
Read Price, ticks, and square-root price and Native token amounts.
Active liquidity and fee production
Only active liquidity earns a swap step’s LP fee. If the pool is below a position’s lower tick or at or above its upper tick, that position does not participate in the active-liquidity denominator for the step. Fees accrue in the input token:- A zero-for-one swap adds token0 fee growth.
- A one-for-zero swap adds token1 fee growth.
- Whether the position was active during each step
- Its liquidity relative to total active liquidity
- The protocol share in effect for that step
- Integer rounding in fee growth and settlement
Boundary behavior
When price reaches an initialized tick, the contract:- Records the current step’s LP fee using pre-crossing active liquidity.
- Flips both token fee-growth-outside values.
- Applies the tick’s signed
liquidity_net. - Updates the nearest initialized-tick pointers.
Tick initialization and hints
The contract stores initialized ticks in a per-pool doubly linked list. A new boundary requires the tick immediately below it as an insertion hint. The contract verifies that:- The hint belongs to the same pool.
- The hint is initialized or is the minimum sentinel.
hint.tick < new_tick.hint.next > new_tick.
Practical range tradeoffs
Narrow range
Potential benefits:- Higher active liquidity per unit of capital near the current price
- Larger proportional fee share while active
- Tighter quoted depth around the selected market
- More frequent range exits
- More rebalancing transactions and proof generation
- More frequent fee settlement and sub-unit rounding
- Greater inventory change for a given price move
- Higher exposure to informed or one-sided flow
Wide range
Potential benefits:- Longer active duration across volatile markets
- Fewer reactivation transactions
- Lower sensitivity to stale operational signals
- Less depth per unit of supplied capital near the current price
- Smaller proportional fee share against concentrated competitors
- More capital committed away from the current trading region
Range-selection procedure
For each range decision, record:- The reference price and its data source.
- Canonical token order and display decimals.
- Expected volatility and rebalancing interval.
- Expected flow direction and fee tier.
- Current protocol fee share.
- Tick spacing and rounded lower and upper boundaries.
- Capital limits and minimum output tolerances.
- Custody and proving latency for position updates.
- A response plan for pool pause, token pause, or position freeze.
Public observability
The position’s pool, range, liquidity, fee checkpoints, and owed amounts are public mapping data under itstoken_id. The PositionNFT record keeps the owner out of that mapping, but it does not hide the market-making strategy expressed by the range.
Position ownership is confidential. The range, liquidity, fee accounting, and resulting performance remain public.
Continue with Minting a position or Market maker operations.