Ticks are units of measurement that are used to define specific price ranges. A tick is the smallest area where liquidity can be placed.
Each fee tier has its own tick spacing. The tick spacing helps the pool keep track of liquidity.
Basis points, known as bps or "bips", is another term used to show the percentage change in the price of a pool. A single tick and a single bip are interchangeable. Both are 0.01% or 0.0001 in decimal form.
The decimal value of a bip is 1/10000th. So, if you multiply the fee tier percentage by 10,000, you will get the pool fee value. The pool fee value is what the contract uses.
The pool fee value is the solidity value of the fee tier percentage.
You can also use (1/Pool fee value) to get the percentage.
Tick-spacing | multiplier | Fee tier % | multiplier | Pool fee value | Fee (bps) |
---|---|---|---|---|---|
1 | 100 * | 0.01 | * 10000 | 100 | 1 |
4 | 200 * | 0.02 | * 10000 | 200 | 2 |
6 | 200 * | 0.03 | * 10000 | 300 | 3 |
8 | 200 * | 0.04 | * 10000 | 400 | 4 |
10 | 200 * | 0.05 | * 10000 | 500 | 5 |
60 | 200 * | 0.3 | * 10000 | 3000 | 30 |
200 | 200 * | 1 | * 10000 | 10000 | 100 |
Note: Solidity does not support percentages or decimals.
Uniswap v3 pools have a tick range from a minimum of -887272 to a maximum of 887272. Ticks used for positions in upper and lower ranges must be evenly divisible by the tick spacing.
Ticks will also convert to a price. Every pool has two prices, in value of token0 and token1. You can find the math for this here.
Learn more about ticks: