Сравниваются два портфеля при одной и той же цене
Представьте, что в начальный момент вы внесли равную стоимость токена A и токена B. Для честного сравнения запишите исходные количества. Позже возьмите одну внешнюю цену и оцените по ней: текущие amounts внутри LP-позиции, а рядом — те же исходные amounts как будто они всё время лежали в кошельке. IL — разница LP versus hold, делённая на стоимость hold.
| Компонент | Как считать | Чего он не показывает |
|---|---|---|
| Divergence / impermanent loss | LP tokens versus исходные quantities при одной цене | Заработанные fees, incentives и gas |
| Earned fees | Фактически начисленные и доступные комиссии в обоих токенах | IL, стоимость ребалансировки и будущий объём |
| Net result | LP value + только неучтённые отдельно fees + incentives − gas − hold benchmark | В v2 fees обычно уже увеличивают reserves/LP share; в v3/v4 collected и uncollected amounts считают по отдельной модели |
- Компонент
- Divergence / impermanent loss
- Как считать
- LP tokens versus исходные quantities при одной цене
- Чего он не показывает
- Заработанные fees, incentives и gas
- Компонент
- Earned fees
- Как считать
- Фактически начисленные и доступные комиссии в обоих токенах
- Чего он не показывает
- IL, стоимость ребалансировки и будущий объём
- Компонент
- Net result
- Как считать
- LP value + только неучтённые отдельно fees + incentives − gas − hold benchmark
- Чего он не показывает
- В v2 fees обычно уже увеличивают reserves/LP share; в v3/v4 collected и uncollected amounts считают по отдельной модели
AMM меняет состав позиции через сделки арбитражёров
В full-range constant-product pool резервы следуют инварианту x × y = k с поправкой на fees. Когда внешняя относительная цена меняется, арбитражные сделки двигают pool price к рынку: одного токена в резервах становится больше, другого меньше. Доля LP следует за резервами. Поэтому поставщик не продолжает держать исходное количество каждого актива.
Для упрощённой full-range позиции, внесённой равными стоимостями и без учёта fees, gas и incentives, отношение стоимости LP к hold равно 2 × √r / (1 + r), где r — новая относительная цена, делённая на начальную. Impermanent loss равен этому отношению минус единица. Формула симметрична: удвоение и уменьшение относительной цены вдвое дают одинаковое процентное отставание от hold.
| Изменение относительной цены r | LP / hold | Impermanent loss |
|---|---|---|
| 1,00× | 100,00% | 0,00% |
| 1,25× | 99,38% | −0,62% |
| 2,00× или 0,50× | 94,28% | −5,72% |
| 4,00× или 0,25× | 80,00% | −20,00% |
- Изменение относительной цены r
- 1,00×
- LP / hold
- 100,00%
- Impermanent loss
- 0,00%
- Изменение относительной цены r
- 1,25×
- LP / hold
- 99,38%
- Impermanent loss
- −0,62%
- Изменение относительной цены r
- 2,00× или 0,50×
- LP / hold
- 94,28%
- Impermanent loss
- −5,72%
- Изменение относительной цены r
- 4,00× или 0,25×
- LP / hold
- 80,00%
- Impermanent loss
- −20,00%

