Позиция ликвидности Uniswap получает торговые комиссии, пока цена в пуле находится внутри выбранного диапазона. По мере обменов её состав меняется: один актив уходит трейдерам, другой поступает взамен. За пределами диапазона основная сумма оказывается в одном активе, а новые торговые комиссии перестают начисляться. Уже накопленные комиссии остаются доступны для сбора.
Сбор комиссий переводит заработанные токены в кошелёк, сохраняя ликвидность в пуле. Снятие ликвидности возвращает часть или все текущие активы позиции. Разберём позицию USDC/WETH в Ethereum: от выбора диапазона до получения токенов обратно.
Один пул, одна версия, одно направление цены
Пример — пул USDC/WETH Uniswap v3 в Ethereum с комиссией обмена 0,05%. Его адрес: 0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640. WETH — токенизированная форма ETH, которую использует этот пул. Сетевые комиссии Ethereum оплачиваются в ETH.
Здесь и далее цена — количество USDC за один WETH. Рост с 2 500 до 3 000 означает подорожание WETH. Если поменять порядок токенов в интерфейсе, отображаемые цена и границы тоже перевернутся. Комиссия 0,05% относится к обменам через пул; это не ставка дохода на внесённую сумму.
Ниже используются учебные цены и суммы. Они описывают условную позицию, а не текущий рынок. В гайде по экосистеме Uniswap собраны интерфейс обмена, кошелёк и другие продукты.
Как диапазон меняет состав позиции
Общий запас активов в смарт-контракте, из которого выполняются обмены. Участники вносят активы в пул и получают долю комиссий по его правилам. хранит активы, из которых трейдеры получают токены при обмене. Поставщик ликвидности, или LP, вносит часть этих активов. В v3 он выбирает нижнюю и верхнюю цены своей позиции. Так работает концентрированная ликвидность: капитал обслуживает обмены внутри заданного интервала.
Допустим, выбран диапазон 2 000–3 000 USDC за WETH. Пока цена находится между границами, в позиции есть оба токена. При росте WETH трейдеры забирают его из позиции и вносят USDC. При падении позиция, наоборот, накапливает WETH и отдаёт USDC.
Выше верхней границы основная сумма состоит только из USDC, ниже нижней — только из WETH. Позиция остаётся открытой. Когда цена возвращается внутрь диапазона, она снова участвует в обменах. Этот механизм описан в документации концентрированной ликвидности.
Интерфейс подгоняет границы под разрешённые ценовые шаги — тики, поэтому введённые значения могут округляться. Узкий диапазон плотнее размещает капитал около текущей цены, но меньшего движения достаточно, чтобы вывести его из работы. Полный диапазон охватывает гораздо больше цен и распределяет ту же сумму менее плотно.
Что происходит с позицией на $10 000
Зададим начальную цену 2 500 USDC/WETH и диапазон 2 000–3 000. Один USDC оценим в $1. В модели с непрерывной ценой для позиции на $10 000 потребуется примерно 1,808577 WETH и 5 478,56 USDC. Доли в долларах не обязаны быть равны: они зависят от положения цены внутри диапазона.
| Цена, USDC/WETH | WETH в основной сумме | USDC в основной сумме | Стоимость основной суммы |
|---|---|---|---|
| 1 500: ниже диапазона | 4,258662 | 0 | $6 387,99 |
| 2 500: начало | 1,808577 | 5 478,56 | $10 000,00 |
| 2 750: внутри диапазона | 0,842579 | 8 011,42 | $10 328,52 |
| 3 500: выше диапазона | 0 | 10 431,55 | $10 431,55 |
В таблице показана основная сумма без накопленных комиссий и сетевых расходов. Границы заданы точно, без округления по тикам. Суммы реальной операции также зависят от цены в пуле в момент исполнения транзакции.
Как воспроизвести расчёт
Пусть a=2 000, b=3 000, а P — цена в USDC за WETH. Ограничим её границами: Q=min(max(P,a),b). В обычных единицах токенов:
WETH=L×(1/√Q−1/√b)USDC=L×(√Q−√a)
Подберём L так, чтобы при P=2 500 токены стоили $10 000. Получим L≈1 037,87259461. При любой следующей цене стоимость основной суммы равна WETH×P+USDC. Это соотношение резервов из whitepaper v3; здесь L выражен в нормализованных единицах токенов, а не в целых числах контракта с учётом их десятичных знаков.
Комиссии и итоговый результат позиции
Ваша доля комиссий зависит от соотношения вашей ликвидности и остальной активной ликвидности на ценах, через которые прошёл обмен. Деление суммы вклада на весь долларовый баланс пула эту долю не описывает. По настройкам пула часть торговой комиссии может направляться протоколу; поставщики получают ту часть, которая выделена LP. Эти потоки разделены в документации комиссий.
В разборе получателей комиссий сопоставлены поставщики ликвидности, стейкеры и участники голосования. Их награды зависят от разных позиций и правил.
При цене 3 500 в учебной позиции останется 10 431,55 USDC. Если бы исходные 1,808577 WETH и 5 478,56 USDC лежали в кошельке, они стоили бы $11 808,58. Основная сумма LP отстала от простого хранения на $1 377,03: позиция продавала WETH по мере роста.
Теперь зададим для примера $120 накопленных комиссий и $20 всех расходов на операции. Результат LP составит $10 531,55 — на $531,55 больше начальных $10 000 и на $1 277,03 меньше стоимости исходных токенов в кошельке. Положительный доход от комиссий может сочетаться с отставанием от простого хранения активов.
Разницу между активами LP и хранением исходного набора обычно называют непостоянными потерями, или impermanent loss. Она может измениться, если изменится относительная цена. На момент вывода обе стратегии сравнивают при одной цене, с учётом комиссий и всех расходов. Доход от комиссий здесь задан условием примера; годовая ставка из него не рассчитывается.
Как открыть позицию v3
Откройте этот пул в официальном веб-приложении и используйте кошелёк в Ethereum. В инструкции создания позиции v3 описаны разрешение на расходование токенов и внесение ликвидности:
- На странице пула нажмите Add liquidity. Экран создания показывает USDC/ETH, Ethereum, v3 и комиссию 0,05%. Эти параметры направляют вклад в выбранный существующий пул.
- Выберите Custom range и прочитайте единицу возле полей цены. В примере задано 2 000–3 000 USDC за WETH. Если редактор показывает WETH за USDC, тот же интервал равен 1/3 000–1/2 000, то есть примерно 0,00033333–0,0005. При переходе к обратным величинам нижняя и верхняя границы меняются местами. Приложение округляет их по тикам и рассчитывает количество второго токена.
- Просмотрите суммы обоих токенов, диапазон и сетевую комиссию. Оставьте ETH для оплаты Мера работы, которую сеть выполняет при обработке операции. Сетевая комиссия зависит от объёма этой работы и её цены; оплачивается в активе, выбранном правилами сети.. Если кошелёк запрашивает разрешение расходовать токены, подтвердите его, затем подтвердите создание позиции.
- После подтверждения откройте детали позиции. Токен с собственным идентификатором, который обозначает отдельный предмет коллекции, игровую вещь или другое цифровое имущество. Блокчейн хранит запись о том, какому адресу принадлежит этот токен. фиксирует право владения; в деталях видны диапазон, текущие активы и доступные комиссии. Сохраните транзакцию и номер позиции для последующего управления.
Разрешение даёт контракту право расходовать указанный токен. Активы поступают в пул при создании позиции. Само по себе разрешение ещё не создаёт работающую ликвидность.
Собрать комиссии, вывести активы или сменить диапазон
Собрать комиссии: откройте позицию, выберите Collect fees → Collect и подтвердите операцию. Накопленные токены поступят в кошелёк, а основная ликвидность и диапазон сохранятся. Переключатель Collect as WETH позволяет получить комиссию со стороны ETH в форме WETH. Сбор оплачивается отдельной сетевой комиссией. Шаги показаны в инструкции сбора комиссий v3.
Вывести активы: выберите Remove liquidity и долю, которую хотите снять. Просмотрите суммы токенов и подтвердите операцию. При снятии 100% возвращаются вся текущая основная сумма и доступные комиссии. При частичном снятии оставшаяся ликвидность работает в прежнем диапазоне. Результат — подтверждённая транзакция и токены в кошельке. Последовательность показана в инструкции вывода v3.
Сменить диапазон: снимите прежнюю ликвидность и создайте новую позицию с нужными границами. Если из старой позиции вернулись только USDC, а новый диапазон включает текущую цену, для нового вклада понадобится и WETH. Обмен части выведенных средств меняет баланс и добавляет расходы на исполнение.
Если оставить прежний диапазон, позиция сохранит текущий состав до возобновления обменов внутри него. Перенос восстанавливает участие на других ценах, с новым составом и новыми расходами. В официальном руководстве по смене диапазона используются снятие и последующее создание позиции.
Что меняется в v4
Uniswap v4 сохраняет концентрированную ликвидность, но позволяет подключить к пулу hook — Программа, записанная в блокчейн. Она выполняет заданные действия со средствами и данными, когда получает подходящий вызов; например, обменивает токены по правилам приложения. с дополнительными действиями при обменах или изменении ликвидности. Пул определяется токенами, настройками комиссии, шагом тиков и адресом hook. Поэтому у v4-пула той же пары могут быть другие правила, чем в примере v3. Точки подключения описаны в обзоре hooks Uniswap.
Для уже открытой позиции исходные данные — версия, сеть и диапазон. Затем выбирается нужное действие: получить доход, вернуть активы или перенести диапазон. В хабе Uniswap связаны интерфейс и механика пулов.