Больше не нужно искать — необходимые
обучающие материалы и подсказки всегда под рукой

Есть одна вещь, которую большинство пользователей DeFi делают регулярно и почти никогда не убирают за собой. Это не незакрытые вкладки в браузере и не старые транзакции в истории. Это token approvals — разрешения, которые вы выдаёте смарт-контрактам каждый раз, когда делаете своп, переходите через bridge, минтите NFT или участвуете в airdrop-клейме.
Каждое такое взаимодействие оставляет след: контракт получает право тратить ваши токены. Причём не только один раз и не только прямо сейчас — allowance может висеть активным неделями, месяцами, годами. И если в какой-то момент контракт окажется уязвимым или изначально вредоносным — этот «хвост» из старых разрешений превратится в открытую дверь для вывода всего, что у вас есть.
Как отозвать token approvals — это не экзотический вопрос для продвинутых DeFi-исследователей. В 2026 году это базовая гигиена для любого, кто хоть раз делал своп или нажимал «Claim».
Начнём с фундамента — но не скучно, а с конкретным примером, который сразу ставит всё на своё место.
Вы хотите обменять USDT на ETH через Uniswap. Нажимаете «Swap». Кошелёк показывает два запроса вместо одного. Первый — approve. Второй — собственно транзакция обмена.
Зачем два запроса? Потому что Uniswap — это смарт-контракт. Он не может просто «взять» ваши USDT: это противоречило бы самой логике блокчейна. Чтобы контракт получил возможность двигать ваши токены, вы должны явно это разрешить. Именно это и делает approve: вы говорите токен-контракту USDT — «разреши смарт-контракту Uniswap Router тратить мои токены до такого-то лимита».
Token allowance (разрешение) — это и есть этот лимит. После того как approve подписан, Uniswap Router может тратить ваши USDT в рамках выданного лимита без каждого нового подтверждения.
Звучит разумно? Разумно. Проблема в том, что:
Вот почему тема revoke allowances — это не теория, а практика управления рисками в реальном времени. И вот почему её стоит понять правильно ещё до того, как что-то пойдёт не так.
О том, как устроены DeFi-протоколы в целом и какие риски они несут для начинающего пользователя — читайте в материале DeFi простыми словами и какие риски есть у новичка.
Это центральный тезис статьи. Ошибка, которую совершают очень многие — даже те, кто уже слышал про approvals и знает о рисках.
Когда вы «отключаете» кошелёк от dApp через настройки MetaMask, Coinbase Wallet или другого кошелька — вы убираете активную сессию соединения. Сайт больше не видит ваш адрес, не может инициировать запросы в текущем сеансе.
Это полезно. Но это не отзыв разрешений.
Revoke — это отдельная транзакция в блокчейне, которая устанавливает allowance контракта обратно в ноль (или в ограниченную сумму). Только после этого смарт-контракт теряет право двигать ваши токены.
Ключевое различие: disconnect существует на уровне интерфейса кошелька. Allowance существует в блокчейне. Первое никак не влияет на второе.
Пример, который делает это предельно ясным:
Вы подключили MetaMask к DeFi-протоколу, выдали allowance на USDT, сделали своп. Потом отключили сайт в настройках кошелька — «Disconnect». Всё выглядит чисто. Но allowance на USDT в пользу контракта продолжает существовать в блокчейне Ethereum. Если завтра этот контракт будет взломан — злоумышленник сможет вызвать transferFrom и списать ваш USDT. Потому что блокчейн не знает, что вы «отключились» от сайта.
Coinbase Wallet в своём интерфейсе 2026 года разделяет эти два действия на совершенно разные разделы: Connected dapps (управление сессиями) и Token approvals (управление разрешениями на уровне токенов). Это не случайно — это принципиально разные механики.
| Действие | Что меняется | Где хранится | Влияет на allowance |
|---|---|---|---|
| Disconnect dApp | Отключает активную сессию | В кошельке/браузере | Нет |
| Revoke approval | Сбрасывает allowance в 0 | В блокчейне | Да |
| Установить custom limit | Уменьшает allowance | В блокчейне | Да |
Запомните эту таблицу — она стоит дороже любого «лайфхака».
Практическое понимание темы строится через конкретные сценарии. В каждом из них вы оставляете allowance — и в каждом это стоит проверить после завершения операции.
Это самый частый источник накопленных approvals. Каждый обмен токенов на Uniswap, Curve, 1inch, PancakeSwap — это как минимум один approve на контракт-роутер. Если вы свапаете разные токены через разные DEX — allowances накапливаются.
Важный нюанс: approve часто запрашивается один раз для каждого токена и затем сохраняется. Следующий своп того же токена через тот же роутер не требует нового approve — контракт уже «помнит» разрешение.
О том, что такое своп в криптовалюте простыми словами — подробно разобрана механика обмена и при чём здесь разрешения.
Переход токенов из Ethereum в Arbitrum, из Polygon в Base, через любой другой bridge — это взаимодействие с bridge-контрактом. Он запрашивает approve на токены, которые вы собираетесь перебросить. После bridge токены ушли, но allowance на их контракт мог остаться.
Минтинг NFT — это вызов функции mint() в контракте коллекции. Если минт платный (в ETH или ERC-20) — контракт запросит approve на токен оплаты. Если вы оплачиваете в USDT или USDC — allowance на этот контракт остаётся активным.
Особенно часты risky approvals после минтинга малоизвестных коллекций и новых проектов, чьи контракты ещё никем не верифицированы.
Участие в airdrop-кампании требует взаимодействия с claim-контрактом. Типичный сценарий: вы заходите на сайт, нажимаете «Claim», подтверждаете транзакцию. Иногда перед claim также нужен approve — для протоколов, где claim связан с размещением токенов в пул.
Fake airdrop — один из главных векторов malicious approvals. Мошеннический сайт просит подписать approve под видом «получить бесплатные токены», а контракт затем использует это разрешение для дренирования кошелька.
Размещение токенов в пул ликвидности или стейкинг-контракт требует approve на переносимый актив. После того как вы вывели токены из пула или завершили стейкинг — позиция закрыта, но allowance может оставаться открытым.
Взаимодействие с протоколами кредитования (типа Aave, Compound) предполагает approve на депозит. Даже после полного вывода средств и погашения займов — approve на пул-контракт может сохраняться.
Не каждый approve требует немедленного revoke. Но есть ситуации, когда откладывать это нельзя.
Если вы делали один своп на DEX полгода назад и с тех пор не открывали этот протокол — зачем ему активный allowance на ваши токены? Это лишняя точка риска без какой-либо пользы. Revoke.
Протокол был взломан. Или команда растворилась. Или вы просто услышали тревожные новости. В таких ситуациях действуйте немедленно — revoke всех allowances на этот контракт.
Если при первом свапе вы нажали «Approve all» или «Max» — вы выдали unlimited allowance. Это удобно: больше не нужно подтверждать approve при каждом свапе. Но это же означает, что контракт может в теории списать все ваши токены этого типа за один вызов.
Revoke unlimited allowance и при следующем взаимодействии задайте custom spending cap — лимит, который нужен только для конкретной операции.
Если вы заметили в списке approvals незнакомый адрес контракта без верификации — это тревожный знак. Возможно, это последствие случайного взаимодействия с фишинговым сайтом или fake mint-страницей. Отзывайте немедленно.
Чем больше баланс на кошельке, тем выше цена каждого неотозванного allowance. Для кошельков с крупными суммами ревизия approvals должна быть регулярной практикой — не реже раза в месяц.
Прежде чем отзывать — нужно понять, что именно отзывать. У большинства пользователей список активных allowances куда длиннее, чем они предполагают.
Coinbase Wallet разделяет управление безопасностью на два отдельных блока в настройках.
Token approvals — это раздел, где отображаются все смарт-контракты, которым вы выдали разрешения на конкретные токены. Здесь же показывается тип разрешения: unlimited или конкретная сумма.
Для проверки и отзыва в мобильной версии:
В браузерном расширении путь немного отличается, но логика идентична: раздел управления разрешениями находится в настройках безопасности.
Coinbase Prime Onchain Wallet дополнительно выделяет раздел Token Allowances отдельно от dApp Connections — это важно для корпоративных и институциональных пользователей, которые взаимодействуют с несколькими протоколами одновременно.
В MetaMask начиная с актуальных версий 2025–2026 есть встроенный инструмент просмотра approvals. Для его проверки:
Кроме этого, MetaMask при новом approve показывает предупреждение, если запрашивается unlimited allowance, и предлагает установить custom spending cap. Используйте эту возможность — это прямо снижает будущий risky approvals по этому контракту.
Если интерфейс вашего кошелька не показывает полный список approvals, или вы хотите проверить адрес на другой сети — используйте специализированные approval checker-инструменты.
Принцип работы прост: вы вставляете адрес своего кошелька, выбираете сеть (Ethereum, BSC, Polygon, Arbitrum и т.д.) — и получаете полный список активных allowances с указанием контракта, токена, суммы разрешения и даты последней активности.
Coinbase Wallet прямо упоминает revoke.cash как fallback-инструмент в тех случаях, когда revoke через интерфейс кошелька по каким-то причинам недоступен или неудобен.
Теперь — к практике. Revoke — это транзакция в блокчейне, которая устанавливает allowance обратно в 0. Это не бесплатно: потребуется небольшая комиссия газа в нативной монете сети (ETH для Ethereum, BNB для BSC, MATIC для Polygon и т.д.).
Шаг 1. Откройте кошелёк и перейдите в настройки безопасности/приватности.
Шаг 2. Найдите раздел Token Approvals. Список покажет все активные разрешения по текущей сети.
Шаг 3. Выберите контракт или токен, allowance которого хотите отозвать. Нажмите «Revoke» или «Remove approval».
Шаг 4. Кошелёк сформирует транзакцию revoke. Подтвердите её. Потребуется небольшое количество газа.
Шаг 5. После подтверждения транзакции в блокчейне allowance исчезнет. Проверьте через approval checker, что контракт больше не числится в списке активных.
Если нужно отозвать allowance на другой сети — переключите сеть в кошельке и повторите процедуру.
Шаг 1. В MetaMask откройте три точки (меню) → «Connected sites» для проверки сессий, или перейдите в раздел просмотра разрешений.
Шаг 2. Для отзыва конкретного allowance через MetaMask удобнее использовать approval checker с подключённым кошельком — тогда revoke-кнопка будет инициировать транзакцию напрямую через MetaMask.
Шаг 3. Подтвердите транзакцию отзыва. Стоимость газа на Ethereum — обычно несколько центов при нормальной загрузке сети. В периоды высокой активности — может быть выше.
Если кошелёк не поддерживает прямое управление approvals в интерфейсе:
Шаг 1. Перейдите на инструмент проверки разрешений (revoke.cash или аналог).
Шаг 2. Подключите кошелёк через WalletConnect или браузерное расширение.
Шаг 3. Выберите сеть. Просмотрите список approvals.
Шаг 4. Нажмите «Revoke» рядом с нужным контрактом. Кошелёк запросит подтверждение транзакции.
Шаг 5. Дождитесь подтверждения в блокчейне.
Это реальная ситуация: вы хотите срочно отозвать опасный allowance, но на адресе нет ETH (или нативной монеты сети) для оплаты комиссии.
Решения:
Правило хорошего тона: всегда держите на «рабочем» DeFi-кошельке небольшой запас нативной монеты — не только для свапов, но и для экстренного revoke в случае необходимости.
Это один из самых неочевидных технических нюансов, который регулярно вызывает путаницу и ошибки.
USDT на Ethereum (ERC-20) реализован с особым поведением approve-функции. В стандартном ERC-20-контракте вы можете в любой момент поставить новый allowance поверх старого — новое значение просто перезаписывает предыдущее.
USDT реализован иначе: чтобы снизить риск «double-spend атаки» через approve-race condition, контракт USDT не позволяет изменить ненулевой allowance на другое ненулевое значение напрямую. Попытка это сделать завершится ошибкой транзакции.
Правильный порядок для USDT approve:
Это означает две транзакции вместо одной — и соответственно двойную комиссию газа. Большинство современных DeFi-интерфейсов умеют это обрабатывать автоматически (делают reset за вас). Но если вы видите ошибку при попытке изменить allowance на USDT вручную — именно эта особенность является причиной.
Важно знать и при отзыве старых USDT-разрешений: в некоторых инструментах revoke для USDT выполняется именно через установку allowance = 0, что технически является approve(spender, 0), а не отдельной функцией revoke. Это нормально — результат идентичен.
Revoke — это реактивная мера: вы отзываете то, что уже выдано. Но ещё лучше — изначально выдавать более узкие разрешения.
MetaMask начиная с версии 11+ предлагает при каждом approve-запросе выбор: принять запрошенный лимит (часто unlimited) или установить свой custom spending cap. Если вы свапаете 100 USDT — нет никакого смысла давать бесконечный allowance. Установите 100 USDT или 110 (с небольшим запасом на комиссию) — и контракт получит доступ только к этой сумме.
Да, это потребует нового approve при следующем свапе. Но это означает, что даже при компрометации контракта максимальный ущерб ограничен суммой вашего spending cap, а не всем балансом.
Это структурное решение, которое снижает риск approvals на уровне архитектуры:
Эта схема означает, что даже при худшем сценарии — malicious approval на рабочем кошельке — vault с основными средствами остаётся нетронутым.
О правильных принципах хранения криптовалюты подробнее — где хранить USDT и Bitcoin в 2026 году.
Один раз в месяц — или после каждой DeFi-сессии — проверяйте список активных allowances. Это занимает 5–10 минут, но формирует привычку «прибирать за собой», которая резко снижает накопленный risky approvals.
Особенно важно это делать:
Approvals существуют не только в Ethereum. Каждая EVM-совместимая сеть имеет свои allowances — и они не синхронизированы между собой.
Самая высокая стоимость газа для revoke. При нормальной загрузке сети — 0,5–2 доллара за транзакцию. В периоды пиковой нагрузки может быть выше. Приоритет проверки: высокий, потому что на Ethereum обычно сосредоточены наиболее ценные активы.
Инструменты проверки: Etherscan Token Approvals, revoke.cash, специализированные approval checker.
Газ стоит копейки — revoke практически бесплатен. Проверить approvals: BscScan, revoke.cash с переключением на BSC.
Аналогично BSC: низкая стоимость газа. Проверить: Polygonscan, revoke.cash.
L2-сети с низкими комиссиями. Revoke стоит значительно дешевле, чем в mainnet Ethereum. Проверить: Arbiscan, Optimistic Etherscan, Basescan.
USDT на TRON имеет собственный approve-механизм, отличный от ERC-20. Проверка и отзыв разрешений здесь выполняется через Tron-совместимые инструменты или кошельки с TRC-20 поддержкой (например, TronLink). Важно понимать, что allowances в Ethereum и allowances в TRON — это совершенно разные записи, никак не связанные между собой.
О том, как проверить кошелёк и адрес USDT TRC20 перед переводом — там разобраны все нюансы работы с TRC-20.
Это экстренный сценарий. Время имеет значение: некоторые drainer-контракты активируются немедленно, другие — через задержку или после выполнения условия. Действуйте по следующей схеме.
Не нажимайте ничего на подозрительном сайте. Не подтверждайте другие транзакции. Закройте вкладку.
Проверьте последние транзакции в блокчейн-эксплорере. Посмотрите, на что именно был выдан approve — на какой токен, какому контракту, в каком размере.
Если approve был выдан на unlimited allowance крупного стейблкоина или на SetApprovalForAll для NFT — это критически срочная ситуация.
Не ждите. Revoke через кошелёк или approval checker прямо сейчас. Нужно немного газа — обеспечьте его.
Иногда мошеннический сайт запрашивает несколько approve за одно взаимодействие. Просмотрите весь список allowances через approval checker и отзовите всё, что кажется подозрительным или неизвестным.
Если approve уже был использован контрактом или вы подозреваете это — переведите оставшиеся токены на новый кошелёк, созданный специально сейчас. Не используйте скомпрометированный адрес как основной.
После отзыва allowances проверьте также раздел Connected dApps в кошельке и отключите сайт, который вызвал проблему. Это не отменяет revoke, но устраняет активную сессию.
Подробная инструкция по действиям после подозрительного approve и общей безопасности кошелька — как не потерять крипту в 2026 году.
NFT-разрешения работают немного иначе, чем токен-approvals, и их стоит рассмотреть отдельно.
Стандарт ERC-721 позволяет выдать разрешение на конкретный NFT-токен конкретному адресу. После продажи или передачи этого токена — разрешение становится неактивным автоматически (токен ушёл). Но если вы выставили NFT на продажу на маркетплейсе и потом сняли листинг — approval на этот токен у маркетплейса может сохраняться.
Это разрешение управлять всеми NFT определённой коллекции от вашего имени. Оно необходимо для удобной работы с маркетплейсами (OpenSea запрашивает его для массового управления листингами). Но оно же — наиболее опасное из всех NFT-approvals.
Если SetApprovalForAll был выдан вредному контракту — весь ваш NFT-кошелёк может быть выведен одной транзакцией за секунды.
Рекомендация: после продажи последнего NFT определённой коллекции через маркетплейс — отзовите SetApprovalForAll. Если планируете продавать коллекцию активно — держите разрешение, но только для верифицированных, известных маркетплейсов.
Проверить NFT approvals можно через те же approval checker-инструменты — большинство из них имеют отдельную вкладку для ERC-721 и ERC-1155 разрешений.
Зная о типичных ошибках, проще их не совершать.
Ошибка 1. Считают disconnect = revoke. Уже разобрали подробно. Disconnect — это сессия в браузере. Revoke — это блокчейн.
Ошибка 2. Оставляют unlimited allowances после разового использования. Если вы один раз купили NFT за USDT — зачем контракту бесконечный доступ к вашим USDT? После операции — revoke.
Ошибка 3. Не проверяют старые approvals месяцами. Через 6 месяцев активных DeFi-операций список allowances может достигать десятков позиций по нескольким сетям. Ревизия раз в месяц — минимум.
Ошибка 4. Держат весь баланс в DeFi-кошельке. Если кошелёк, которым вы взаимодействуете с dApp, хранит и основные средства — risky approvals там в разы опаснее.
Ошибка 5. Думают, что известный dApp = вечно безопасный approve. Даже у крупных протоколов случаются уязвимости. Approve, выданный год назад, остаётся действующим и сегодня — даже если протокол с тех пор сменил контракт.
Ошибка 6. Не держат газ для revoke. В критической ситуации отсутствие ETH для транзакции revoke — это прямая потеря денег. Небольшой резерв нативной монеты на рабочем кошельке — это страховка.
Ошибка 7. Путают token approval и message signing. Подпись сообщения (Sign Message) не создаёт on-chain allowance — это off-chain подпись. Но permit (EIP-2612) — это подпись сообщения, которая впоследствии используется как approve. Важно понимать разницу.
Ошибка 8. Не используют custom spend limit. Когда кошелёк предлагает выбор — unlimited или custom — большинство жмут «Max» для удобства. Это многократно расширяет риск при компрометации контракта.
Ошибка 9. Не знают об особенности USDT approve-flow. Ошибка при попытке изменить allowance USDT напрямую вводит пользователей в замешательство. Нужно сначала установить 0, потом новое значение.
Ошибка 10. Не проверяют NFT approvals отдельно. Token approvals и NFT approvals — это разные записи в разных контрактах. Один инструмент может показывать только одно из них.
Эти советы — выжимка из всего сказанного выше. Применяйте их как регулярный чеклист.
1. После каждого DeFi-взаимодействия — проверяйте, какие approvals остались. Особенно после swap, bridge, mint и claim.
2. Для разовых операций задавайте custom spending cap. Unlimited allowance — это удобство, которое стоит вам потенциально всего баланса. Установите лимит, равный сумме операции.
3. Проверяйте Token approvals и Connected dApps отдельно. Это разные разделы в кошельке, разные механики, разные риски.
4. Для незнакомых dApp — только burner wallet. Никаких основных активов при первом взаимодействии с новым протоколом.
5. Держите резерв нативной монеты. ETH, MATIC, BNB — немного, но всегда. Это ваш «пожарный кран» для экстренного revoke.
6. Если approve кажется подозрительным — действуйте немедленно. Каждая минута промедления — риск.
7. Регулярная ревизия allowances. Раз в месяц, по всем сетям. Это не паранойя — это гигиена.
8. Для USDT помните о двухшаговом approve. Сначала 0, потом новое значение. Иначе транзакция не пройдёт.
9. Используйте fallback-инструменты (revoke.cash и аналоги) если кошелёк не показывает approvals напрямую.
10. Чистый кошелёк — меньший risk surface. Чем меньше активных allowances, тем меньше возможных точек компрометации.
О том, что такое адрес кошелька в криптовалюте и чем он отличается от private key — там разобраны базовые понятия, необходимые для понимания механики разрешений.
Что такое token approval простыми словами?
Это разрешение, которое вы даёте смарт-контракту тратить ваши токены. Необходимо для swap, bridge, mint, staking и других DeFi-операций. Хранится в блокчейне и действует до тех пор, пока вы его не отзовёте.
Чем allowance отличается от обычного подключения кошелька?
Подключение (connect) даёт сайту возможность видеть ваш адрес и инициировать запросы в текущей сессии. Allowance — это on-chain разрешение контракту тратить ваши токены. Disconnect убирает сессию, но не трогает allowances.
Что такое revoke allowances?
Это транзакция в блокчейне, которая сбрасывает allowance контракта до нуля. После этого контракт теряет право двигать ваши токены. Revoke требует небольшой комиссии газа.
Нужно ли делать revoke после каждого swap?
Не обязательно после каждого, если вы регулярно пользуетесь одним DEX. Но unlimited allowance на контракт, которым вы больше не пользуетесь — стоит отозвать. Оптимально: проверять раз в месяц и убирать лишнее.
Чем revoke отличается от disconnect dApp?
Disconnect убирает активную сессию (интерфейс кошелька). Revoke — это транзакция в блокчейне, которая отзывает on-chain разрешение. Одно не заменяет другое.
Может ли старый approval привести к краже токенов?
Да. Если контракт, которому вы выдали unlimited allowance, был взломан или изначально является malicious — он может вызвать transferFrom и списать все разрешённые токены. Именно поэтому revoke устаревших и ненужных allowances критически важен.
Почему revoke стоит газа?
Потому что revoke — это транзакция в блокчейне. Установка allowance = 0 — это вызов функции approve(spender, 0) в смарт-контракте токена. Любая запись в блокчейн требует оплаты комиссии сети.
Что делать, если я уже дал вредный approval?
Немедленно revoke. Затем проверьте все остальные allowances. При необходимости выведите активы на чистый адрес. Не используйте скомпрометированный кошелёк как основное хранилище.
Почему у USDT иногда нужно сначала сбросить allowance до 0?
Из-за особенности реализации контракта USDT на Ethereum: нельзя изменить ненулевой allowance на другое ненулевое значение напрямую. Нужна двухшаговая процедура: сначала approve(spender, 0), потом approve(spender, новая_сумма).
Какой минимум нужно проверять после mint, bridge и swap?
Минимум: зайти в approval checker, проверить новые allowances по сети операции, убедиться, что unlimited разрешения выданы только известным проверенным контрактам. Лишние — отозвать.
Популярные лонгриды: