clmm_tick_to_sqrt_price_x96

Converts a Uniswap-compatible tick to Q64.96 sqrt(currency1/currency0) with TickMath's bit-decomposed constants and final upward rounding. It is deterministic and propagates NULL.

Example

Local

1
WITH price AS (
2
SELECT clmm_tick_to_sqrt_price_x96(200311::INTEGER) AS sqrt_price_x96
3
)
4
SELECT
5
sqrt_price_x96::VARCHAR AS sqrt_price_x96,
6
format_units(
7
divmul(
8
(1::UINT256 << 192),
9
sqrt_price_x96 * sqrt_price_x96,
10
1000000000000000000::UINT256
11
),
12
6
13
) AS usdc_per_weth
14
FROM price;
15
-- => [{"sqrt_price_x96":"1771577727172025373304338615273325","usdc_per_weth":"2000.040289"}]
Notebook ready in readonly mode.

API reference

Exact signatures with descriptions, requirements, inputs, returns, and examples.

clmm_tick_to_sqrt_price_x96(INTEGER) #

Converts a Uniswap-compatible tick to Q64.96 sqrt(currency1/currency0) with TickMath's bit-decomposed constants and final upward rounding. It is deterministic and propagates NULL.

Inputs

Name Type Use
tick INTEGER

INTEGER tick in [-887272, 887272], where raw currency1/currency0 price is 1.0001^tick.

required positional

Returns

Name Type
sqrt_price_x96 UINT256

Q64.96 square-root price. UINT256 sqrt(currency1 / currency0) * 2^96, rounded up exactly as Uniswap v4 TickMath; range [4295128739, 1461446703485210103287273052203988822378723970342]. NULL input returns NULL; an out-of-range tick errors.

Guidance

Uniswap v4-compatible local math boundary

These generic helpers follow Uniswap v4 core TickMath, SqrtPriceMath, SwapMath, and TickBitmap conventions. Q64.96 square-root price means sqrt(currency1 / currency0) * 2^96, using raw token units.

  • Use them as deterministic evidence about one hydrated pool state, price range, bitmap word, or swap step.
  • They do not fetch state, resolve dynamic fees or hooks, cross ticks and update liquidity, iterate bitmap words, apply slippage policy, select routes, produce calldata, or return a complete executable quote.
  • Pin onchain reads before use. The six-argument swap-step fee denominator and the bitmap result diagnostics are Determica extensions, not Uniswap v4 interfaces.

Local SQL

1
WITH bounds AS (
2
SELECT
3
clmm_tick_to_sqrt_price_x96(-60) AS sqrt_price_a_x96,
4
clmm_tick_to_sqrt_price_x96(60) AS sqrt_price_b_x96
5
)
6
SELECT clmm_amount0_delta_x96(
7
sqrt_price_a_x96,
8
sqrt_price_b_x96,
9
1000000::UINT256,
10
false
11
) AS amount0
12
FROM bounds;
Notebook ready in readonly mode.

Related functions

Category and tags

Tag
Clmm Math
Tag
Offline
Tag
Types