Swap в криптовалюте — это обмен одного токена на другой по заранее рассчитанному маршруту исполнения. В self-custody DeFi такой обмен обычно происходит не через внутренний баланс биржи, а через смарт-контракт, пул ликвидности, агрегатор или иной механизм, который получает входной актив и возвращает выходной. Запрос swap что это в криптовалюте кажется простым, но для реальной сделки важнее другой вопрос: почему сумма в кошельке после подтверждения может отличаться от грубой оценки по рыночной цене.

Ответ состоит из нескольких независимых слоёв. Quote показывает расчётный output на момент получения котировки. Price impact отражает то, как собственный размер сделки влияет на доступную ликвидность. Slippage описывает отклонение исполнения от ожидаемого результата из-за изменения состояния рынка между расчётом и исполнением. Fee — это отдельные комиссии протокола, пула, интерфейса, токена или маршрута. Network cost оплачивает работу блокчейна и не является торговой комиссией DEX. Если сложить эти величины без понимания того, что уже учтено в quote, легко дважды посчитать один и тот же расход.

Эта статья разбирает именно экономику обмена: от reference price и маршрута до minimum received и фактически полученного количества токенов. Устройство DEX как класса рынков вынесено в отдельный материал, а подключение кошелька, approval и жизненный цикл транзакции уже рассматриваются отдельно. Здесь они упоминаются только там, где меняют стоимость или риск исполнения. Для узких терминов полезно сверяться с материалами OneMagic о price impact и проскальзывании при обмене криптовалюты.

Хороший swap — это не обмен с самой красивой котировкой на экране, а сделка, где заранее понятны route, минимум получения, все виды комиссий, сетевой расход и причины возможного отклонения исполнения.

Что такое swap в криптовалюте и что именно меняется при обмене

Начинать разбор swap полезно не с кнопки «обменять», а с определения того, какая экономическая операция должна произойти. Пользователь отдаёт определённое количество input token и хочет получить output token. Между этими двумя точками может находиться один пул, несколько пулов, промежуточные токены, агрегатор, RFQ/filler-модель или комбинация источников ликвидности. Поэтому одно слово swap не описывает конкретный механизм исполнения.

Swap — не перевод и не bridge

При обычном swap меняется экономический актив: например, USDC превращается в ETH или один токен проекта — в другой. При обычном переводе актив не меняется, меняется только адрес владельца. Bridge решает ещё одну задачу — переносит или представляет стоимость между сетями. Интерфейс может визуально объединять эти действия, но риск и себестоимость у них разные. Если маршрут требует cross-chain шага, к торговым расходам добавляются bridge fee, время финализации, риск моста и возможная смена представления токена. Поэтому перед расчётом результата нужно установить, действительно ли пользователь совершает swap в одной сети или сложный маршрут, где обмен — только одна из стадий.

Input amount и output amount отвечают на разные задачи

Сделка может быть задана как exact input: пользователь точно знает, сколько входного токена готов отдать, а выход рассчитывается рынком. Альтернативный вариант — exact output: пользователь фиксирует желаемое количество на выходе, а система определяет максимально допустимый input. Для оценки slippage это важно, потому что защитное условие формулируется по-разному. В exact-input маршруте обычно контролируют минимально приемлемый output; в exact-output — максимум входного актива. Нельзя переносить формулу одного режима на другой без проверки того, как конкретный router кодирует ограничения.

Reference price нужен как контрольная точка, а не как обещание исполнения

Чтобы понять качество swap, нужна базовая цена для сравнения. Ею может быть mid-price ликвидного рынка, oracle/reference price, средняя цена нескольких площадок или цена малого тестового объёма. Но reference price — это benchmark, а не гарантированная цена, доступная для вашего размера. Большой swap способен сам сдвинуть AMM-кривую, а на фрагментированной ликвидности разные пулы дают разные локальные цены. Поэтому фраза «токен стоит 100» недостаточна: нужно уточнить, для какого рынка, времени и объёма эта цена справедлива.

Quote — это снимок состояния, а не резервирование цены

Котировка формируется на конкретном состоянии блокчейна и доступной ликвидности. Пока пользователь читает интерфейс, проверяет маршрут и подписывает транзакцию, в пул могут прийти другие сделки, арбитражёры могут изменить резервы, а сеть — обработать десятки блоков. Если quote не является специально гарантированным off-chain предложением с условиями исполнения, он не резервирует цену. Это объясняет, почему хороший интерфейс показывает не только expected output, но и защитный параметр minimum received или аналогичный предел исполнения.

Execution price лучше считать по фактическим суммам

После завершения операции среднюю цену исполнения нужно считать из реально списанного input и реально полученного output, а не из старого quote. Если 1 000 USDC привели к получению 0,392 ETH, фактический курс сделки — отношение этих величин с учётом того, в каких единицах пользователь хочет сравнивать результат. Если часть комиссий списывается отдельным активом, например gas в ETH, её нельзя молча прятать в exchange rate: для экономического PnL полезно показывать и цену обмена, и отдельный сетевой расход.

Токеновый номинал не равен экономической стоимости

Некоторые токены имеют transfer fee, rebasing, reflection, нестандартные decimals или ограничения на продажу. В таких случаях простой расчёт «отправил X, получил Y» может не совпадать с тем, что ожидал router. Fee-on-transfer токен способен уменьшить количество, реально дошедшее до следующего контракта. Мошеннический контракт может вообще разрешать покупку, но блокировать продажу. Поэтому для неизвестного актива сначала проверяют контракт и ликвидность по отдельному чек-листу проверки токена перед покупкой, а уже затем анализируют красивую DEX-котировку.

Пара токенов не гарантирует единственный рынок

ETH/USDC может существовать одновременно в нескольких fee tiers, версиях протокола, сетях и DEX. Даже внутри одного протокола отдельные пулы имеют разную активную ликвидность. Поэтому выражение «курс на DEX» слишком грубое. Реальная сделка проходит по конкретному liquidity source или набору источников. Агрегатор может увидеть, что прямой pool хуже маршрута через промежуточный актив, и построить multi-hop путь. Следовательно, сравнивать нужно не названия DEX, а net output для одинакового input, времени и риска.

Экономический результат начинается с полной спецификации сделки

До подписи полезно записать пять вещей: сеть, точные contract addresses, input amount, желаемый output asset и максимально приемлемую стоимость исполнения. Это кажется избыточным только до первой ошибки с токеном-клоном или сетью. Криптовалютный swap программируем: смарт-контракт выполняет то, что закодировано, а не то, что пользователь «имел в виду». Поэтому любое сравнение fee и slippage бессмысленно, если в расчёте перепутаны активы или сети.

Понятие Что фиксирует Главная ошибка
Reference price Внешнюю точку сравнения Считать её доступной ценой для любого объёма
Quote Ожидаемый результат сейчас Считать котировку гарантированной до включения в блок
Execution price Фактический курс сделки Считать по старому preview
Minimum output Защитный нижний предел Путать его с прогнозом фактического результата
Network cost Стоимость обработки транзакции Называть её LP fee или slippage

Как формируется quote и почему route влияет на итоговый swap

После определения input и output следующий вопрос — как система получила число в поле «вы получите». Современный router не обязан отправлять весь объём в один пул. Он может сравнивать direct route, multi-hop, split routing и альтернативные способы исполнения. Качественный quote — результат поиска маршрута и симуляции, а не простое умножение на последнюю цену.

Прямой route — самый понятный, но не всегда самый выгодный

В прямом маршруте Token A обменивается на Token B через один liquidity source. Преимущество — меньше вызовов и проще анализировать, откуда берётся цена. Недостаток — один пул может иметь недостаточную глубину. Если 100 USDC меняются выгодно, это не означает, что 100 000 USDC должны идти туда же. Для крупного размера собственный price impact может перевесить экономию на gas. Поэтому прямота маршрута — характеристика сложности, но не автоматический критерий качества.

Multi-hop использует промежуточные активы

