Поле liquidity пула Uniswap V3 — это ни деньги, ни глубина свопа. Пусть Claude разъяснит каждое поле, которое легко прочитать неправильно.
Любой, кто связался с DeFi, рано или поздно начинает разглядывать данные пулов Uniswap V3. И в той сетке цифр на странице пула есть как минимум одно поле, которое почти все читают неправильно с первого раза —— настолько неправильно, что можно поверить, будто в пуле на 100 миллионов долларов лежит 3,2 квинтиллиона долларов «ликвидности».
Эта статья читает пул от начала до конца за пять минут, используя smarts MCP вместе с Claude. Реальные данные, пул USDC/WETH 0.05% на мейннете.
Когда smarts MCP подключён, Claude вызывает get_uniswap_v3_pool со слагом univ3-usdc-weth-eth и получает вот это:
protocol: Uniswap V3
pair: USDC/WETH
fee: 0.05%
price:
1 WETH in USDC: 2310.3381
1 USDC in WETH: 0.00043283
tick: 198868
liquidity: 3243712254364037809
liquidity_note: Uniswap V3 sqrt-formula virtual liquidity
at the current tick. Not a USD amount and
not the depth available to swap.
tvl_usd: 100,645,897.62
tokens:
token0: USDC (decimals 6)
token1: WETH (decimals 18)
block_number: 24959248
Сами по себе данные простые. Дело в том, что в каждом поле есть ловушка. Разберём по очереди.
Многие думают, что в пуле USDC/WETH USDC — это «основная валюта», а WETH — «оцениваемый актив». Не так. Uniswap V3 строго упорядочивает token0 и token1 по числовому значению адресов. Адрес USDC 0xa0b8... меньше адреса WETH 0xc02a..., поэтому token0 = USDC, token1 = WETH.
Этот порядок управляет всеми внутренними расчётами: куда направлена цена, в какую сторону движутся тики, в чём измеряется ликвидность. Перейдите к другому пулу, например WETH/DAI, и роли token0/token1 могут поменяться местами —— любую интуицию «ETH идёт вверх или вниз?» придётся пересчитывать.
Один из плюсов того, что пул читает Claude: он сразу возвращает цену с метками для обоих направлений, и не нужно в уме определять, «какая сторона тика — какой токен».
Четыре стандартных уровня комиссии в Uniswap V3 — 0.01% / 0.05% / 0.30% / 1.00%.
То, что USDC/WETH использует 0.05%, а не 0.30%, говорит: маркетмейкеры ставят на оборот, а не на жирные комиссии за сделку, потому что волатильность ограничена, а поток огромен.
Зная это, увидев новый пул на 1% комиссии, можно догадаться: либо это свежий токен, либо парой никто не интересуется.
В состоянии пула V3 нет отдельного поля «последняя цена сделки». Текущая цена — это то, что говорит slot0.sqrtPriceX96, а тик — её логарифмическое выражение. Иными словами: пока никто не торгует, цена просто стоит там, модель совершенно отличная от «последнего исполнения» на CEX.
(Для исторических цен используется встроенный oracle V3 —— в состоянии пула хранится массив накопителей observation, из которого можно получить TWAP. Это отдельный механизм.)
Прочитанные нами 1 WETH = 2310.34 USDC — это «текущая котировка» пула; следующий swap начинается с этой цены и толкает её вдоль кривой к новому тику.
tick: 198868 — число, которое сбивает всех с толку с первого раза. По ощущению это какая-то цена, но не доллары.
V3 дискретизирует цену логарифмически: raw_price = 1.0001^tick, где raw_price — это wei токена1, делённые на wei токена0 —— не отображаемая цена. Чтобы превратить это в «1 ETH в USDC», ещё нужно умножить на 10^(decimals_token0 - decimals_token1). После этой поправки tick 198868 действительно соответствует 1 ETH ≈ 2310 USDC.
Зачем такая запутанная схема? Потому что когда цена логарифмическая, маркетмейкеры могут размещать ликвидность только в определённом ценовом диапазоне —— например, «только между 2200 и 2400». Дискретные тики и есть метки этих диапазонов. Это фирменное новшество V3 по сравнению с V2: концентрированная ликвидность.
На практике тики считать не надо. Достаточно знать: больший тик не обязательно означает более высокую цену (зависит от того, кто token0), и шаг в один тик — это изменение цены на 0.01%.
Вот большая ловушка: liquidity: 3243712254364037809.
19 цифр, выглядит как wei. Но это не деньги.
Это «виртуальная ликвидность» L из математики Uniswap V3 —— внутренний параметр, выражающий наклон кривой маркетмейкинга в диапазоне sqrt-price. Его единицы — не USD, и его нельзя сравнивать с реальными активами пула.
Ответ инструмента прямо предупреждает через liquidity_note:
Uniswap V3 sqrt-formula virtual liquidity at the current tick. Not a USD amount and not the depth available to swap.
Почему вторая половина? Потому что ещё одна частая ошибка — читать liquidity как «сколько я могу обменять прямо сейчас без проскальзывания». Тоже неверно. Глубина swap в V3 считается по кускам: внутри текущего диапазона тиков используется этот L и формула sqrt-price; как только swap выводит цену за границу тика, переходим в следующий диапазон и переключаемся на его L. Каждая пройденная граница меняет L, пока сделка не закончится. Поэтому «сколько можно обменять без проскальзывания» зависит от того, сколько L уложено в каждом диапазоне на пути —— одно число из slot0 этого не говорит.
Запомнить: не сравнивайте поле liquidity с USD и не используйте его для сравнения «глубины» между пулами —— это вводит в заблуждение.
tvl_usd: 100,645,897.62. Вот это — реальные деньги пула.
Откуда берётся это число? Это фактический баланс контракта в USDC плюс фактический баланс в WETH, каждый умноженный на текущую цену в USD из DefiLlama, и сложено.
В сравнении с полем liquidity:
| Поле | Значение | Смысл |
|---|---|---|
| liquidity | 3.24 × 10¹⁸ | внутренний математический параметр V3, без единиц |
| tvl_usd | $100,645,897 | реальные деньги, удерживаемые пулом |
Оба обычно переводят как «ликвидность», но это разные вещи. Для рассказа смотрите на TVL, для математики — на liquidity, никогда не смешивайте.
Последняя деталь: block_number: 24959248.
Данные on-chain всегда идут с номером блока. Каждое поле, которое вытащил Claude, прочитано в одном и том же блоке. Это даёт два следствия:
Для логики мониторинга или арбитража это ключевое свойство —— одно чтение даёт согласованный срез мира, и не нужно бояться расхождения полей по времени.
Когда всё это понимаешь, инструментарий открывается:
Раньше всё это требовало установить web3.py, написать скрипт, поддерживать ABI, арендовать RPC. Сейчас всё это на уровне беседы с Claude + MCP —— спрашиваете, он читает.
В математической модели V3 есть стена. sqrtPriceX96, тики, L, концентрированная ликвидность —— эти понятия отпугнули многих. Но на практике 90% того, что нужно, это «здоров ли этот пул, есть ли в нём деньги, какая цена?» —— без формул.
Сделайте Claude своим переводчиком V3, превращающим виртуальную ликвидность и кодировку тиков в простое «1 ETH = 2310 USDC, в пуле 100 миллионов долларов». Решения дальше — за вами.