Токен с fee-on-transfer может доставить получателю меньше указанной суммы даже при успешной транзакции. Сравнивайте три величины отдельно: порученную сумму, фактически поступившие токены и зачисление во внутреннем аккаунте сервиса. Само расхождение не определяет причину: удержание контракта, комиссия вывода отправляющей площадки и правила учёта получателя требуют разных доказательств.
Сначала разберите правила перевода самого актива
У токена может быть собственное удержание при покупке, продаже или переводе. Uniswap Labs описывает такие token fees как устанавливаемые эмитентом сборы, от которых Uniswap Labs не получает долю. Для диагностики важно, что делает конкретный токен именно в вашей операции. Показанная комиссия покупки ещё не устанавливает условия любого последующего перемещения между кошельками.
Перед чтением правил установите сеть и адрес контракта. Знакомый тикер, иконка в кошельке или старая подборка могут относиться к другому активу. Поэтому постоянного списка токенов с удержанием здесь нет: такой список всё равно не заменит проверку контракта и маршрута. Наличие комиссии само по себе также не доказывает ни добросовестность проекта, ни мошенничество.
Сверка трёх сумм и отдельных удержаний
| Величина или расход | Где искать | Что сравнивать | Какой ошибки избежать |
|---|---|---|---|
| Порученная сумма токенов | Подтверждённое поручение или детали вывода | Количество единиц нужного актива | Считать предварительный экран доказательством доставки |
| Доставленная сумма токенов | Движения конкретной транзакции и относящиеся к ней сведения о балансе | Фактическое поступление нужному адресу | Смотреть только native value транзакции |
| Зачисленный депозит | История получающего сервиса | Признанная им сумма по правилам маршрута | Приравнивать успех сети к учёту на аккаунте |
| Комиссия исполнения сети | Receipt и сведения о газе | Расход нативной монеты на исполнение | Вычитать ETH как количество другого токена |
| Комиссия вывода источника | Детали вывода у отправляющей площадки | Удержание до отправки через блокчейн | Любое расхождение называть налогом контракта |
| Сбор приложения или маршрута | Условия соответствующего этапа | К какой операции и сумме относится сбор | Повторно вычитать уже включённый расход |
В интерфейсе ERC-20 различаются баланс токена и операции его перевода. Сумма токенов не равна полю нативного ETH value у содержащей вызов транзакции. Для нестандартного актива результат нужно читать с учётом его реализации и движения средств к получателю. Одного удобно названного события недостаточно, чтобы объяснить всё исполнение контракта.
Сравнение общего баланса до и после блока тоже может вводить в заблуждение. У адреса могли быть другие поступления или списания в том же блоке. Нужны сведения, относящиеся к конкретной операции, а не присвоение всей разницы вашему депозиту. Если доступные записи не объясняют расхождение, причину следует оставить неустановленной, а не вычислять неизвестную комиссию из любого несовпадения.
Учебный расчёт, а не действующий тариф
Представим условный токен: поручено передать 100 единиц. Допустим, подтверждённые правила именно этого перевода удерживают 3 единицы, других токенных списаний нет, получатель получает 97. В этой упрощённой модели доставлено 100 минус 3. Удержанные единицы относятся к механике токена, а не к оплате газа в ETH. Числа не описывают действующие условия биржи или реального актива.
Теперь другой случай: отправляющая площадка сначала удержала 3 единицы и отправила 97, а сам токен ничего не вычитал. Итог у получателя тот же, но причина другая. По одному конечному числу эти варианты не различить. Сначала сопоставьте сведения о выводе с блокчейн-операцией, иначе вопрос эмитенту или получателю будет построен на неверно выбранном источнике удержания.
Третья граница — внутренний учёт депозита. Поступление 97 единиц на адрес не означает, что сервис обязан отразить первоначально порученные 100. Уточните, что он учитывает и поддерживается ли такая механика. Доплата без объяснения не исправляет совместимость: новый перевод способен создать новое удержание и ещё один депозит, который получатель не умеет обрабатывать.
Газ и комиссия токена относятся к разным величинам
При исполнении в Ethereum газ оплачивается в ETH, а удержание токена меняет учёт самого актива. Увеличенный запас нативной монеты не даёт контракту указание перестать удерживать сбор. Неудачная транзакция и успешный перевод с меньшим поступлением — также разные результаты. Установите, какой из них произошёл, до выбора дальнейшего действия.
Настройка slippage не является общим способом исправить депозит на бирже. Она относится к условиям конкретного обмена и интерфейса. Справка 1inch рассматривает изменение допуска для необычной механики токенов и предупреждает о росте риска front-running. Из этого не следует совет слепо поднимать допуск или обещание, что другая площадка начнёт принимать такой актив.
Поддержка зависит от компонента и версии
Первичные документы показывают, почему общей надписи ERC-20 недостаточно. В документации Uniswap v3 указано, что токены с комиссией за перевод не работают с его router-контрактами. OP Standard Bridge исключает их из-за ошибок учёта моста. Это ограничения названных компонентов, а не единое правило для всех мостов и обменов.
Отдельный пример есть в репозитории UniswapX: предупреждение о fee-on-transfer разделяет указанную сумму передачи и поступление после удержания. Однако это не обещает приём актива любой биржей или интерфейсом. Документацию нужно сопоставлять с компонентом своего маршрута. Условия разных продуктов одного бренда нельзя склеивать в одно универсальное утверждение о поддержке.
Что выяснить перед следующей отправкой
- Сверьте контракт и сеть токена с маршрутом депозита, который поддерживает получатель.
- Найдите правила именно выбранного перевода; не считайте автоматически одинаковыми комиссии покупки, продажи и обычной передачи.
- Разделите поручение источника, поступление адресу через блокчейн и зачисленную сумму аккаунта.
- Считайте газ в собственной валюте, а сборы отправляющей площадки и маршрута сохраняйте отдельными строками.
- Если депозит меньше ожидаемого или не учтён, спросите, какую сумму обнаружил получатель и поддерживает ли он такую механику, прежде чем доплачивать.
В обращении пригодятся сеть, контракт, хеш, порученная сумма и наблюдаемое поступление. Попросите назвать учтённую величину и причину разницы. Для бухгалтерского объяснения не нужны сид-фраза, подпись разрешения на списание или доступ к кошельку. Реальное расхождение разбирается по конкретным записям, а не устраняется необъяснённым требованием перевести ещё средства.
Перед следующим простым обменом проверьте поддерживаемые активы и действующие инструкции пополнения. Информация о комиссиях сервиса не подтверждает совместимость с любым нестандартным контрактом. Если маршрут не поддерживает механику токена, знакомый тикер и увеличенная сумма сами по себе совместимость не создают.
Частые вопросы
У токена с fee-on-transfer получателю обязательно придёт меньше?
Такая механика может удерживать часть перевода по правилам токена. Но конкретную разницу нужно подтвердить записями, исключив отдельную комиссию источника и особенности учёта получателя.
По списку токенов с fee-on-transfer можно узнать, примет ли депозит биржа?
Список не заменяет проверку контракта, сети и действующего маршрута. Совместимость определяет получающий компонент, а не одно совпадение названия.
Комиссия токена за перевод исчезнет, если увеличить газ?
Запас газа относится к исполнению сети, а удержание токенов — к другой логике. Он сам по себе не отключает сбор и не добавляет поддержку у получателя.
По теме на сайте
Источники
- support.uniswap.org/hc/en-us/articles/18673568523789-What-is-a-token-fee
- eips.ethereum.org/EIPS/eip-20
- ethereum.org/developers/docs/gas/
- help.1inch.com/en/articles/5651059-what-is-a-fee-on-transfer-token
- developers.uniswap.org/docs/protocols/v3/concepts/unsupported-tokens
- docs.optimism.io/app-developers/guides/bridging/standard-bridge
- github.com/Uniswap/UniswapX