Маршрут A → WETH → B может давать лучший результат, чем прямой A → B, если промежуточные рынки значительно глубже. Каждый hop, однако, добавляет новый liquidity source и собственную комиссию. Итог зависит от того, насколько выигрыш в цене превышает дополнительные fee и network cost. Пользователь должен смотреть на конечный output, а не радоваться тому, что каждый отдельный pool имеет низкую процентную комиссию. Несколько маленьких fee могут оказаться оправданными, если они позволяют избежать большого impact.

Split routing распределяет объём между несколькими источниками

Если один pool начинает заметно двигать цену после первых единиц объёма, router может разделить swap на две или больше частей. Это уменьшает marginal price impact, потому что каждая часть использует отдельную ликвидность. Но split route усложняет транзакцию и может увеличить вычислительный расход. Поэтому оптимизатор должен сравнивать не «лучшую цену пула», а net output после trading fees и network cost. На маленькой сделке простой маршрут может быть лучше; на большой — более сложный.

Маршрут оценивают по net output, а не по числу hops

Частая ошибка — считать любой дополнительный hop плохим. На практике три перехода через глубокие рынки могут дать больше выходного токена, чем один неглубокий пул. Обратная ошибка — доверять сложному маршруту только потому, что агрегатор назвал его оптимальным. Проверять нужно конечную сумму, price impact, общие fee, network cost и наличие необычных токенов в середине пути. Для самостоятельного анализа полезно сравнить несколько размеров input и увидеть, как меняется output.

Quote может устареть за время подписи

Router ищет путь на определённом состоянии рынка. Если пользователь держит окно подтверждения открытым минуту, прежний оптимальный маршрут может потерять смысл. В некоторых интерфейсах quote обновляется автоматически, в других пользователь должен запросить его заново. Чем волатильнее актив и меньше ликвидность, тем быстрее меняется результат. Поэтому перед подписью стоит сверять свежесть preview и не относиться к старой котировке как к обязательству протокола.

Simulation помогает отсеять заведомо плохие пути

Современные маршрутизаторы могут симулировать выполнение до отправки транзакции. Симуляция проверяет, не приводит ли текущий route к revert и какой output ожидается при текущем состоянии. Но она не знает будущего: между simulation и включением транзакции в блок состояние снова может измениться. Поэтому simulation снижает технический риск, но не отменяет slippage guard. Это ещё один пример того, почему слои защиты нужно различать, а не называть все одним словом «комиссия».

Агрегатор и сам DEX — не одно и то же

Агрегатор может искать ликвидность сразу в нескольких протоколах, тогда как отдельный DEX может маршрутизировать только внутри своего набора pools и execution-моделей. Для пользователя оба интерфейса выглядят как форма Token A → Token B. Однако набор зависимостей, contracts и fee может отличаться. Если маршрут проходит через несколько протоколов, анализ безопасности становится шире. Общую архитектуру таких площадок разумно рассматривать отдельно, а в конкретном swap фиксировать фактический route, который предлагается сейчас.

Роутер оптимизирует конкретную функцию, а не абстрактную «выгодность»

Алгоритм может минимизировать стоимость, максимизировать output, учитывать вероятность исполнения или ограничивать сложность маршрута. Поэтому два агрегатора способны честно предложить разные пути на одном рынке. Пользователю важно понимать, что «лучший route» всегда определяется набором допущений: размером сделки, gas estimate, доступными pools и правилами поиска. Сравнение должно проводиться на одинаковом input и в близкий момент времени.

Маршрут Плюс Минус
Direct Простая структура и меньше зависимостей Может иметь высокий impact
Multi-hop Доступ к более глубокой промежуточной ликвидности Дополнительные fee и contracts
Split Снижает marginal impact крупного объёма Сложнее и потенциально дороже по gas
Aggregator route Сравнивает несколько рынков Больше протокольных зависимостей

Price impact: как собственная сделка меняет цену

Price impact — это ухудшение цены, которое создаёт сама сделка относительно доступной ликвидности. Это не то же самое, что slippage во времени. Если состояние пула вообще не меняется между quote и исполнением, крупный swap всё равно может иметь значительный price impact, потому что токены забираются по кривой, а не по одной неизменной цене.

Почему большой ордер двигает AMM

В простом constant-product AMM резервы связаны инвариантом. Когда пользователь добавляет input token и забирает output token, соотношение резервов меняется, а последующие единицы output становятся дороже. Поэтому средняя цена большого swap хуже начальной marginal price. На концентрированной ликвидности механика сложнее, но принцип тот же: доступная ликвидность около текущей цены конечна. Чем больше доля вашей сделки относительно активной глубины, тем сильнее собственное воздействие.

Price impact существует даже при мгновенном исполнении

Иногда price impact ошибочно объясняют задержкой между кликом и блоком. Это slippage-механика. Impact возникает даже в идеальном мире без задержки: сама покупка меняет состояние рынка. Поэтому уменьшение block time не устраняет impact. Уменьшить его можно меньшим размером, более глубокой ликвидностью, split routing или выбором рынка с другой кривой. Разделение понятий важно для диагностики: если проблема — размер, повышение slippage tolerance её не делает экономически выгодной.

Локальная ликвидность важнее красивого TVL

Общий TVL протокола не говорит, сколько ликвидности доступно именно вашей паре рядом с текущей ценой. На concentrated-liquidity AMM значительная часть капитала может находиться вне активного диапазона и не участвовать в текущем обмене. Поэтому анализ конкретного pool важнее маркетингового числа на главной странице. Узкий материал OneMagic о пуле ликвидности помогает отличить общий капитал от ликвидности, которая реально обслуживает выбранный swap.

Размер сделки надо тестировать ступенчато

Практичный метод — получить quotes для нескольких размеров: например 100, 500, 1 000 и 5 000 единиц input. Если output на единицу быстро ухудшается, рынок чувствителен к размеру. Такой тест не требует сложной модели кривой и сразу показывает, где начинается нелинейность. Для крупной операции это важнее, чем один процент impact в интерфейсе: разные маршрутизаторы могут считать reference price немного по-разному, а ступенчатое сравнение показывает экономический эффект напрямую.

Деление swap на части не всегда экономит деньги

Если разбить один большой swap на несколько последовательных транзакций в том же пуле и никто не меняет состояние между ними, суммарный impact принципиально не исчезает: пользователь всё равно проходит ту же кривую ликвидности. Дополнительно он платит network cost несколько раз. Деление помогает, если между сделками появляется новая ликвидность, арбитраж возвращает цену к внешнему рынку или части отправляются в разные sources. Поэтому механическое «разбить ордер» не является универсальным лекарством.

Price impact и market depth — две стороны одной задачи

На order-book рынке depth описывают количеством заявок около цены. В AMM depth проявляется через форму кривой и активную liquidity. Экономический вопрос один: сколько объёма можно исполнить до заметного ухудшения средней цены. Поэтому сравнивать CEX и DEX корректнее через executable output на конкретный размер, а не через последнюю цену. Это особенно важно для низколиквидных токенов, где последняя сделка могла быть маленькой и не репрезентативной.

Высокий impact может быть сигналом неправильного токена

Если известный ликвидный актив внезапно показывает двузначный impact на маленькой сумме, нужно остановиться и проверить contract address, сеть и route. Возможно, выбран токен-клон, редкая wrapped-версия или не тот pool. Повышать slippage в такой ситуации опасно: это маскирует проблему, а не решает её. Проверка официального сайта DEX и контракта должна предшествовать попыткам «заставить swap пройти».

Impact считается до сделки, но оценивается после неё

До подписи интерфейс даёт модельное значение price impact. После исполнения пользователь может сравнить фактический effective price с reference price и увидеть совокупный результат. Но нельзя приписывать всю разницу impact: часть могла возникнуть из-за slippage, token fee или иного состояния route. Поэтому хороший журнал сделки хранит quote, reference, minimum output, фактический output и отдельные fees. Тогда причины расхождения можно разбирать, а не угадывать.

Ситуация Что вероятнее всего ухудшает цену Что проверять
Маленький swap, большой impact Слабая/не та ликвидность Token contract, pool, route
Impact растёт с размером Ограниченная глубина Quotes на нескольких размерах
Разные DEX дают разный impact Разная активная liquidity Net output, а не название площадки
Impact низкий, итог хуже quote Не impact, а execution/slippage/fee Tx result и minimum output

