Glossary

Tick Spacing

Tick spacing is the minimum price increment between positions in concentrated liquidity AMMs like Uniswap v3.

Key Takeaways

  • Tick spacing defines the minimum distance between price points where liquidity providers can place positions in a concentrated liquidity AMM. Position boundaries must fall on ticks that are multiples of the pool's tick spacing.
  • Spacing is tied to fee tier: Uniswap v3 uses spacing of 1 for the 0.01% tier, 10 for 0.05%, 60 for 0.30%, and 200 for 1%. Lower-fee pools allow tighter positioning because their pairs tend to be less volatile.
  • The core tradeoff is precision versus gas cost. Tighter tick spacing lets LPs concentrate capital more precisely, but swaps that cross many initialized ticks consume more gas because the pool must update liquidity at each boundary.

What Is Tick Spacing?

Tick spacing is a design parameter in concentrated liquidity market maker (CLMM) protocols that controls the granularity at which liquidity providers can define their price ranges. In a tick-based AMM like Uniswap v3, the entire price continuum is divided into discrete points called ticks. Tick spacing determines which of those ticks are available as position boundaries.

Without tick spacing, LPs could place liquidity at any tick, meaning the pool would need to check for liquidity changes at every tiny price increment during a swap. This would make gas costs prohibitively high. By restricting positions to multiples of the spacing value, the protocol limits how frequently liquidity can change during a swap, keeping execution affordable while still offering meaningful precision.

Each pool's tick spacing is set at creation and cannot be changed afterward. It is determined by the pool's fee tier: pairs expected to trade in tight ranges (like stablecoin pairs) get narrow spacing, while volatile pairs get wider spacing.

How It Works

Tick Math

In Uniswap v3, every tick maps to a price through a fixed exponential formula. Each tick represents a 0.01% (1 basis point) change in price from its neighbor:

price(i) = 1.0001 ^ i

// Tick 0:   price = 1.0000
// Tick 1:   price = 1.0001  (0.01% higher)
// Tick 10:  price = 1.001   (0.1% higher)
// Tick 60:  price = 1.006   (0.6% higher)
// Tick -60: price = 0.994   (0.6% lower)

// Inverse: tick = log(price) / log(1.0001)

The valid tick range spans from -887,272 to 887,272, covering prices from approximately 2-128 to 2128. Internally, the protocol works with the square root of the price (encoded as a Q64.96 fixed-point number) for computational efficiency.

Tick Spacing by Fee Tier

Uniswap v3's factory contract maps each fee tier to a tick spacing value. The lower the fee, the tighter the expected trading range, and the finer the spacing:

Fee TierTick SpacingMin Position WidthTypical Pairs
0.01% (1 bp)1~0.01%Stablecoin/stablecoin (USDC/DAI)
0.05% (5 bp)10~0.10%Correlated assets (wstETH/ETH)
0.30% (30 bp)60~0.60%Standard pairs (ETH/USDC)
1.00% (100 bp)200~2.00%Volatile/exotic tokens

With a tick spacing of 60, an LP can only set position boundaries at tick indexes that are multiples of 60: ..., -120, -60, 0, 60, 120, ... Any tick between these multiples is unavailable as a position edge.

How Swaps Cross Ticks

During a swap, the pool uses the current active liquidity until the price reaches the next initialized tick (a tick where at least one LP position begins or ends). At that boundary:

  1. The pool reads the net liquidity change stored at that tick (called liquidityNet)
  2. It adds or removes the corresponding liquidity from the active pool
  3. The swap continues with the updated liquidity until it reaches the next initialized tick or the order is filled

Each tick crossing requires a storage read and a liquidity calculation, both of which consume gas. A swap that crosses 10 initialized ticks costs significantly more than one that stays within a single tick range. This is the fundamental reason tick spacing exists: by preventing positions from starting or ending on every single tick, the protocol ensures that swaps encounter fewer boundaries to cross.

// Simplified swap loop pseudocode
while (amountRemaining > 0) {
  nextTick = findNextInitializedTick(currentTick, tickSpacing);
  (amountIn, amountOut) = computeSwapStep(currentLiquidity, nextTick);
  amountRemaining -= amountIn;

  if (reachedNextTick) {
    // Gas-intensive: read storage, update liquidity
    currentLiquidity += getNetLiquidity(nextTick);
    currentTick = nextTick;
  }
}

Tick Spacing vs. Bin Steps

