Transfer tax – комиссия, которую контракт токена удерживает при покупке, продаже или обычном переводе. Она может быть постоянной, зависеть от направления операции или меняться владельцем контракта. Рядом с ней часто работают max transaction, max wallet, blacklist, pause и другие ограничения. До покупки нужно проверить не только показанный процент, но и право администратора изменить правила позже.
Предупреждение в интерфейсе DEX полезно, но не заменяет анализ. Агрегатор может не распознать нестандартную математику, а симуляция показывает результат только для текущего блока и выбранного адреса. Проверка должна сочетать адрес контракта, исходный код, onchain-параметры, полномочия и тест фактического маршрута.
Сначала зафиксируйте правильный контракт
Не ищите токен только по названию или тикеру. Возьмите адрес из официальной документации проекта, затем сверьте сеть, decimals, total supply и дату создания. Мошеннический токен может скопировать название и изображение, но адрес останется другим.
Откройте страницу контракта в обозревателе блокчейна и проверьте, опубликован ли исходный код. Отсутствие верификации не доказывает мошенничество, но лишает вас возможности увидеть условия transfer. Для новой неизвестной монеты это достаточная причина отказаться от сделки.
Полный порядок сверки адреса приведён в инструкции по проверке контракта токена. Не переходите к анализу комиссии, пока адрес и сеть не подтверждены.
Убедитесь, что перед вами не proxy
Страница токена может показывать короткий proxy-контракт, а логика transfer находится в implementation. В таком случае изучать нужно оба адреса. Проверьте текущую реализацию, proxy admin и возможность обновления. Если администратор способен заменить код без задержки, сегодняшняя нулевая комиссия не гарантирует такие же правила завтра.
Прозрачный proxy обычно оставляет стандартные storage slots, но проект может использовать собственную схему. Обозреватель иногда определяет implementation автоматически. Если нет, примените порядок из материала о проверке proxy admin и implementation.
Что искать в исходном коде
Названия функций не стандартизированы. Поиск только по слову tax пропустит часть контрактов. Просмотрите функцию, которая обрабатывает transfer, и все вызываемые ею проверки. В разных реализациях это может быть _transfer, _update, hook или отдельный внутренний метод.
Ищите группы переменных и функций, связанных со следующими возможностями:
- buy fee, sell fee, transfer fee и адрес получателя комиссии;
- max transaction, max wallet и исключения из лимитов;
- blacklist, whitelist, bot list и ограничения конкретных адресов;
- включение trading и особые правила первых блоков;
- pause, cooldown, задержка между переводами и лимит продажи;
- автоматический swap накопленной комиссии и добавление ликвидности;
- право менять pair, router, fee receiver или список исключений.
Важен не только текущий процент, но и диапазон изменения. Setter может разрешать владельцу установить любую величину либо ограничивать её жёстким максимумом. Проверьте условие внутри функции, а не доверяйте названию вроде setLowFee.
Как прочитать текущие параметры
На вкладке чтения контракта найдите публичные fee-переменные, лимиты, статус trading и адрес владельца. Если значения хранятся в mapping, интерфейс потребует адрес pair, router или конкретного кошелька. Проверьте отдельно обычный адрес и адрес пула: контракт часто определяет покупку по отправителю, а продажу по получателю.
Затем изучите последние транзакции администратора. Вызовы изменения fee, исключения адресов, обновления blacklist и снятия лимитов показывают реальную практику управления. Одно формальное owner() = 0x0 не достаточно, если существуют другие роли, отдельный fee controller или обновляемый implementation.
Распределение токенов тоже влияет на риск. Крупный адрес с правом исключения может продавать без налога, пока остальные платят высокий fee. Сопоставьте роли с результатами проверки крупнейших держателей.
Почему симуляция важна, но не даёт гарантии
Смоделируйте полный круг: покупку, одобрение router и продажу полученного количества. Сравните ожидаемый и фактический баланс после каждого шага. Если при переводе ста единиц получатель получает девяносто, удержание составляет десять процентов без учёта сетевой комиссии. Для swap отдельно учитываются price impact, LP fee и transfer tax.
Проверяйте тот же размер сделки и тот же маршрут, которые собираетесь использовать. Ограничение может срабатывать только выше max transaction, после превышения max wallet или при продаже через конкретный pair. Полезно повторить расчёт для нескольких сумм без отправки транзакции.
Симуляция фиксирует текущее состояние. Владелец может изменить fee после вашей покупки, добавить адрес в blacklist или переключить trading. Некоторые контракты дают особые условия whitelist-адресам. Поэтому успешный тест не отменяет анализ полномочий. Ограничения симуляции подробно разобраны в статье как не доверять симуляции вслепую.
Стоит ли делать маленькую тестовую покупку
Небольшая покупка и немедленная продажа показывают фактическое поведение контракта для вашего адреса. Сначала рассчитайте сетевые расходы и используйте сумму, потеря которой не повредит. После сделки сравните вход, количество полученных токенов, результат продажи и события Transfer.
Такой тест не является доказательством безопасности. Администратор может изменить правила позже, а контракт может применять ограничения после определённого времени, блока или объёма. Не увеличивайте позицию только потому, что один круг прошёл успешно.
Как transfer tax связан со slippage и ликвидностью
Transfer tax и slippage – разные потери. Slippage ограничивает отклонение результата swap от расчёта маршрутизатора. Налог удерживается логикой токена и может потребовать большего допуска, но увеличение slippage не делает контракт безопаснее. Оно лишь расширяет диапазон приемлемого результата и повышает риск невыгодного исполнения.
Fee-on-transfer, rebase и reflection-токены совместимы не со всеми версиями AMM. Например, стандартная логика концентрированной ликвидности может не учитывать изменение количества внутри transfer. Перед добавлением ликвидности проверьте поддержку конкретного пула. Выбор допуска для сделки описан в материале о slippage для разных токенов.
Даже умеренный tax становится опасным при тонком пуле. Продажа одновременно платит налог и двигает цену. Поэтому изучите глубину ликвидности, крупнейшие позиции LP и возможность их вывода. Отдельный чек-лист есть в статье о блокировке ликвидности.
Красные флаги перед покупкой
- Комиссия может быть установлена без жёсткого верхнего предела.
- Владелец способен запретить продажу отдельному адресу.
- Исходный код не верифицирован или implementation скрыта.
- Есть множество неизвестных ролей и исключённых от fee кошельков.
- Продажа не проходит в симуляции при работающей покупке.
- Лимит сделки ниже вашей позиции или может произвольно уменьшаться.
- Контракт позволяет заменить pair или router без timelock.
Финальная проверка должна отвечать на четыре вопроса: сколько удерживается сейчас, при каких операциях, кто может изменить правила и сможете ли вы продать весь объём. Если хотя бы один ответ нельзя получить из onchain-данных, риск нельзя считать измеренным.
Transfer tax сам по себе не всегда означает мошенничество. Проблема начинается, когда комиссия непрозрачна, изменяема без ограничений или связана с выборочной блокировкой продаж. Анализ кода и ролей до покупки дешевле, чем попытка выйти из уже заблокированной позиции.



