Why does the price input automatically round to a seemingly random number?

When providing liquidity, your input min and max price will always automatically round to the nearest tick.

Under the hood, the Astar Exchange v3 protocol divides prices up into discrete intervals known as ‘ticks’. These ticks use logarithmic space.

The size of the tick is a function of the fee tier — generally, the tick is double the size of the fee tier (e.g. a tick for a 0.30% fee tier pool will be 0.60% in size and there will be a tick every price 1.006^n where n is an integer and price is the relative price between token0 and token1).

As an example, take an LP that wishes to deposit into the WETH/USDC pool with a 0.30% fee tier. The LP would like to provide liquidity within a range of 1,000 to 5,000.

The nearest available ticks in this instance are 1,155 (1.006^1155 = 1,001.538) and 1,424 (1.006^1424 = 5,006.388), so the LPs price inputs will be automatically rounded to 1,001.538 and 5,006.388.

Last updated