Not all concentrated liquidity protocols use ticks. Trader Joe's Liquidity Book and Meteora's DLMM use a bin-based model where each liquidity bin represents a single discrete price. The bin step parameter serves a similar role to tick spacing: it controls the price granularity available to LPs.

FeatureTick Spacing (Uniswap v3)Bin Step (Liquidity Book)
Granularity unitNumber of ticks between valid boundariesBasis points between adjacent bin prices
Position modelContinuous range between two ticksDiscrete: each bin is a single price point
In-range formulaConcentrated constant-product (some slippage)Constant-sum (zero slippage within a bin)
LP tokenNon-fungible ERC-721 per positionFungible ERC-1155 per bin
Price formula1.0001tick(1 + binStep/10000)i
ConfigurabilityFixed per fee tier at pool creationSet by pool creator, multiple steps per pair

Both approaches solve the same problem: discretizing a continuous price curve so that LPs can concentrate capital efficiently. The tick model provides a continuous range within each position, while the bin model provides discrete, order-book-like price levels. Learn more about how Uniswap v4 hooks extend concentrated liquidity with programmable logic at tick boundaries.

Why Tick Spacing Matters

Tick spacing directly affects three stakeholders in a liquidity pool:

  • Liquidity providers: tighter spacing enables more precise positioning, which means higher capital efficiency and more fee income per dollar deposited. An LP in a 1-tick-spacing pool can define a range just 0.01% wide, capturing nearly all fees when the price stays in range
  • Traders: tighter spacing means more potential tick crossings during a swap, which can increase gas costs. However, it also means deeper liquidity near the current price, reducing slippage on trades
  • Protocol designers: spacing is a governance lever. Uniswap's factory contract allows new fee-tier/spacing pairs to be added through governance proposals, enabling the protocol to adapt to new asset types

For DeFi protocols that route trades across multiple pools, tick spacing determines which pools offer the best execution. A DEX aggregator may split a large order across pools with different fee tiers to minimize the combined cost of fees and gas from tick crossings.

Use Cases

Stablecoin Pools

Stablecoin pairs like USDC/DAI trade within a few basis points of parity. A tick spacing of 1 lets LPs place positions as narrow as 0.01%, concentrating all their capital within the expected trading range. Because the price rarely moves far, swaps cross very few ticks, keeping gas costs low despite the fine granularity.

Correlated Asset Pools

Pairs like wstETH/ETH or cbBTC/WBTC trade within a predictable band driven by staking yields or redemption mechanics. A tick spacing of 10 (0.05% fee tier) provides enough precision for LPs to capture the narrow spread while keeping swap costs reasonable.

Major Trading Pairs

Standard pairs like ETH/USDC see regular price movement. A tick spacing of 60 (0.30% fee tier) balances LP precision against gas efficiency. LPs typically define ranges spanning hundreds of ticks to stay in range during normal volatility.

Long-Tail and Volatile Tokens

Tokens with high volatility or low liquidity use a tick spacing of 200 (1% fee tier). The wider spacing reflects the reality that precise positioning offers little benefit when the price can swing 5% to 10% in a single block. The higher fee compensates LPs for the increased impermanent loss risk.

Risks and Considerations

Gas Cost Amplification

When many LPs cluster positions at similar tick boundaries, a moderate price move can cross dozens of initialized ticks. Each crossing adds gas overhead to the swap transaction. During periods of high volatility, this can make swaps on tightly-spaced pools significantly more expensive than pools with wider spacing. Traders may find that the gas cost of crossing ticks exceeds the fee savings from using a lower fee tier.

Precision Illusion

Tighter tick spacing does not guarantee better returns. An LP who sets a very narrow range earns high fees while the price stays in range but earns nothing and suffers impermanent loss once the price moves out. The precision that tight spacing enables can encourage overconcentration, especially for LPs who do not actively manage their positions.

Liquidity Fragmentation

Because each fee tier has its own tick spacing, the same trading pair can have multiple pools with different characteristics. This fragments liquidity across pools, potentially worsening execution for traders who hit only one pool. Smart routing through aggregators mitigates this, but adds complexity.

Fixed at Pool Creation

Tick spacing cannot be changed after a pool is deployed. If market conditions shift (a volatile token stabilizes, or a stable pair starts fluctuating), the original spacing may become suboptimal. The only recourse is to create a new pool with a different fee tier, which requires liquidity migration and splits volume.

This glossary entry is for informational purposes only and does not constitute financial or investment advice. Always do your own research before using any protocol or technology.