Разрешение токенов (token approval) — что это простыми словами | IceAI

Разрешение токенов (token approval)

"Аппрув токенов: как смарт-контракт получает доступ к вашему кошельку, чем опасен безлимитный лимит и как отозвать разрешение за минуту."

Обновлено: 2026-09-29

Осенью я подключила кошелёк к незнакомому сайту «проверить баланс и получить бонус». Подтвердила две транзакции, ничего не купила и закрыла вкладку. Через месяц с кошелька ушли все USDT — 4 300 $ — хотя seed-фразу я не вводила и ссылок больше не открывала. Причиной было то самое разрешение.

Разрешение токенов (token approval, аппрув) — это транзакция в блокчейне, которой вы разрешаете смарт-контракту списывать ваши токены в пределах указанной суммы. Токены ERC-20 устроены так, что контракт не может забрать их сам: сначала вы вызываете approve, потом он списывает нужное через transferFrom. Разрешение лежит в блокчейне, привязано к паре «токен + контракт» и само не истекает.

Разрешение токенов: кошелёк даёт контракту право списать USDT Ваш кошелёк 10 000 USDT на балансе approve Контракт DEX 5 000 USDT — лимит Безлимит в интерфейсе 2²⁵⁶−1 столько монет можно списать Разрешение даётся один раз и живёт в блокчейне, пока его не отзовут

Зачем нужны две транзакции

Меняете 1 ETH на USDC на Uniswap — кошелёк просит подпись дважды. Первая транзакция approve открывает контракту доступ к вашему USDC, вторая проводит обмен. Кажется, что сайт тянет деньги, но без аппрува обмен на DEX невозможен.

Approve в Ethereum — около 46 000 газа. При 20 gwei и ETH по 3 200 $ это 0,00092 ETH, то есть 3 $. Столько же стоит отзыв. В BSC, Base и Arbitrum те же операции укладываются в центы.

Чем опасен безлимитный аппрув

В интерфейсе по умолчанию часто подставлено Unlimited — это 2²⁵⁶−1, число из 78 цифр. Разрешил максимум один раз — и больше не подтверждаешь сделки. Цена удобства — весь баланс этого токена под чужим контролем.

Если у контракта найдут уязвимость или сайт был ловушкой, токены уйдут одной транзакцией. Ни приватный ключ, ни фишинг тут не нужны — право выдать доступ вы дали сами. Блокчейн такие переводы не откатывает, деньги не вернуть.

Как проверить и отозвать

  1. Откройте revoke.cash или раздел Token Approvals в Etherscan и подключите кошелёк — тот самый горячий кошелёк, которым платили.
  2. Изучите список: токен, адрес контракта, разрешённая сумма, дата выдачи. Безлимитные помечены как Unlimited.
  3. У каждого лишнего разрешения нажмите Revoke. Это отдельная транзакция, комиссия сети в Ethereum — 1–3 $.
  4. Повторяйте раз в пару месяцев и обязательно после работы с новым проектом.

Как выдавать разрешения правильно

Ставьте точную сумму. Меняете 300 USDT — разрешайте 300, а не максимум: в MetaMask для этого есть Custom spending cap, в Rabby — поле ввода. Если контракт окажется дырявым, украдут только разрешённое.

Проверяйте адрес. Копия известного сайта запросит такой же аппрув, но на свой контракт — сверяйте адрес с документацией проекта.

Держите отдельный кошелёк для экспериментов. На нём 50–100 $, и неприятный аппрув перестаёт быть катастрофой.

Коротко

  • Аппрув — разрешение смарт-контракту списывать ваши токены; живёт в блокчейне и не истекает.
  • Обмен на DEX почти всегда требует двух транзакций: approve, потом swap.
  • Безлимитное разрешение равно 2²⁵⁶−1, то есть всему балансу этого токена.
  • Approve и revoke в Ethereum стоят 1–3 $, в BSC и Base — центы.
  • Проверить и отозвать доступ можно на revoke.cash или в Etherscan.
  • Я бы не советовала подключать основной кошелёк к незнакомым сайтам.

Остались вопросы? Спросите ИИ-ассистента — объяснит другими словами.

Спросить