What is a tick when providing liquidity?#
Ticks are units of measurement 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", are another way to express a 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/10,000th. If you multiply the fee tier percentage by 10,000 you get the pool fee value, which is what the contract uses. The pool fee value is the integer value of the fee tier percentage. You can also use 1 / pool fee value to get the percentage back.
| Tick spacing | Fee tier % | Pool fee value | Fee (bps) |
|---|---|---|---|
| 1 | 0.01 | 100 | 1 |
| 4 | 0.02 | 200 | 2 |
| 6 | 0.03 | 300 | 3 |
| 8 | 0.04 | 400 | 4 |
| 10 | 0.05 | 500 | 5 |
| 60 | 0.30 | 3000 | 30 |
| 200 | 1.00 | 10000 | 100 |
Note: smart contracts do not support percentages or decimals, so values are stored as integers.
CenturionDEX v3 pools have a tick range from a minimum of -887272 to a maximum of 887272. Ticks used for the upper and lower bounds of a position must be evenly divisible by the pool's tick spacing.
Ticks also convert to a price. Every pool has two prices, expressed in terms of token0 and token1. See Why does the price input automatically round? for the math.
Related#
- How to convert a price to a tick that can be initialized
- Why does the price input automatically round?
- What are fee tiers?
- Why is my liquidity position not evenly split between the two tokens?
- v3 liquidity positions — ticks and ranges at the protocol level (CenturionDEX developer docs).