Slippage: почему фактический output может отличаться от quote

Slippage возникает, когда состояние рынка к моменту исполнения отличается от состояния, на котором строился quote. В on-chain swap между этими моментами есть подпись, broadcast, очередь транзакций и включение в блок. Защитный параметр slippage tolerance не создаёт цену и не является комиссией: он задаёт границу, за которой сделка должна считаться неприемлемой.

Slippage tolerance — это лимит, а не прогноз

Если пользователь разрешил 1% slippage, это не означает, что он обязательно потеряет 1%. При благоприятном или стабильном рынке исполнение может быть близким к quote. Tolerance сообщает контракту или execution-механизму, насколько плохое отклонение ещё допустимо. Слишком широкая граница увеличивает пространство для невыгодного исполнения; слишком узкая повышает вероятность revert. Поэтому выбирать tolerance нужно как риск-параметр, а не как способ «добавить комиссию, чтобы прошло».

Minimum received превращает tolerance в конкретное число

Для exact-input swap полезнее смотреть не абстрактный процент, а минимальное количество output token. В упрощённом примере, если quote обещает 500 токенов, а допустимое ухудшение — 0,5%, нижняя граница может быть близка к 497,5. Конкретный интерфейс может учитывать fee и route своим способом, поэтому формулу всегда сверяют с деталями сделки. Смысл остаётся одинаковым: если исполнение хуже установленного минимума, транзакция не должна завершить обмен на этих условиях.

Слишком низкий tolerance повышает долю неуспешных транзакций

На волатильной паре цена способна измениться за несколько блоков. Если tolerance почти нулевой, даже небольшое движение делает swap невалидным. В EVM-сетях выполненные вычисления могут потребовать gas даже при revert, поэтому серия «идеально защищённых» неуспешных транзакций тоже стоит денег. В такой ситуации нужно не просто расширять предел, а оценить волатильность, скорость сети и актуальность quote. Иногда разумнее дождаться спокойного режима или уменьшить размер.

Слишком высокий tolerance открывает ценовой коридор

Большой slippage limit означает, что пользователь заранее согласен на существенно худший output. Это особенно опасно в тонкой ликвидности и публичном mempool, где порядок транзакций может влиять на цену. Интерфейс может предупреждать о чрезмерном параметре, но ответственность за предел остаётся у пользователя. Если swap проходит только при очень широком tolerance, сначала проверяют token tax, route, ликвидность и возможность продажи, а не повышают число до тех пор, пока кнопка не перестанет выдавать ошибку.

Slippage бывает и положительным

Рынок может сдвинуться в пользу пользователя между quote и execution. В зависимости от механики протокола и типа ордера положительное изменение может частично достаться swapper. Поэтому термин slippage сам по себе не обязан означать убыток, хотя в риск-менеджменте обычно обсуждают неблагоприятное отклонение. Для анализа сделки важно сравнивать фактический output с ожидаемым, а не предполагать направление заранее.

Pending time увеличивает окно неопределённости

Чем дольше транзакция остаётся pending, тем больше времени у рынка изменить состояние. Низкая priority fee, перегруженная сеть или проблемы с sequencer способны увеличить задержку. Это не означает, что нужно всегда переплачивать за скорость: network cost тоже часть экономики сделки. Но пользователь должен видеть trade-off между стоимостью включения и риском устаревшего quote. Материал о pending-транзакции помогает отделить сетевую задержку от проблемы самого DEX.

Transaction deadline защищает от слишком старого намерения

Некоторые swap-механизмы включают deadline: после определённого времени сделка больше не должна исполняться. Это отдельная защита от slippage limit. Даже если цена формально укладывается в процент, пользователь может не хотеть, чтобы транзакция исполнялась через час после первоначального решения. Поэтому deadline ограничивает время жизни намерения, а minimum output — цену. Их нельзя считать взаимозаменяемыми.

Slippage надо измерять на фактическом execution

После подтверждения сделки можно вычислить realized slippage относительно сохранённого quote, но нужно использовать одинаковые единицы и учесть, что quote мог уже включать LP fee. Если сравнить фактический output с «голой» reference price, получится смесь impact, fee и slippage. Для чистого анализа сохраняют quote timestamp, expected output, route и tx hash. Именно поэтому проверка транзакции по TXID полезнее скриншота старого интерфейса.

Volatility и slippage связаны через время ожидания

На активе с широкими минутными колебаниями одно и то же время до inclusion создаёт больший диапазон возможных цен, чем на стабильной паре. Это не значит, что волатильный токен всегда требует огромного tolerance. Сначала сравнивают скорость включения, ликвидность и размер сделки. Иногда проблема решается более быстрым route или меньшим размером, а не расширением предела. Хорошая настройка зависит от конкретного рынка, а не от универсального «процента для всех DEX».

Slippage на stable pair может быть маленьким, но не нулевым

Даже пары активов, которые обычно торгуются близко по цене, могут отклоняться при depeg, дисбалансе резервов или резком оттоке ликвидности. Низкая историческая волатильность не является гарантией текущего исполнения. Поэтому для stablecoin swap также смотрят на свежий quote и minimum output. Особенно опасно автоматически считать 1 USDT, 1 USDC и 1 доллар эквивалентными во время стрессового рынка.

Slippage guard не защищает от неправильного token contract

Даже идеальный minimum output бесполезен, если пользователь выбрал токен-клон или контракт с вредной логикой. Slippage ограничивает цену внутри конкретной транзакции, но не проверяет качество актива. Это разные уровни безопасности. Поэтому token identity и sellability проверяются до настройки tolerance, а не после failed swap.

Параметр Что делает Чего не делает
Slippage tolerance Задаёт максимально допустимое неблагоприятное отклонение Не гарантирует фактическую цену
Minimum received Фиксирует нижнюю границу output Не предсказывает точный output
Deadline Ограничивает время исполнения Не ограничивает price impact сам по себе
Priority/network fee Влияет на вероятность/скорость включения Не делает market price стабильной

Fee в swap: какие комиссии существуют и как не посчитать их дважды

Слово fee в DEX-контексте неоднозначно. В одном swap могут одновременно существовать liquidity-provider fee, protocol fee, interface fee, network cost и fee, встроенная в сам токен. Часть из них уже отражена в quoted output, часть показывается отдельной строкой, а часть списывается другим активом. Поэтому «сложить все проценты» без понимания базы расчёта опасно.

LP fee оплачивает использование ликвидности

В AMM часть стоимости swap может направляться поставщикам ликвидности. Конкретная ставка зависит от протокола, пула или fee tier и не должна фиксироваться в универсальной статье как вечная цифра. Экономически важно другое: router учитывает trading fee при сравнении путей. Пул с более высокой fee может всё равно дать лучший net output, если его ликвидность глубже и impact ниже. Поэтому процент комиссии нельзя оценивать отдельно от качества цены.

Protocol fee — отдельный слой управления протоколом

Некоторые протоколы могут направлять часть fee в treasury или иным участникам согласно governance. Наличие и размер такого слоя меняются по версиям и решениям управления. Пользователю важно проверять актуальные параметры конкретного route. В аналитике лучше хранить то, что реально было включено в quoted output или показано деталями сделки, а не переносить устаревшую таблицу комиссий из обзора.

Interface fee принадлежит приложению, а не обязательно протоколу

Один и тот же open protocol можно вызвать через разные frontends. Интерфейс способен добавлять собственную плату за routing, convenience или иные услуги, даже если сам смарт-контракт протокола не берёт такой fee. Обратная ситуация тоже возможна: интерфейс не взимает плату, но pool/protocol fee остаётся. Поэтому пользователь должен различать protocol и frontend. Сравнение двух сайтов по одному протоколу имеет смысл только после просмотра полной детализации.

Network cost — не торговая комиссия

Gas или иной сетевой расход оплачивает обработку транзакции валидаторами или sequencer-инфраструктурой. Он может списываться нативным токеном и не зависеть прямо от суммы swap. Для маленькой сделки gas способен быть главным расходом; для крупной — почти незаметным в процентах. Нельзя включать его в LP fee, потому что он имеет другую природу и может возникнуть даже при failed transaction.

Approval может создать отдельный сетевой расход

