LP-токены Uniswap v2: какие активы пула стоят за балансом
Число LP-токенов не равно количеству любого из базовых активов. Используйте выпуск LP и резервы пары, чтобы описать позицию в правильных единицах.
Баланс LP-токенов Uniswap v2 описывает долю конкретного пула, а не количество любого из двух токенов внутри него. Для учётного снимка без изменения данных разделите свой LP-баланс на общий выпуск LP пары, затем примените эту долю к каждому записанному резерву. Сопоставьте каждый резерв с адресом токена и его десятичным масштабом.
Так можно описать уже существующую позицию. Это не гарантированная сумма вывода, не расчёт прибыли и не инструкция по удалению ликвидности. Строка кошелька с обозначением UNI-V2 лишь отправная точка: такое обозначение используют многие разные пары.
Найдите пару, прежде чем трактовать её LP-баланс
В описании пулов v2 Uniswap рассказывает о токенах ликвидности, выпускаемых для поставщиков. Официальная реализация LP-токена использует одинаковые название и символ для разных пар. Поэтому один символ не определяет активы, которые представляет ваша позиция.
Начните с сети и полного адреса контракта пары из известной транзакции с ликвидностью или интерфейса протокола, которому вы уже доверяете. Подтвердите фабрику по официальному списку развёртываний v2 и проверьте, что нужные токены соответствуют паре этой фабрики. Скопированное название или наличие знакомых методов у контракта не доказывает официальное развёртывание.
В этой реализации v2 контракт пары одновременно является контрактом LP-токена. Прочитайте адреса из token0() и token1(), прежде чем использовать резервы. reserve0 относится к token0, а reserve1 к token1. Не распределяйте два количества по порядку тикеров на другом экране.
Применяйте эту процедуру только к обычным парам Uniswap v2. Форк, управляемое хранилище или концентрированная позиция могут использовать другой учёт. Для NFT позиции Uniswap v3 нужна отдельная запись позиции, а не этот расчёт через выпуск LP.
Соберите один согласованный набор величин
Для LP-позиции в прямом владении получите следующие данные из проверенных контрактов пары и токенов:
| Запрос или поле | Значение | Сохраняемая единица |
|---|---|---|
balanceOf(account) пары |
LP-токены этого аккаунта | Единицы LP |
totalSupply() пары |
Все выпущенные LP-токены | Те же единицы LP |
getReserves() пары |
Записанные резервы каждой стороны | Необработанные целые числа токенов |
token0() и token1() пары |
Адреса двух активов | Полные адреса |
| Десятичные знаки каждого токена | Масштаб необработанного резерва | Собственный масштаб |
По возможности используйте один блок для всех запросов. Если инструмент позволяет только отдельные запросы последнего состояния, сохраните их время и отметьте возможную несогласованность сравнения. Сделка, депозит или вывод между запросами могут изменить исходные данные.
LP-баланс и общий выпуск должны быть в одном масштабе. Для получения доли можно делить два необработанных целых значения LP или два правильно отформатированных количества LP. Смешивать необработанное целое число с отформатированным нельзя. Для резервов применяйте десятичные знаки каждого базового токена отдельно; преобразование описано в руководстве по десятичным знакам токенов. Неизвестные метаданные оставляйте неустановленными, не подставляйте 18 по умолчанию.
Не вычитайте заблокированные или иначе недоступные LP-токены из общего выпуска, чтобы увеличить свой процент. Здесь используется выпущенное количество по данным контракта, а не предполагаемый оборотный выпуск. Если выпуск равен нулю или важный запрос не удался, остановите расчёт и запишите недостающие данные.
Разберите подписанный пример снимка
Возьмём условную пару, данные которой уже приведены к читаемым единицам. Выпущено 500 LP-токенов, и ваш аккаунт напрямую держит 5 LP-токенов. Записанные резервы составляют 80 единиц токена A и 24000 единиц токена B. Это выдуманные количества, а не действующий пул или ценовая котировка.
Доля LP равна 5 / 500 = 0.01, то есть 1%. Применение к записанным резервам даёт:
- Токен A:
80 * 0.01 = 0.8единицы. - Токен B:
24000 * 0.01 = 240единиц.
Результат описывает одну LP-позицию с эквивалентом по резервам 0,8 A и 240 B на момент снимка. Это не 5 A плюс 5 B, а количества резервов не являются долларовыми ценами. Предполагать, что B является стейблкоином, не требуется.
Не складывайте отображаемую стоимость LP-токена и стоимость тех же базовых количеств как два отдельных вложения. Токены, которыми вы независимо владеете вне пула, составляют отдельный баланс. Если панель уже раскрывает LP-токен через базовые активы, выясните состав учтённых значений, прежде чем добавлять что-либо вручную.
Это также не измерение доходности. Текущая доля резервов не показывает первоначально внесённые количества, последующие движения, расходы или стоимость простого хранения исходных активов. Этот отдельный вопрос разобран в сравнении непостоянных потерь и хранения.
Почему это не обещание суммы погашения
Реализация пары хранит резервы отдельно от фактических балансов токенов. Расчёт при сжигании использует балансы и может выпустить LP-токены комиссии протокола до выбора общего выпуска для расчёта. Целочисленное деление также округляет рассчитанные суммы. Поэтому долю ранее записанных резервов нельзя представлять как точное количество, которое выдаст транзакция удаления ликвидности.
Транзакция может пройти при другом состоянии, чем наблюдаемое вами. Особые правила перевода токенов также могут влиять на полученные количества. Если отдельно решите совершить транзакцию, используйте текущую оценку удаления ликвидности и условия протокола; в рамках этой проверки не отправляйте LP-токены напрямую паре и не вызывайте её низкоуровневую функцию сжигания.
Количества резервов уже отражают записанное состояние пула. Дополнительная оценка комиссионного дохода поверх этих количеств может дважды учесть стоимость. Это руководство не рассчитывает выплату комиссий, будущую доходность или текущую ставку комиссии протокола.
Хранение через сервис создаёт ещё одну границу. Если LP-токены переданы в стейкинг или хранилище, прямой balanceOf кошелька может быть нулевым, хотя сервис учитывает ваше право требования. Проверьте известный депозит и собственный учёт сервиса. Не приписывайте аккаунту весь LP-баланс сервиса и не применяйте простой расчёт кошелька к токену-квитанции хранилища без правил его преобразования.
Сохраните запись для повторной проверки
Эти шаги основаны на публичной документации и исходном коде, изученных 28 октября 2026 года. Для статьи их не проверяли на действующем кошельке или пуле.
- Проверьте позицию. Запишите сеть, пару, фабрику, аккаунт и адреса обоих базовых токенов по доверенным данным протокола.
- Установите, где находятся LP-токены. Отличайте прямое владение кошелька от записей стейкинга, хранилища или другого хранения через сервис.
- Соберите согласованный снимок. Сохраните LP-баланс, выпущенное количество LP, оба резерва, соответствие токенам и десятичные масштабы вместе с блоком или временем наблюдений.
- Считайте только при пригодных данных. Разделите величины в одинаковых единицах LP, затем примените долю к обоим резервам отдельно. Сохраняйте достаточную точность; не округляйте долю до нуля перед умножением.
- Подпишите результат и один раз сверьте учёт. Отметьте оценку по резервам для учёта, сохраните примечания о хранении и недостающих данных и проверьте, не представляет ли другая строка портфеля ту же позицию.
Для этих публичных запросов не нужны подпись кошелька, разрешение на расходование или фраза восстановления. Запрос на перемещение средств выходит за рамки процедуры. Полезный результат получен, когда вы можете объяснить, какой парой владеете, что представляют её количества резервов и почему снимок отличается от суммы вывода. Оставляйте неустановленные поля неизвестными, не превращайте пробел отображения в точный баланс.
Частые вопросы
Означает ли 1 LP-токен по 1 токену с каждой стороны пула?
Нет. LP-токен представляет пропорциональную долю в конкретной паре. Его количество нужно сопоставить с общим выпуском LP этой пары и количествами резервов на один и тот же момент.
Даёт ли деление моего LP-баланса на общий выпуск точную сумму вывода?
Нет. Это доля на момент снимка для учёта. Фактическое сжигание использует балансы токенов и может изменить выпуск за счёт выпуска LP для комиссии протокола. Изменение состояния, целочисленное округление и поведение токенов также влияют на то, что получит адресат.
Доказывает ли нулевой LP-баланс в кошельке отсутствие позиции?
Нет. Вы могли передать LP-токены в контракт стейкинга или хранения. Проверьте записи этого сервиса и свой известный депозит, прежде чем определять своё право требования. Неудачный запрос баланса означает неизвестное значение, а не ноль.