Uniswap V3 – Determining What Initializes a Tick for Liquidity Providers

liquidity-provideruniswapuniswapv3

Is a tick initialized if it just contains any liquidity?

If someone deposits into an uninitialized tick, are they going to initialize it? When are ticks un-initialized?

Best Answer

A tick is initialized (i.e. active) if it's an endpoint of a position deployed in the pool.

Only ticks that are divisible by the pool's tick spacing can be initialized. For instance, the in 0.3% pool only ticks that are divisible by 60 can be position endpoints. (In the 0.05% pools: divisible by 10; in the 1% pools: divisible by 200.)

Uninitialized ticks still may contain liquidity. For instance, most ticks in the middle of a liquidity position are uninitialized, even though they do and contain liquidity for swapping. This includes ticks that are in the middle of a position and are divisible by 60 (or 10, or 200), unless they are the endpoints of some other position.

All uninitialized ticks have liquidityNet and liquidityGross values equal to zero. (See the v3 whitepaper for the definition of these variables.) An initialized tick may have liquidityNet equal to zero - for example, when it's the upper tick of one position with liquidity L, and the lower tick of another position with the same amount of liquidity L, since L - L = 0. However, an initialized never has liquidityGross equal to zero. Wheneven liquidityGross of an active tick becomes zero dues to a position being closes, the tick is un-initialized.

Related Topic