Если ERC-20 токен ещё не разрешён нужному spender, перед swap может понадобиться approval. Это отдельная on-chain транзакция и отдельный network cost. В следующем swap approval может уже не потребоваться, пока allowance действует. Поэтому сравнение «стоимости первого и второго обмена» может давать разные цифры даже на одинаковом рынке. Разобрать саму permission-механику можно через отзыв разрешений токенов и материал о том, что именно подписывает кошелёк.

Token tax может находиться внутри контракта актива

Некоторые токены удерживают buy fee, sell fee или transfer fee. Такой расход не является комиссией DEX и может меняться по правилам контракта. Он способен ломать стандартные routers или требовать специальной поддержки. Если swap неожиданно требует огромный tolerance, одна из гипотез — token-level fee. Но это также может быть honeypot или другая вредоносная логика, поэтому увеличивать slippage без проверки контракта опасно.

Несколько hops создают несколько trading fees

Маршрут A → B → C может платить fee в каждом liquidity source. Тем не менее конечный результат может быть лучше прямого A → C, если промежуточные рынки глубже. Поэтому число комиссий не равно суммарной невыгодности. Router должен сравнить output after fees, impact и network cost. Пользователю полезно смотреть route details и net output, а не выбирать путь только по минимальному числу hops.

Double counting — одна из самых частых ошибок ручного расчёта

Если quote уже уменьшен на LP fee, а пользователь затем ещё раз вычитает этот процент из quoted output, он дважды учитывает один расход. Аналогично price impact может быть уже отражён в количестве токенов, которое показывает router. Правильный расчёт начинается с документации поля: это gross price, net quoted output или справочный показатель? Если значение непонятно, лучше строить экономику от фактических balances до и после сделки и отдельно добавлять расходы, которые списаны другим активом.

Fee tier нельзя оценивать без liquidity distribution

Пулы одной пары могут иметь разные fee tiers и совершенно разное распределение liquidity. Низкий fee tier не гарантирует лучшую цену, если активной ликвидности мало. Более высокий tier может оказаться дешевле по total cost благодаря меньшему impact. Поэтому профессиональное сравнение начинается с route quote на конкретный размер, а не с выбора минимального процента в названии пула.

Небольшая процентная fee может быть большой суммой

На крупном swap даже десятые доли процента превращаются в значимые деньги. Поэтому ручной контроль имеет смысл не только для экзотических токенов. Для большого ликвидного обмена стоит сравнивать несколько маршрутов, потому что экономия 0,05–0,10% может превышать весь дополнительный gas сложного route. На маленькой сделке ситуация обратная: сетевой расход может доминировать над торговой комиссией.

Комиссии следует приводить к одной базе

Если LP fee выражена в процентах input, interface fee удерживается из output, а gas списывается в ETH, прямое сложение чисел вводит в заблуждение. Для экономического сравнения все расходы приводят к одной валюте учёта и одному времени оценки. Тогда видно, сколько стоимости реально ушло на исполнение. При этом для аудита исходные единицы сохраняют отдельно, чтобы можно было восстановить расчёт.

Fee без результата всё равно может существовать

Failed swap может не списать input в обмен, но network cost за попытку останется. Approval, сделанный до неудачного swap, тоже уже был отдельной транзакцией. Поэтому стоимость процесса — это сумма всех фактически совершённых действий, а не только успешной финальной сделки. Для ботов и повторных попыток этот принцип особенно важен: автоматизация способна накопить расходы быстрее, чем пользователь заметит проблему.

Вид расхода Кому/за что Может быть уже в quote?
LP/trading fee Поставщикам ликвидности / пулу Часто да
Protocol fee Протоколу/treasury по правилам Зависит от реализации
Interface fee Frontend/приложению Может быть отдельной строкой или встроено
Network cost Валидаторам/sequencer сети Обычно отдельно
Token tax Логика токен-контракта Зависит от router и токена
Approval gas Сетевое исполнение permission Отдельная транзакция

Gas, approval и технические издержки swap

Даже если рыночная часть сделки идеальна, swap может оказаться дорогим или неуспешным из-за сетевой механики. Network cost, approval, nonce, deadline и revert не определяют цену токена, но напрямую влияют на итоговый экономический результат. Для небольших сумм именно технический слой нередко важнее разницы между двумя маршрутами.

Gas зависит от вычисления и состояния сети, а не от номинала сделки

Обмен на 100 долларов может требовать больше gas, чем простой перевод на 100 000 долларов, потому что swap вызывает смарт-контракты и изменяет состояние нескольких объектов. Сетевой расход определяется правилами сети, сложностью исполнения и текущим спросом на block space. Поэтому нельзя оценивать gas как фиксированный процент от суммы. Для сравнения маршрутов его переводят в одну валюту учёта вместе с выходным активом.

Failed swap может стоить gas

В EVM-подобной модели контракт может начать выполнение, проверить условия и затем revert, если minimum output не достигнут или нарушена другая проверка. Выходной обмен отменяется, но уже выполненные вычисления потребили ресурсы сети. Поэтому чрезмерно узкий slippage tolerance способен создавать серию расходов без успешного swap. Это не аргумент за широкий tolerance; это аргумент за диагностику волатильности, route и сетевой задержки.

Нативный токен нельзя тратить до нуля

Пользователь, который меняет почти весь ETH, BNB, POL или другой native asset, может оставить кошелёк без ресурса для следующей транзакции. Даже если текущий swap проходит, будущий revoke, transfer или обратный swap потребует network cost. Поэтому безопасный размер input оставляет технический резерв. Конкретный размер резерва динамичен и зависит от сети; фиксировать универсальное число неправильно.

Approval и swap могут быть двумя разными транзакциями

Кошелёк способен показать сначала разрешение spender использовать ERC-20 токен, а затем сам обмен. Экономически это означает два возможных network costs и два разных риска. Approval не гарантирует, что swap состоится; swap не обязан автоматически отменять ранее выданный allowance. Поэтому после экспериментов с неизвестным dApp полезно проверять permissions отдельно. Эта тема подробно раскрывается в материале о проверке разрешений после подключения кошелька.

Permit может уменьшить число отдельных on-chain шагов, но не отменяет смысл подписи

Некоторые стандарты позволяют установить allowance через подписанное сообщение, а затем использовать его внутри следующей операции. Пользователь видит меньше отдельных транзакций, но экономическое разрешение spender всё равно существует. Поэтому «подпись без gas» нельзя считать незначимой. Для swap economics это влияет на количество сетевых операций; для безопасности — на полномочия, которые получает контракт.

Nonce и replacement влияют на время, но не на рыночную цену напрямую

Если транзакция застряла из-за слишком низкой fee или другого pending transaction с тем же аккаунтом, пользователь может столкнуться с задержкой. Замена или ускорение меняет сетевую часть, но не делает старый quote актуальным. После длительного ожидания безопаснее получить новый route и новые защитные параметры, а не пытаться любой ценой протолкнуть экономически устаревший swap.

Оценка gas до сделки остаётся оценкой

Wallet или dApp симулирует ожидаемый расход, но фактический cost может отличаться из-за условий сети и пути исполнения. Для экономического расчёта до сделки используют консервативный estimate; после сделки — фактический receipt. Если сравниваются два routes, важно использовать одинаковый момент оценки network cost. Иначе можно ошибочно назвать один route дешевле просто из-за того, что оценки сняты в разные моменты.

Маленький swap может быть экономически бессмысленным

Если ожидаемая выгода от лучшего route составляет 0,30 доллара, а дополнительная сложность увеличивает network cost на 2 доллара, оптимизация ухудшила результат. Поэтому router, который учитывает gas, может выбрать путь с немного худшей raw price, но лучшим net outcome. Для пользователя это ключевой принцип: минимальная торговая fee и максимальный gross output не обязательно дают минимальную полную стоимость.

Gas limit и gas price отвечают за разные ограничения

В сетях с газовой моделью одна величина ограничивает объём вычислений, другая отражает цену единицы ресурса или параметры включения. Недостаточный gas limit способен привести к остановке исполнения, а слишком агрессивная цена — к переплате. Пользователю не обязательно вручную оптимизировать эти параметры, но важно понимать, что «высокий gas» может означать либо сложную транзакцию, либо дорогой block space, либо оба фактора сразу.