Комиссии добавляются после расчёта, а не отменяют механизм
LP получает долю fee только от swaps, которые прошли через активную ликвидность позиции. Будущий объём неизвестен, fee tier может делиться с protocol, а отображаемая оценка uncollected fees зависит от текущих цен. Поэтому фраза «fees покрывают IL» проверяется ретроспективно: накопленные amounts оцениваются в той же валюте и в тот же момент, что оба сравниваемых портфеля.
| Строка | Какие данные нужны | Где ошибаются |
|---|---|---|
| Исходный hold | Начальные amount0 и amount1 | Подменяют quantities их старой долларовой суммой |
| Текущая LP-позиция | Текущие amount0 и amount1 | Смотрят только общий fiat estimate интерфейса |
| Fees | Для v2 — fee effect уже в reserves/LP share; для v3/v4 — отдельно collected и uncollected amounts | Дважды добавляют fees, уже вошедшие в стоимость позиции |
| Incentives | Фактически полученные токены и условия | Считают рекламный APR фактическим результатом |
| Network costs | Add, collect, remove и rebalance transactions | Игнорируют gas нескольких операций |
- Строка
- Исходный hold
- Какие данные нужны
- Начальные amount0 и amount1
- Где ошибаются
- Подменяют quantities их старой долларовой суммой
- Строка
- Текущая LP-позиция
- Какие данные нужны
- Текущие amount0 и amount1
- Где ошибаются
- Смотрят только общий fiat estimate интерфейса
- Строка
- Fees
- Какие данные нужны
- Для v2 — fee effect уже в reserves/LP share; для v3/v4 — отдельно collected и uncollected amounts
- Где ошибаются
- Дважды добавляют fees, уже вошедшие в стоимость позиции
- Строка
- Incentives
- Какие данные нужны
- Фактически полученные токены и условия
- Где ошибаются
- Считают рекламный APR фактическим результатом
- Строка
- Network costs
- Какие данные нужны
- Add, collect, remove и rebalance transactions
- Где ошибаются
- Игнорируют gas нескольких операций
LP fee — плата за предоставление market-making inventory, а не staking reward. Если продукт называет любую блокировку токенов «стейкингом», сначала установите, получили ли вы долю пула и меняется ли состав активов от swaps.
Concentrated liquidity добавляет границы и односторонний исход
В Uniswap v3 и v4 LP задаёт price range. Внутри диапазона позиция активна, её token ratio меняется и она может получать LP fees. Когда цена пересекает одну из границ, позиция становится полностью состоящей из одного токена. Это не liquidation: долг не закрывается и collateral не продаётся принудительно. Но позиция перестаёт участвовать в swaps и не получает LP fee, пока цена не вернётся в range.
| Состояние | Состав | Fees | Решение владельца |
|---|---|---|---|
| Внутри range | Оба токена в меняющейся пропорции | Начисляются от использующей позицию активности | Наблюдать composition и net result |
| Ниже нижней границы | Один из токенов пары | Не начисляются, пока range не активен | Оставить, remove или создать новую позицию |
| Выше верхней границы | Другой токен пары | Не начисляются, пока range не активен | Оставить, remove или создать новую позицию |
- Состояние
- Внутри range
- Состав
- Оба токена в меняющейся пропорции
- Fees
- Начисляются от использующей позицию активности
- Решение владельца
- Наблюдать composition и net result
- Состояние
- Ниже нижней границы
- Состав
- Один из токенов пары
- Fees
- Не начисляются, пока range не активен
- Решение владельца
- Оставить, remove или создать новую позицию
- Состояние
- Выше верхней границы
- Состав
- Другой токен пары
- Fees
- Не начисляются, пока range не активен
- Решение владельца
- Оставить, remove или создать новую позицию
Сначала восстановите фактическую позицию
Данные для воспроизводимого расчёта
- 1Идентифицируйте pool
Запишите chain, protocol version, token0, token1, полные contract addresses, fee tier и position identifier. Один ticker недостаточен.
- 2Восстановите начальные quantities
Используйте on-chain mint/add-liquidity transaction и receipt, а не память о внесённой долларовой сумме.
- 3Зафиксируйте одну valuation timestamp
Оцените hold, current liquidity и fees по одной паре цен и в один момент. Смешение часовых снимков искажает разницу.
- 4Отделите claimed и unclaimed
Соберите уже выведенные fee transactions и текущие claimable amounts, исключив двойной счёт.
- 5Вычтите фактические расходы
Добавьте network fees и другие явно подтверждённые costs управления, но не выдумывайте цену будущего rebalance.
Проверка контракта и approvals идёт отдельно от экономики. Даже верный IL-расчёт не подтверждает, что token contract настоящий или что старому router всё ещё нужно право списания.
Если результат оказался неожиданным, не добавляйте ликвидность вслепую
Разделите возможные причины
- relative price изменилась, и AMM закономерно поменял token composition;
- concentrated position вышла из range и стала single-sided;
- интерфейс не показывает uncollected fees или оценивает токен по ненадёжной цене;
- выбраны другой pool, fee tier, chain или token contract с похожим ticker;
- часть liquidity уже removed, fees claimed или позиция transferred;
- контракт, токен или frontend ведут себя не по ожидаемой модели.
Перед collect, remove или migration прочитайте каждое действие кошелька: approval, permit, подпись position manager и сам вызов могут быть разными запросами. Скриншот предполагаемой доходности не заменяет проверку calldata и contract address.
Хороший итог расчёта помещается в одну сверяемую строку: «на эту timestamp hold стоил X, текущие tokens позиции — Y, fees и incentives — Z, подтверждённые costs — C, поэтому net difference равна Y + Z − C − X». Без исходных quantities, адресов pool и единой цены честный IL посчитать нельзя.
Источники
Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.
- Uniswap Docs — How Uniswap works Uniswap · Проверено 18 августа 2026 г. в 22:30 GMT+5
- Uniswap Docs — Concentrated liquidity Uniswap · Проверено 18 августа 2026 г. в 22:30 GMT+5
- Uniswap Labs — What is Impermanent Loss? Uniswap Labs · Проверено 18 августа 2026 г. в 22:30 GMT+5
- Uniswap Labs — Out-of-range liquidity Uniswap Labs · Проверено 18 августа 2026 г. в 22:30 GMT+5
- Uniswap Labs — Risks of providing liquidity Uniswap Labs · Проверено 18 августа 2026 г. в 22:30 GMT+5
- Uniswap Developers — Understanding Returns Uniswap · Проверено 18 августа 2026 г. в 22:58 GMT+5
