Price impact влияет на исходную котировку вашей сделки, slippage описывает отклонение от неё при исполнении, а tolerance задаёт допустимую границу ухудшения. Допуск не является комиссией: установка 0,5% не означает, что эти 0,5% обязательно спишут. Он также не ограничивает все расходы обмена. Начните с ожидаемого количества токенов и показанного minimum received — минимального выхода, затем разберите комиссии. Uniswap: price impact, допуск проскальзывания.
Ниже рассматривается обмен с фиксированным входом, exact input: вы задаёте, сколько отдаёте, и оцениваете выход. При фиксированном выходе, exact output, ограничивается необходимый вход; расчёт минимума из этого примера к такой операции не относится.
Четыре величины, которые нельзя складывать автоматически
| Величина | Что означает | Когда её читать |
|---|---|---|
| Price impact, влияние сделки на цену | Изменение цены из-за размера вашей собственной сделки относительно доступной ликвидности | В котировке для выбранной суммы и маршрута |
| Фактическое slippage, проскальзывание | Отклонение полученного результата от выбранной котировки | После исполнения, сравнивая одинаковые величины |
| Slippage tolerance, допуск | Разрешённую границу неблагоприятного отклонения | До подписи, вместе с минимумом выхода |
| Комиссии | Явные платежи за обмен, интерфейс или сетевую обработку | В деталях котировки и подтверждении; важно, что уже учтено в выходе |
Price impact зависит от размера сделки и ликвидности на её пути. Общий TVL протокола или суточный оборот токена не говорят, сколько вы получите за конкретную сумму. Нужна котировка этой суммы по конкретному маршруту. Объяснение Uniswap.
Если исходный выход уже неприемлем, увеличение допуска не добавит ликвидности и не улучшит эту цену. Можно запросить новую котировку меньшей суммы или другого доступного маршрута и сравнить результат с расходами. Разбить обмен на несколько частей — не гарантированная экономия: появятся дополнительные операции, а состояние рынка может измениться.
Что раскрыть перед подтверждением
Зафиксируйте сеть, точные токены, сумму входа и ожидаемый выход. Затем раскройте детали маршрута, влияние сделки, комиссии и минимум. В документации веб-приложения Uniswap для этого перечислены отдельные поля Fee, Network cost, Order routing, Price impact и Max slippage. Информация у Max slippage показывает минимальный выход. В других интерфейсах названия и состав полей могут отличаться. Поля экрана Swap.
У ожидаемого выхода нужно установить ещё одну характеристику: это сумма до удержания комиссии или уже после? Например, документация Jupiter различает выход маршрута до удержания fee и итоговые токены кошелька после неё. Их сравнение без поправки создаст ложное «проскальзывание». Там же разделены получение котировки и наличие готовой транзакции: одно только показанное число не доказывает, что обмен можно исполнить. Jupiter: Order & Execute.
Практический результат этой проверки — не набор процентов, а понятное условие: «отдаю столько-то, ожидаю столько-то, подписываю такой-то минимум, отдельно плачу такие-то расходы».
Условный обмен: 1 000 USDC → 490 TOKEN
Это учебные входы, не текущая котировка Uniswap или Jupiter. Для примера примем следующие условия:
- Фиксированный вход — 1 000 USDC; ожидаемый выход Q = 490 TOKEN уже учитывает price impact и все удерживаемые торговые и интерфейсные комиссии.
- Допуск s = 0,5% = 0,005, или 50 базисных пунктов, определён именно как максимальное уменьшение выходного количества относительно Q.
- Сетевой расход оплачивается отдельно и эквивалентен 3 USDC по принятому курсу. Дополнительные approval, создание аккаунта и bridge не нужны; особой комиссии самого токена нет.
При таком определении допуска минимальный выход равен:
Q × (1 − s) = 490 × 0,995 = 487,55 TOKEN.
Это граница, а не прогноз результата:
| Возможный результат | Сравнение с минимумом | Вывод |
|---|---|---|
| 489 TOKEN | Выше 487,55 | Этот порог допускает результат; остальные условия ещё должны выполняться |
| 487 TOKEN | Ниже 487,55 | При фактическом применении данного порога обмен не должен завершиться с таким выходом |
Предположим, обмен успешно завершился и вы получили 489 TOKEN. Неблагоприятное отклонение по выходному количеству составило:
(490 − 489) ÷ 490 × 100% ≈ 0,20408%.
Допуск был 0,5%, а фактическое ухудшение — около 0,20408%. Допуск не списывается автоматически целиком.
Если при неизменном Q расширить именно этот допуск до 2%, получится:
490 × (1 − 0,02) = 480,20 TOKEN.
Вы разрешаете меньший выход. Это не новая комиссия и не обещание успешной сделки. В настоящем интерфейсе после изменения настройки могут измениться котировка или маршрут — их нужно прочитать заново.
Формула выше не универсальна. Сервисы могут иначе определять процент и округлять токены. Например, опубликованный код Uniswap v3 SDK для соответствующего расчёта exact input использует деление Q на (1 + s), а не умножение на (1 − s). Это пример различия соглашений, а не описание текущего экрана Uniswap. В реальной операции ориентируйтесь на minimum received в финальном подтверждении и условия подписываемой транзакции. Официальный код minimumAmountOut.
Сколько стоит полученный TOKEN
В котировке средняя цена без отдельного сетевого расхода была:
1 000 ÷ 490 ≈ 2,04082 USDC за TOKEN.
При получении 489 TOKEN и сетевом расходе, эквивалентном 3 USDC, средние затраты на полученный токен составят:
(1 000 + 3) ÷ 489 ≈ 2,05112 USDC за TOKEN.
Если выход равен минимуму 487,55 TOKEN, при том же сетевом расходе результат будет 1 003 ÷ 487,55 ≈ 2,05722 USDC за TOKEN. Поэтому допуск 0,5% не означает, что все издержки относительно справочной цены ограничены 0,5%.
В этих расчётах нельзя ещё раз вычитать торговую комиссию и price impact: по условию они уже заложены в 490 TOKEN. В реальном обмене отдельно прибавляют только расходы, которые ещё не учтены в используемых суммах. Если требуется approval, создание аккаунта, перевод через мост или комиссия токена, условия примера больше не полны — нужны фактические затраты этих операций. Сетевая обработка оплачивается отдельно от количества токенов в обычной котировке обмена. Uniswap: network cost.
Есть и другая ловушка. Пусть справочный экран показывает цену 2 USDC за TOKEN: по ней 1 000 USDC соответствуют 500 TOKEN. Разница между 500 и котировкой 490 равна 2% по количеству. Назвать все эти 2% чистым price impact нельзя: в нашей котировке уже есть комиссии, а справочная цена может относиться к другому источнику или моменту. Сначала установите, что именно сравнивается.
Если обмен не прошёл
Перед повторной попыткой проверьте статус предыдущей: не отправлена, ожидает подтверждения, завершилась успешно или завершилась с ошибкой. Сам факт отказа не устанавливает его причину. Документация Jupiter отдельно рассматривает ошибки допуска, нехватку средств и проблемы маршрута; числовые коды зависят от версии и интерфейса. Разбор ошибок Jupiter.
| Наблюдаемый симптом | Что проверить | Следующее действие |
|---|---|---|
| Slippage exceeded / too little received | Статус попытки, новую котировку, новый минимум и маршрут | Обновить котировку. Если новый минимум неприемлем, не подтверждать обмен |
| Insufficient funds / недостаточно средств | Баланс входного токена и средства для сетевой оплаты и обязательных отдельных операций | Исправить конкретную нехватку или уменьшить сумму; повышение допуска её не устраняет |
| Котировка истекла, нет маршрута или не подготовлена транзакция | Срок котировки, выбранную сеть, пару и доступность маршрута | Запросить новую котировку; если обмен по-прежнему нельзя подготовить, остановиться |
Малый допуск действительно может стать причиной отказа, а большой разрешает получить меньше токенов. Но универсальной настройки для всех сделок из этого не следует. После любой правки настроек проверяйте обновившиеся условия, а не повторяйте подпись вслепую. Uniswap: настройки slippage.
Если транзакция попала в сеть и завершилась с ошибкой, gas может быть потрачен. Отказ кошелька или проверки до отправки — другой случай: нельзя считать любую неудачную попытку оплаченной сетевой транзакцией. Uniswap: сетевая стоимость.
Где полезен монитор Yieldo
Монитор арбитража Yieldo помогает сопоставить котировки бирж и увидеть ограничения глубины и маршрута. Его оценка доступного объёма в USDT опирается на меньший из объёмов у лучших цен покупки и продажи; при отсутствии необходимых размеров значение неизвестно. Это не весь стакан, не максимальная «безопасная» сумма и не расчёт Площадка обмена, где сделки со средствами выполняют смарт-контракты. Обычно к ней подключают кошелёк и подтверждают операции его подписью.-свопа заданного размера. Снимок также может отставать от рынка. Для minimum received вашего обмена нужна котировка самого обмена, а не спред монитора.
После успешного свопа откройте подтверждённую транзакцию и сверьте фактически полученные токены с последней принятой котировкой. Сравнивайте выход до комиссий с выходом до комиссий либо итог кошелька с сопоставимым итогом; отдельно учтите внешние расходы. Так станет видно, что изменилось между ожиданием и исполнением, не смешивая комиссию, влияние размера сделки и разрешённый допуск.