Cross-chain swap добавляет отдельные сетевые стадии

Если интерфейс обещает обмен между двумя сетями, фактически может выполняться swap, bridge и ещё один swap. Тогда gas возникает на одной или нескольких сетях, а итог зависит от bridge liquidity, relayer/filler и финализации. Такой маршрут нельзя сравнивать с обычным same-chain swap только по одной строке «fee». Нужно считать весь путь до финального токена в нужной сети.

Revoke после swap — это не возврат торговой комиссии

Отзыв allowance снижает permission risk, но не меняет уже состоявшийся exchange rate. Он создаёт новую транзакцию и новый network cost. Поэтому revoke включают в операционную безопасность, а не в саму цену swap. Для неизвестных приложений этот дополнительный расход может быть оправдан снижением риска, но его всё равно нужно учитывать при оценке полной стоимости эксперимента.

Техническая ошибка и плохая цена — разные причины отказа

Swap может не пройти из-за insufficient native token, неправильного allowance, deadline, unsupported token или математической ошибки контракта. Ни одна из этих причин не доказывает, что рынок предложил плохую цену. И наоборот, технически успешный swap может быть экономически невыгодным. Поэтому troubleshooting начинается с классификации: проблема исполнения контракта, сеть, permission или сама рыночная экономика.

Технический слой Что может произойти Экономическое последствие
Approval Отдельная permission-транзакция Дополнительный gas и allowance risk
Swap execution Успех или revert Output либо только network cost
Pending Quote устаревает Растёт slippage/revert risk
Replacement Повышается network fee Дороже включение, но не гарантируется цена
Post-trade revoke Новая транзакция Дополнительный gas ради снижения permission risk

MEV, sandwich и скрытая стоимость on-chain исполнения

On-chain swap публичен для инфраструктуры исполнения в большей степени, чем обычная заявка внутри закрытого matching engine. Порядок транзакций внутри блока способен менять цену. Это создаёт отдельный класс execution risk — MEV. Он не сводится к обычному price impact и не означает, что каждый swap обязательно подвергается атаке, но должен учитываться при выборе slippage guard и маршрута.

MEV возникает из ценности порядка транзакций

Если две транзакции конкурируют за одно состояние пула, та, что исполнилась первой, меняет условия для второй. Block builders, validators, sequencers и специализированные участники могут видеть или прогнозировать ценность порядка. Это не всегда злоумышленная активность: арбитраж часто помогает выравнивать DEX и внешний рынок. Но для конкретного swap изменение порядка способно ухудшить output, поэтому execution environment важен наряду с pool liquidity.

Sandwich использует допустимый ценовой коридор пользователя

В классическом sandwich третья сторона пытается купить перед swap пользователя и продать после него, извлекая выгоду из движения цены, которое создаёт сама жертва. Чем больше trade impact и шире допустимый slippage, тем больше потенциальное пространство для такой конструкции. Это не означает, что любой высокий slippage автоматически приводит к sandwich, но объясняет, почему необоснованно широкий tolerance — риск, а не удобная настройка.

Price impact и sandwich loss нельзя смешивать

Собственный impact существовал бы и без стороннего участника. Sandwich добавляет ещё одно ухудшение исполнения за счёт изменения состояния вокруг транзакции. Если все потери назвать impact, пользователь не поймёт, помогает ли уменьшение размера или изменение execution path. Если всё назвать slippage, исчезает роль собственной ликвидности. Для диагностики сохраняют reference price, quote, impact estimate, minimum output и фактический execution.

Private routing может менять профиль риска

Некоторые интерфейсы или intent-based системы используют защищённую передачу заказа, fillers или иные способы не публиковать обычную swap-транзакцию в открытом mempool в прежнем виде. Это может снижать отдельные формы MEV, но создаёт другие зависимости: off-chain solver, relayer, filler competition и правила settlement. Поэтому «приватный route» не означает отсутствие рисков — меняется их структура.

Арбитраж после swap не обязательно ухудшает вашу сделку

После крупного обмена цена локального пула может отклониться от внешнего рынка. Арбитражёры торгуют против этого отклонения и возвращают pool ближе к глобальной цене. Эта последующая прибыль арбитражёра экономически связана с impact, который уже понёс swapper. Но если арбитраж происходит после завершения вашей транзакции, он не является дополнительным slippage этой сделки. Важно различать последовательность событий.

Тонкая ликвидность усиливает сразу несколько рисков

Небольшой pool создаёт большой impact, делает minimum output более чувствительным к другим сделкам и увеличивает потенциальную ценность ordering для MEV-участников. Поэтому ликвидность — общий фактор сразу для трёх слоёв. Повышение tolerance в таком рынке ухудшает защиту, а уменьшение размера может одновременно снизить impact и уязвимость к adverse execution.

Очень широкий tolerance — красный флаг диагностики

Если интерфейс предлагает или пользователь вручную ставит необычно высокий предел, нужно задать вопрос, почему стандартный swap не проходит. Возможные причины: token tax, низкая liquidity, быстро меняющаяся цена, нестандартный контракт или ошибочный route. Автоматическое увеличение процента превращает симптом в разрешение на плохое исполнение. Особенно опасно делать это для неизвестных токенов, которые невозможно нормально продать обратно.

MEV-риск оценивают вместе с размером и срочностью

Для небольшого ликвидного swap потенциальный вред ordering может быть несущественным относительно gas. Для крупной сделки даже небольшой процент превращается в значимую сумму. Поэтому нет универсальной настройки «MEV-защиты» для всех операций. Профессиональный процесс учитывает размер, глубину, допустимое время, наличие protected execution и возможность разделить route между независимыми источниками ликвидности.

Публичный mempool — не единственная модель исполнения

В разных сетях и приложениях транзакции могут проходить через mempool, sequencer, private relay или solver-based систему. Это меняет то, кто видит order до settlement и какие участники конкурируют за право исполнения. Поэтому переносить выводы об Ethereum mainnet на любую L2 или intent-протокол без проверки архитектуры неправильно. Пользователю достаточно понимать, что execution path влияет не только на gas, но и на информационную экспозицию сделки.

Защита от MEV не должна ухудшать net execution

Иногда protected route имеет чуть менее выгодный raw quote, но снижает вероятность adverse ordering. В другом случае защита может увеличить network cost или добавить зависимость от solver. Поэтому решение снова принимается по net outcome и риску, а не по одной метке «MEV protected». Для крупного размера имеет смысл сравнивать обычный и защищённый путь на одинаковой сумме и близком времени.

Риск Источник Типичная защита
Обычный impact Собственный размер против liquidity Меньший размер, лучший route, глубокий рынок
Market slippage Изменение состояния до исполнения Minimum output, свежий quote, deadline
Sandwich/ordering Порядок транзакций и публичность Разумный tolerance, protected route, ликвидность
Arbitrage convergence Выравнивание цены после сделки Не «лечится»: это часть рыночной структуры

Как посчитать реальную стоимость swap до подписи

Чтобы сравнить два swap-маршрута, нужна единая система учёта. Она должна отделять результат обмена от сетевых расходов и не вычитать показатели, уже встроенные в quote. Самый надёжный подход — начать с балансов и денежных эквивалентов, а затем разложить отклонение на объяснимые компоненты.

Сначала выберите единую валюту учёта

Если input — USDC, output — ETH, а gas оплачивается ETH, удобнее привести все величины к одной reference currency в один момент времени. Иначе сравнение «получил 0,4 ETH и заплатил 0,002 ETH gas» теряет связь с исходной стоимостью. Для учёта можно использовать стабильную валюту или выбранный benchmark, но метод должен быть одинаковым для всех альтернативных routes. Это особенно важно, когда сравниваются DEX в разных сетях.

Net received — главный пользовательский показатель

Для exact-input swap можно считать количество output token, реально зачисленное на адрес после исполнения, отдельно сохраняя network cost. Если token tax уменьшает баланс уже на transfer, именно фактическое изменение баланса является источником истины. Интерфейсный PnL полезен как подсказка, но on-chain receipt и balances важнее. Для проверки результата можно использовать TXID транзакции и explorer.

