Ticks are units of measurement that are used to define specific price ranges. A tick is the smallest area where liquidity can be placed.
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.
Each fee tier has its own tick spacing. The tick spacing helps the pool keep track of liquidity.
The pool fee value is the solidity value of the fee tier percentage
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.
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|
|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:
- Uniswap v3 math primer
- Uniswap v3 math primer part 2
- Uniswap v3 Developer Documents
- Uniswap v3 Book Tick Bitmap