Пользователь подключает криптокошелёк к сайту, хочет обменять USDT и видит кнопку:
Approve USDT
На первый взгляд может показаться, что это обычное подтверждение операции.
Но технически Token Approval — это разрешение другому адресу или смарт-контракту использовать определённое количество ваших токенов.
Именно поэтому важно понимать, что вы подтверждаете: неправильный Approval может дать стороннему контракту возможность списывать токены с вашего адреса.
Разберёмся простыми словами.
Token Approval — это механизм, который используется токенами в сетях со смарт-контрактами.
Например, он распространён у ERC-20 токенов в Ethereum и совместимых EVM-сетях.
Представим, что на вашем кошельке находится:
1 000 USDT
Вы хотите обменять 100 USDT через децентрализованный сервис.
Смарт-контракт сервиса не может просто взять эти 100 USDT с вашего кошелька.
Сначала вы должны разрешить ему это сделать.
Для этого создаётся операция:
Approve → разрешить контракту использовать до 100 USDT
После этого контракт получает так называемый allowance.
Allowance — это максимальное количество токенов, которое определённый адрес или контракт может списать от имени владельца.
Например:
Баланс: 1 000 USDT
Allowance для контракта: 100 USDT
Контракт сможет использовать до 100 USDT.
Оставшиеся 900 USDT это разрешение не затрагивает.
Важно понимать:
Approval не означает немедленную отправку токенов.
Это именно выдача права на их последующее использование.
Представим DEX — децентрализованную биржу.
Вы хотите обменять:
100 USDT → ETH
Смарт-контракт должен сначала получить возможность забрать 100 USDT с вашего адреса.
Поэтому процесс часто выглядит так:
1. Подключить кошелёк
2. Нажать Approve USDT
3. Подтвердить Approval в кошельке
4. Выполнить сам обмен
То есть Approval и Swap — это две разные операции.
После подтверждения разрешение записывается в состоянии токен-контракта.
Условно:
Владелец: 0xUSER...
Spender: 0xCONTRACT...
Allowance: 100 USDT
После этого указанный spender может использовать стандартный механизм вроде transferFrom и переместить разрешённое количество токенов согласно логике контракта.
Spender — это адрес, которому вы предоставляете разрешение.
Им может быть:
DEX;
bridge;
DeFi-протокол;
платежный смарт-контракт;
другой сервис.
Именно адрес spender особенно важно проверять.
Пользователь может думать, что разрешает доступ известному сервису, а на самом деле вредоносный сайт предложит подписать Approval для совершенно другого адреса.
Обычное подключение кошелька само по себе обычно не даёт сайту права тратить ваши токены.
Например, после подключения сайт может увидеть:
публичный адрес;
выбранную сеть;
публичный баланс;
другие данные, доступные через блокчейн.
Но право на использование токенов появляется только после соответствующего разрешения или другой авторизующей подписи/транзакции.
Поэтому:
Connect Wallet ≠ Approval
и
Approval ≠ обычный просмотр баланса.
Некоторые приложения предлагают не разрешение на конкретную сумму, а практически неограниченный allowance.
Например, вместо:
Разрешить 100 USDT
создаётся очень большое разрешение, которое интерфейс может показывать как:
Unlimited USDT
Зачем это делают?
Чтобы пользователю не приходилось каждый раз платить комиссию за новый Approval.
Это удобно.
Но есть и риск.
Если контракт окажется вредоносным или будет скомпрометирован, большое активное разрешение может увеличить потенциальный объём средств, доступных для списания.
На кошельке:
5 000 USDT
Пользователь выдаёт неизвестному контракту:
Unlimited Approval
Сегодня он использует сервис для обмена 50 USDT.
Через неделю на этот же адрес поступает ещё 3 000 USDT.
Старый Approval при этом может оставаться активным.
То есть разрешение не обязательно исчезает после одной операции.
Именно поэтому важно контролировать старые allowances.
Это важное отличие.
Когда пользователь выдаёт Approval, он не раскрывает seed-фразу или приватный ключ.
Но он сам подписывает blockchain-транзакцию, которая предоставляет определённые права другому адресу.
Поэтому средства могут оказаться под угрозой даже без кражи seed-фразы.
Злоумышленнику иногда достаточно убедить пользователя самостоятельно подтвердить опасное разрешение.
Типичная схема может выглядеть так:
Пользователь видит сайт с предложением:
«Получите бесплатный airdrop»
или
«Подтвердите кошелёк»
Он подключает кошелёк.
Сайт предлагает нажать:
Approve
Пользователь подтверждает операцию, не проверяя детали.
В результате разрешение получает адрес злоумышленника или вредоносный контракт.
Дальше токены могут быть списаны в пределах предоставленного allowance.
Перед подтверждением кошелёк обычно показывает информацию об операции.
Нужно обращать внимание на:
какой токен используется;
какую сумму разрешают;
какому spender выдаётся доступ;
какая сеть выбрана;
действительно ли вы сейчас ожидаете Approval.
Если вы просто заходите на сайт, а он неожиданно просит разрешить использование всех ваших USDT — это повод не подтверждать операцию, пока не станет понятно, зачем она нужна.
Обычный перевод:
Ваш кошелёк → отправляет 100 USDT → получателю
Approval:
Ваш кошелёк → разрешает контракту использовать до 100 USDT
То есть при Approval сами токены могут пока оставаться на вашем адресе.
Меняется именно право другого адреса взаимодействовать с ними в пределах разрешённой суммы.
Допустим, вы разрешили контракту использовать:
1 000 USDT
а затем обменяли только:
200 USDT
В зависимости от механики токена и контракта оставшийся allowance может по-прежнему существовать.
Поэтому после использования DeFi-сервисов у одного кошелька со временем может накопиться много старых разрешений.
Да.
Allowance можно изменить.
Обычно пользователь может:
уменьшить разрешённую сумму;
установить allowance в 0;
выдать новое разрешение.
Установка allowance в ноль обычно называется revoke approval.
Это не возвращает уже списанные средства, но прекращает дальнейшее использование токенов через конкретное разрешение.
В некоторых кошельках есть собственный раздел для approvals.
Также существуют blockchain explorers и специализированные интерфейсы, позволяющие проверить:
каким контрактам были выданы разрешения;
для каких токенов;
какой установлен лимит;
остаётся ли разрешение активным.
При работе с такими инструментами лучше использовать проверенные сервисы и внимательно смотреть, что именно вы подписываете.
Не обязательно автоматически удалять абсолютно всё.
Некоторые разрешения нужны сервисам, которыми пользователь регулярно пользуется.
Но имеет смысл периодически проверять:
неизвестные контракты;
сервисы, которыми вы больше не пользуетесь;
Unlimited Approval;
разрешения на значительные суммы.
Чем меньше ненужных активных разрешений, тем меньше потенциальная поверхность риска.
В некоторых токенах есть механизм, позволяющий выдавать разрешение через криптографическую подпись вместо отдельной обычной approve-транзакции.
Также существуют системы вроде Permit2, которые используются некоторыми приложениями для управления разрешениями.
Для пользователя смысл остаётся похожим:
подпись может предоставить право на использование токенов.
Поэтому ошибочно считать, что безопасно всё, что не выглядит как обычная отправка средств.
Не каждая подпись опасна.
Многие сайты используют подпись только для авторизации:
«Докажите, что вы владеете этим адресом».
Но некоторые подписи могут быть связаны с разрешениями или последующими операциями.
Поэтому нельзя автоматически считать:
«Это всего лишь Sign, значит деньги точно не затрагиваются».
Всегда важно понимать содержание запроса.
Если вы заметили неизвестное разрешение, стоит действовать быстро.
Обычно разумная последовательность такая:
Не взаимодействовать с подозрительным сайтом дальше.
Проверить активные allowances.
Отозвать подозрительное разрешение.
Проверить историю транзакций.
Убедиться, что токены ещё находятся на адресе.
Если есть основания считать приватный ключ или seed-фразу скомпрометированными, одного revoke уже недостаточно — это отдельная, более серьёзная ситуация.
При обычном обмене через IXIDE не следует подтверждать неизвестные Token Approval или подключать кошелёк к сторонним сайтам только потому, что кто-то представился поддержкой.
Если при выполнении сторонней операции кошелёк предлагает:
Approve USDT
обратите внимание:
какой сервис запросил разрешение;
какому контракту оно выдаётся;
на какую сумму;
в какой сети.
Для обычной проверки TXID, статуса заявки или получения информации о переводе предоставлять стороннему человеку право распоряжаться токенами не требуется.
Перед каждым Approval задайте себе три вопроса:
Какому контракту я даю доступ?
К какому токену?
На какую сумму?
Если вы не можете ответить хотя бы на один из них — лучше не подтверждать операцию, пока вы не разберётесь, что именно запрашивается.
Token Approval — это не перевод токенов, а разрешение другому адресу или контракту использовать их.
Запомните:
Connect Wallet — подключение кошелька.
Approve — выдача разрешения.
Allowance — размер этого разрешения.
Revoke — его отзыв.
И главное правило для новичка:
не подтверждайте Token Approval автоматически. Сначала проверьте токен, spender и размер разрешения.