Не вычитайте LP fee второй раз, если она уже учтена в output

Допустим, router показывает expected output 0,49 ETH после trading fees. Если затем вручную уменьшить это число ещё на 0,3% «комиссии пула», расчёт станет слишком пессимистичным. Нужно выяснить семантику поля. Аналогично impact обычно отражён в самой котировке относительно benchmark. Правило простое: отдельной строкой добавляют только тот расход, который не входит в уже используемую net quantity.

Сравнивайте routes на одном input и почти одновременно

Рынок меняется, поэтому quotes, полученные с разницей в десять минут, нельзя честно сравнивать как качество двух DEX. Разница может быть вызвана движением цены, а не маршрутом. Для теста получают котировки на одинаковую сумму в близкий момент времени, сохраняют estimated network cost и смотрят net output. При больших сделках полезно повторить тест на нескольких размерах, чтобы увидеть чувствительность к impact.

Используйте cost-to-trade вместо одной комиссии

Практическая метрика — сколько экономической стоимости теряется между benchmark value input и net value output с учётом network cost. Она включает реальный эффект impact, trading fees, slippage и gas без необходимости искусственно распределять каждый доллар. Для диагностики компоненты всё равно сохраняют отдельно, но решение «какой route лучше» можно принимать по net result при сопоставимом риске.

Сценарий должен включать failed transaction

Если стратегия предполагает несколько попыток из-за очень узкого tolerance, expected cost должен учитывать вероятность неуспешного выполнения и gas этих попыток. Один успешный swap после трёх revert может оказаться дороже маршрута с чуть худшей raw price, но более устойчивым исполнением. Это особенно важно при автоматизации, где бот способен повторять транзакции быстрее человека и незаметно накапливать network costs.

Round-trip test выявляет скрытую неликвидность

Для неизвестного токена полезно до крупной покупки оценить обратный route: что произойдёт, если сразу продать полученный актив обратно. Это не означает, что нужно реально делать бессмысленный round trip на большой сумме. Достаточно quote или маленького теста, чтобы увидеть sell tax, слабую liquidity или невозможность выхода. Материал о DEX Screener помогает проверить рынки, но данные скринера не заменяют фактический route в кошельке.

Хороший swap оценивают по альтернативной стоимости

Иногда DEX route технически работает, но экономически хуже простого централизованного обмена или другого on-chain рынка. Сравнивать нужно итог до конечного места хранения: CEX может иметь withdrawal fee и custody risk, DEX — gas и smart-contract risk. Материал OneMagic про маршруты обмена криптовалюты полезен именно как рамка: решение зависит не от одной строки fee, а от полного пути капитала.

Упрощённая формула minimum output полезна только как проверка

Если expected output уже является net quote после route fees, а tolerance установлен на 0,5%, грубая проверка для exact-input может выглядеть как expected output × 0,995. Но конкретный router способен учитывать округление, token behavior и другие ограничения иначе. Поэтому арифметика нужна для sanity check, а юридически и технически значимым остаётся значение, реально закодированное в транзакции как минимум или лимит.

Пример: одинаковый quote, разный net result

Представим два маршрута с ожидаемым output на 1 000 USDC почти одинаковым. Route A требует одну транзакцию с network cost 1,20 доллара. Route B даёт на 0,80 доллара больше токенов, но использует сложный multi-hop и оценочный network cost 3 доллара. При прочих равных Route A экономически лучше, хотя его headline quote хуже. Этот простой пример показывает, почему интерфейс должен сравниваться по net output после сети, а не по центральной цифре.

Пример: высокая fee может оказаться дешевле из-за liquidity

Пул A берёт меньшую trading fee, но имеет слабую глубину и создаёт 1,4% impact. Пул B имеет более высокую fee, зато impact на том же размере лишь 0,15%. Если router корректно учитывает оба фактора, итоговый output B может быть выше. Поэтому выбор fee tier без оценки depth — логическая ошибка. Рынок платит не за низкий процент в вакууме, а за конечное качество исполнения.

Пример: slippage не надо прибавлять к impact как обязательный расход

Если интерфейс показывает 0,8% price impact и tolerance 0,5%, нельзя автоматически сказать, что пользователь «потеряет 1,3%». Impact уже отражает влияние размера на котировку, а tolerance — допустимый дополнительный предел ухудшения до исполнения. Фактический slippage может быть нулевым, отрицательным или положительным. Такой double counting часто превращает нормальный swap в мнимо дорогой или, наоборот, скрывает реальную проблему.

После сделки строится realized decomposition

Сохраните reference, quote, impact estimate, min output, actual output и gas receipt. Затем посчитайте разницу между quote и фактом — это отправная точка realized execution analysis. Отдельно посмотрите, была ли token fee, изменилась ли route и как долго транзакция ждала включения. Даже если точное математическое разложение невозможно, такой журнал быстро выявляет системные проблемы: stale quotes, слишком широкие tolerances или плохую ликвидность.

Шаг расчёта Что сохранять Зачем
До сделки Reference price, quote, route, expected output База сравнения
Защитные условия Minimum output, tolerance, deadline Понять допустимый худший сценарий
Расходы Trading/interface fee, network estimate Сравнить net routes
После сделки Actual input/output, receipt, gas used Посчитать realized result
Аудит TXID, contracts, timestamp Воспроизводимость и разбор ошибок

Практический чек-лист swap: как проверить сделку до и после исполнения

Для читателя, который формулирует вопрос «swap что это в криптовалюте», практический ответ сводится к проверяемому процессу: понять маршрут, лимит ухудшения и полную стоимость до подписи, а затем сверить факт on-chain. Последний слой — процесс принятия решения. Цель не в том, чтобы вручную пересчитывать каждую формулу AMM, а в том, чтобы быстро заметить сделку, где цена, маршрут или защита не объясняются. Хороший чек-лист сокращает число параметров до тех, которые действительно меняют результат, и позволяет воспроизвести расчёт после исполнения.

Шаг 1. Подтвердите активы и сеть

Сверьте contract addresses, decimals и рабочую сеть. Тикер и логотип не являются идентификаторами. Если output token неизвестен, сначала проверьте контракт, возможность продажи и существующие рынки. Экономика swap имеет смысл только после подтверждения того, что вы обмениваете именно нужные активы. Ошибка идентичности не исправляется ни низкой fee, ни хорошим slippage, ни известным названием DEX.

Шаг 2. Получите свежий quote на реальный размер

Не оценивайте крупную сделку по котировке на 10 долларов. Введите реальный размер input и запишите expected output. Затем уменьшите и увеличьте сумму, чтобы увидеть чувствительность к size. Сильная нелинейность указывает, что liquidity ограничена и price impact будет центральным фактором. Если quote устарел после долгого чтения деталей, обновите его непосредственно перед подписью.

Шаг 3. Откройте route details

Проверьте, идёт ли swap напрямую, через промежуточные токены или split paths. Необычный промежуточный актив, новый protocol или несколько bridge-like шагов требуют дополнительной проверки. Простое название DEX на верхней панели не описывает реальную цепочку contracts, через которую пойдёт капитал. Для большого объёма сравните альтернативный route, даже если интерфейс уже выбрал «best route» автоматически.

Шаг 4. Разделите impact, slippage и fee

Запишите price impact как влияние размера, slippage tolerance как защитный предел и fee как комиссию. Не называйте все три «комиссией». Если impact высок, ищите liquidity или уменьшайте размер. Если swap не проходит из-за движения рынка, оценивайте tolerance и скорость. Если net result плох из-за fee, сравнивайте routes. Такая диагностика экономит больше, чем поиск одной «идеальной настройки».

Шаг 5. Смотрите на minimum output, а не только на красивый expected output

Expected output отвечает на вопрос «что ожидается сейчас», minimum output — «какой худший результат вы заранее разрешаете». В risk management второй показатель часто важнее. Если минимум слишком низкий относительно вашей цели, не подписывайте сделку только потому, что центральная цифра выглядит выгодно. Подождите, уменьшите размер или выберите другой рынок. Minimum output должен быть понятен в единицах токена и в денежном эквиваленте.

Шаг 6. Добавьте network cost и возможный approval

