Skip to main content
Concentrated liquidity (V3) allows you to provide liquidity within a specific price range instead of across all prices. Capital concentrated in active trading ranges earns more fees per dollar deployed.

V3 and V2 Pools

V3 pools complement the existing V2 constant product and bonding curve pools. Both pool types coexist:
  • V2 Constant Product: Liquidity spread across all prices, fungible LP tokens, simpler management
  • V2 Bonding Curve: Single-sided pools that bond to constant product
  • V3 Concentrated: Custom price ranges, non-fungible positions, higher capital efficiency
All pool types appear in listPools(). V3 pools have curveType: "V3_CONCENTRATED" and include additional fields like currentTick, tickSpacing, and totalLiquidity.
V3 pools also have dedicated endpoints for detailed data: getPoolLiquidity() for depth chart visualization and getPoolTicks() for swap simulation.

How V3 Works

In V2 constant product pools, liquidity spreads from zero to infinity. Most of it sits idle outside the trading range. V3 pools let you choose where your capital works. The math uses ticks to represent prices. Each tick is a 0.01% price change from the previous tick:
Your position is defined by a lower tick and upper tick. When the current price is within your range, your liquidity earns fees. When price moves outside, your position becomes single-sided and stops earning.

Quick Comparison

Getting Started

Create a Position

Convert Prices to Ticks

The SDK provides utilities to convert between human-readable prices and ticks:

Core Operations

Add Liquidity

Creates a new position or adds to an existing one at the same tick range:

Remove Liquidity

Withdraws liquidity and collects accumulated fees:

Collect Fees

Claim earned fees without removing liquidity:

Rebalance Position

Move your liquidity to a new price range in a single atomic operation:

Pool Data

Get Liquidity Distribution

For building depth charts and visualizations:

Get Pool Ticks

For swap simulation and slippage calculation:

Tick Spacing

Pools have a tick spacing that determines valid tick boundaries. Common values: Ticks must be divisible by the pool’s tick spacing:

Position States

Your position’s behavior depends on where the current price sits relative to your range: When price moves outside your range, your position converts entirely to one asset and stops earning fees until price returns.

Error Handling

Next Steps