Перед подписью убедитесь, что в кошельке есть native asset на gas и что вы понимаете, сколько on-chain действий потребуется. Первый swap токена может включать отдельный approval. Если экономия маршрута меньше дополнительного gas, сложный route невыгоден. После failed transaction не повторяйте его автоматически без новой диагностики: прежний quote уже может быть неактуален, а причина revert — не устранена.

Шаг 7. Проверьте обратный выход

Если покупается малоизвестный токен, запросите quote на обратный обмен. Большой sell impact, token fee или невозможность построить route — повод остановиться. Этот шаг особенно важен для мемкоинов и новых контрактов; отдельный материал о покупке мемкоина через DEX разбирает риски токена глубже. Наличие buy route без нормального sell route не является ликвидным рынком.

Шаг 8. После исполнения сверяйте on-chain факт

Сохраните tx hash, actual output и network cost. Если результат отличается от ожиданий, разберите route и events, а не полагайтесь на старый screenshot. При непонятной транзакции используйте explorer и инструкцию что такое TXID. История фактических исполнений помогает понять, какие pairs, sizes и сети дают стабильный результат именно для вашего процесса.

Ошибка: выбирать DEX только по минимальной fee

Низкая процентная fee не компенсирует плохую liquidity. Пул с низкой ставкой и большим impact может быть хуже пула с более высокой trading fee, но глубоким рынком. Сравнивайте net output. Это же правило относится к gas: самый дешёвый route по сети может быть хуже по цене. Оптимизация одного показателя создаёт ложную экономию и часто заставляет пользователя игнорировать более важные расходы.

Ошибка: повышать slippage, пока транзакция не пройдёт

Такой подход превращает диагностическую настройку в разрешение на неизвестное ухудшение. Сначала определите причину: volatility, token tax, низкая liquidity, stale quote, unsupported token или неверный route. Если причина не ясна, сделка не становится безопаснее от того, что пользователь разрешил контракту более широкий ценовой коридор. Особенно опасно расширять tolerance для токена, который уже показывает необычное поведение при продаже.

Ошибка: считать failed swap потерей всей суммы

При обычном revert смарт-контракт откатывает изменения состояния, поэтому input token не должен исчезнуть как успешный обмен. Однако network cost за выполненные вычисления может быть потрачен. Это отличается от мошеннической транзакции или transfer, где актив действительно ушёл. Разбор начинается с tx status и events, а не с предположений. Если транзакция неизвестна, дополнительно проверьте permissions и адреса контрактов.

Ошибка: забывать, что quote — динамический

Котировка, сохранённая утром, ничего не обещает вечером. Даже на stable pairs liquidity и fee state могут измениться. Поэтому рабочий процесс не строят на старых скриншотах и «обычной цене». Перед каждым значимым swap получают свежий quote, сравнивают route и заново проверяют minimum output. Это особенно важно после того, как транзакция долго находилась pending или была отменена.

Ошибка: считать displayed USD value точным PnL

Кошелёк или DEX может рассчитывать долларовую стоимость по стороннему price feed, который не совпадает с executable market price для вашего объёма. Поэтому «получено на $1 005» ещё не означает, что эти токены можно немедленно продать за такую сумму. Для PnL важна ликвидность выхода и фактическая цена реализации. Displayed fiat value — удобный ориентир, но не доказательство стоимости.

Ошибка: считать route с большим числом pools автоматически опасным

Сложность действительно добавляет зависимости, но multi-hop или split route может быть экономически рациональным и использовать хорошо проверенные контракты. Риск оценивается не по числу стрелок в интерфейсе, а по конкретным protocols, assets, liquidity и net result. Для небольшого обмена простота часто предпочтительна; для крупного объёма более сложный route может заметно уменьшить impact.

Ошибка: не учитывать стоимость выхода из позиции

Покупка — только половина экономической истории. Если актив можно купить с небольшим impact, но продать только с большим sell fee или через тонкий pool, фактическая ликвидность хуже, чем кажется. Перед крупным swap полезно моделировать exit на сопоставимом размере и сохранять обратный quote. Это особенно важно для токенов с динамической комиссией или ограничениями на transfer.

Ошибка: использовать один slippage preset для всех рынков

Пара stablecoin/stablecoin, ликвидный ETH/USDC и новый мемкоин имеют разные volatility, liquidity и execution risk. Один постоянный tolerance неизбежно будет слишком широким для части сделок и слишком узким для других. Настройка должна исходить из текущего route, размера, волатильности и стоимости возможного revert. Универсальное значение удобно, но методологически слабее осознанного лимита.

Ошибка: оценивать сделку только до подписи

Без post-trade review пользователь не знает, насколько точно работали его предположения. Сохраняйте expected и actual output, gas, route и tx hash хотя бы для значимых операций. Если фактический результат регулярно хуже quote, это повод исследовать latency, liquidity или выбранный интерфейс. Если разница почти всегда мала, возможно, процесс уже устойчив и не требует постоянной ручной оптимизации.

Короткий вывод

Поэтому запрос «swap что это в криптовалюте» нельзя закрыть одним определением: экономически swap — это задача исполнения, а не одна кнопка и не один процент комиссии. До сделки нужно понимать, откуда берётся quote, по какому route идёт капитал, насколько собственный размер меняет цену, какой minimum output защищает пользователя и какие fees уже учтены в расчёте. После сделки источником истины становятся фактические balances и on-chain receipt. Такой подход позволяет отделить рыночный риск от сетевого и не пытаться «лечить» низкую ликвидность увеличением slippage.

Когда от swap лучше отказаться

Если обмен вызывает сомнение, уменьшите размер и проверьте полный цикл на небольшой сумме. Неизвестный token contract, невозможность построить обратный route, двузначный impact на малом объёме, непонятная fee или необходимость сильно расширять tolerance — достаточные причины отказаться от сделки до выяснения. В DeFi пропустить сомнительный swap дешевле, чем потом разбирать необратимую транзакцию.

Перед подписью Нормальный вопрос Красный флаг
Token Это точно нужный contract? Выбор только по тикеру
Route Какие pools/contracts участвуют? Неизвестный промежуточный токен
Impact Что происходит с ценой на моём размере? Большой impact на маленькой сумме
Slippage Какой minimum output я разрешаю? Tolerance повышается без причины
Fee Что уже включено в quote? Ручное двойное вычитание
Gas Сколько стоит весь набор транзакций? Нет резерва native token
Exit Можно ли продать обратно? Нет обратного route

Как вести минимальный swap-log без сложной аналитики

Для личной дисциплины достаточно одной строки на значимую операцию: дата и время, сеть, input, output, quote, minimum received, фактический output, network cost, route и TXID. Для крупной сделки добавьте price impact и причину выбора маршрута. Такой журнал нужен не ради бухгалтерии, а чтобы увидеть повторяющиеся потери. Если на одной сети фактический результат стабильно хуже preview, если определённый токен требует необычного tolerance или если gas съедает большую долю маленьких обменов, решение становится очевидным из данных. Даже десять аккуратно записанных swap полезнее сотни скриншотов без контекста.

Почему «лучший курс» следует проверять полным циклом

Самая высокая цифра output в агрегаторе может сопровождаться дополнительным approval, дорогим route, большим execution risk или токеном, который неудобно вывести дальше. Поэтому окончательное решение принимают после ответа на вопрос: сколько ликвидной стоимости окажется под моим контролем после всех необходимых действий. Если цель — получить токен на аппаратный кошелёк, учитывается последующий transfer; если актив нужен в другой сети — bridge; если позицию вскоре придётся закрывать — качество обратного рынка. Swap выгоден только в контексте задачи, ради которой он совершается.

Отдельный кейс: stablecoin-to-stablecoin swap

На паре стейблкоинов пользователь часто ожидает почти фиксированный курс один к одному, но это ожидание верно только при нормальной привязке и достаточной ликвидности. Во время depeg даже глубокий пул может быстро стать односторонним: рынок продаёт один актив и забирает другой. В этот момент маленький historical spread ничего не говорит о текущем риске. Перед крупным stablecoin swap полезно сравнить внешний reference price, глубину конкретного пула и обратный quote. Если один стейблкоин торгуется с устойчивым дисконтом, обмен уже является не технической конвертацией, а экономическим выбором кредитного и эмитентского риска.

Отдельный кейс: exact-output swap

Когда пользователю нужно получить строго определённое количество output token, например ровно 1 ETH, защитная логика меняется. Вместо минимального output ключевым ограничением становится максимальный input, который разрешено потратить. Если рынок ухудшился, router не должен бесконечно увеличивать списание. Такой режим особенно полезен для платежей или пополнения залога, где важен конечный объём. Но он требует внимательной проверки: интерфейс может показывать estimated input, а transaction data — отдельный maximum. Сравнивать exact-output и exact-input напрямую по одному проценту slippage нельзя, потому что риск ограничивается с разных сторон.

Отдельный кейс: swap с низколиквидным мемкоином

У нового токена основным расходом часто становится не gas и не LP fee, а собственный impact и риск невозможности выхода. Небольшая покупка способна заметно поднять локальную цену, после чего кошелёк показывает красивую переоценку позиции. Но продать тот же объём обратно по этой цене невозможно: обратный swap проходит вниз по той же тонкой ликвидности и может дополнительно столкнуться с sell tax. Поэтому экономический тест должен включать round-trip quote, контракт токена, концентрацию liquidity и минимальный размер сделки, при котором результат ещё остаётся осмысленным.

Отдельный кейс: swap после резкого движения рынка

Сразу после сильной свечи источники ликвидности могут временно расходиться по цене. Арбитражёры ещё не успели выровнять пулы, оракулы и order-book рынки, а gas растёт из-за нагрузки. В такой момент агрегатор способен находить необычные маршруты, но quote устаревает быстрее обычного. Если задача не срочная, несколько минут ожидания иногда экономически полезнее расширения slippage. Если операция срочная, пользователь должен осознанно платить за скорость и принимать более широкий диапазон исполнения. Главное — не считать рыночный стресс обычным режимом и не переносить параметры такого swap на спокойный рынок.

Отдельный кейс: маленький swap при дорогой сети

При небольшом input может оказаться, что рыночное исполнение почти идеально, но network cost съедает значительную долю суммы. В этом случае бессмысленно оптимизировать price impact на несколько базисных пунктов. Экономически важнее дождаться более дешёвого block space, использовать подходящую сеть или увеличить размер операции, если это соответствует задаче и риску. При этом перенос капитала на другую сеть сам создаёт bridge cost и новые зависимости, поэтому решение нельзя сводить к тезису «там gas дешевле». Сравнивают полный маршрут до нужного конечного актива.

Почему quote expiry важен для автоматизированного интерфейса

Некоторые приложения обновляют quote каждые несколько секунд и могут автоматически менять route до момента подтверждения. Пользователь должен понимать, какая версия котировки фактически попала в подписываемую транзакцию. Если interface preview обновился после того, как кошелёк уже открыл окно подтверждения, визуальная цифра и calldata могут относиться к разным моментам. Безопасный процесс перечитывает итоговые суммы непосредственно в wallet preview, а для большой сделки при сомнении отменяет подпись и получает новый quote. Экономия нескольких секунд не стоит риска подписать параметры, которые пользователь уже не контролирует.

Почему fee-on-transfer токены нарушают привычную арифметику

Стандартный router предполагает определённую связь между количеством, отправленным из кошелька, количеством, поступившим в pool, и output. Токен с комиссией на transfer ломает эту простую цепочку: часть input исчезает ещё до обмена. Если router не поддерживает такую механику, swap может revert или дать неожиданный результат. Увеличение slippage иногда технически позволяет пройти отдельным токенам, но не делает их экономику привлекательной. Перед работой с такими активами нужно узнать buy/sell/transfer rules и проверить, поддерживает ли выбранный route нестандартное поведение.

Почему approval cost стоит амортизировать отдельно

Первый swap токена может выглядеть заметно дороже последующих из-за отдельного approval. Если пользователь сравнивает два DEX по одной первой операции, он рискует приписать permission gas самой торговой механике. Для честного сравнения можно показывать две метрики: cost of first use и recurring swap cost при уже существующем allowance. Но безопасность остаётся отдельным вопросом: слишком широкий или бессрочный allowance может снижать будущие gas-затраты, одновременно увеличивая потенциальный ущерб при компрометации spender.

Почему route через wrapped asset не обязательно является bridge

WETH, WBTC и другие wrapped representations могут участвовать в same-chain маршруте как промежуточные активы. Это ещё не означает перенос между сетями. Важно различать wrapping внутри одной сети и bridging между независимыми chain environments. Экономические расходы и риски разные: wrapping может быть обычным contract call, а bridge добавляет внешнюю систему сообщений, custody или liquidity. Если интерфейс показывает промежуточный wrapped token, пользователь должен проверить, где заканчивается swap и начинается отдельная межсетевая операция.

Почему высокий APR пула ничего не говорит о качестве вашего swap

Доходность liquidity provider и цена исполнения swapper — связанные, но разные вопросы. Высокий APR может быть следствием больших trading fees, incentives или высокой volatility, однако пользователь обмена интересуется конкретным output после fee и impact. Пул с привлекательной доходностью для LP способен быть плохим маршрутом для большого swap, если активной liquidity около текущей цены мало. Поэтому данные о farming или APR не должны заменять quote, route и depth. Для каждой роли — LP и swapper — строится свой экономический расчёт.

Почему интерфейсная оценка «best price» требует проверки риска

Агрегатор может математически найти route с максимальным ожидаемым output, но пользователь также должен учитывать новые контракты, bridges, solvers или токены, которые появились в пути. Несколько дополнительных долларов ожидаемой выгоды не всегда оправдывают расширение trust surface. Для крупной суммы полезно сравнить «best net output» с более простым маршрутом и оценить разницу как плату за дополнительную сложность. Если выигрыш минимален, более простой путь может быть рациональнее даже при чуть худшей котировке.

Как отличить экономическую проблему от интерфейсной ошибки

Если web-приложение показывает странную цифру, сначала сравните quote с другим независимым интерфейсом или прямыми данными пула. Если рынок везде похож, проблема, скорее всего, экономическая. Если только один frontend показывает аномалию, возможна ошибка кэша, token metadata, decimal conversion или router. Не подписывайте транзакцию, пока расхождение не объяснено. В DeFi подпись превращает визуальную ошибку в реальное on-chain действие, поэтому независимая сверка особенно важна при нетипично выгодной цене.

Как считать экономический эффект частичного split-route

Если агрегатор делит один input между несколькими pools, итоговый output формируется как сумма результатов отдельных ветвей после их fee и impact. Для пользователя важен общий net output, но при аудите полезно видеть долю каждой ветви. Если одна из них даёт заметно худшую цену или использует малоизвестный liquidity source, можно сравнить альтернативный route без неё. При этом нельзя просто усреднять проценты impact: ветви имеют разные размеры, кривые и комиссии. Корректнее оценивать фактически получаемое количество output token и общую стоимость сети для всей транзакции.

Почему размер позиции влияет на выбор между DEX и RFQ

Для небольшого swap AMM часто обеспечивает достаточную ликвидность и прозрачный маршрут. Для крупного размера quote от professional filler или RFQ-модели может конкурировать с pools, потому что исполнитель использует собственный inventory или хеджирование. Это не делает RFQ автоматически лучше: меняются settlement, counterparty assumptions и правила получения цены. Пользователь сравнивает гарантии, срок действия quote, net output и способ исполнения. Главное — понимать, что слово swap описывает результат для пользователя, но не всегда одинаковую микроструктуру под капотом.

Почему итоговую цену стоит проверять и в единицах input, и в процентах

Процент удобно сравнивать между сделками, но он скрывает абсолютную сумму. Ухудшение на 0,2% при input 100 долларов почти несущественно относительно времени анализа, а при 500 000 долларов становится значимым. Обратная проблема — фиксированный gas: 5 долларов огромны для маленького swap и почти незаметны для крупного. Поэтому журнал хранит и проценты, и абсолютные значения. Такой двойной взгляд помогает понять, какие оптимизации действительно влияют на капитал, а какие выглядят важными только из-за интерфейсного процента.