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

Короткий ответ — и он неудобный: нет, disconnect не удаляет approvals. Если вы отключили MetaMask от сайта, удалили соединение через WalletConnect или нажали «Disconnect» в настройках dApp — это не значит, что контракт потерял доступ к вашим токенам. Разрешение, выданное смарт-контракту, живёт в блокчейне отдельно от соединения с сайтом. И пока вы его не отозвали — оно активно.
Прежде чем погружаться в детали — быстрый чек-лист. Если хотя бы один пункт про вас, читайте внимательно.
Если это про вас — значит, у вас, скорее всего, есть активные approvals. И disconnect их не убрал.
Это центральный тезис всей статьи, и его нужно понять на уровне ощущения, а не просто как факт.
Представьте такую ситуацию. Вы дали соседу ключ от квартиры, когда уехали в отпуск. Потом вернулись, поменяли дверной замок и убрали соседа из списка контактов. Всё? Нет. Ключ у него остался. И если когда-нибудь появится дубликат замка — он снова подойдёт.
В мире блокчейна это работает точно так же.
Disconnect — это когда вы «закрыли дверь» сайту. Сайт больше не видит ваш адрес в браузере, не может запрашивать новые подписи без вашего ведома. Это полезно, но это только интерфейсное действие. Оно происходит локально: в браузере, в расширении MetaMask, в мобильном кошельке.
Token approval — это запись в блокчейне. Она хранится не на сайте, не в браузере и не в вашем кошельке. Она хранится в самом смарт-контракте токена, в его mapping(address => mapping(address => uint256)) allowances. Это реестр того, кому и сколько вы разрешили потратить.
Revoke — это отдельная ончейн-транзакция, которая обнуляет этот реестр. Пока вы её не сделали — запись живёт.
MetaMask прямо разводит эти два понятия в разные разделы справки: disconnect — это одно действие, revoke allowances — другое. Это не случайность в структуре документации. Это отражение принципиального технического различия.
Именно поэтому disconnect и revoke — не одно и то же. После того как вы отключили кошелёк от dApp, выданные ранее разрешения сохраняются. И если контракт мошеннический или уязвимый — он всё ещё может воспользоваться вашим unlimited allowance.
Большинство ошибок в этой теме возникают из-за смешения трёх принципиально разных вещей. Разведём их раз и навсегда.
Uniswap.org, OpenSea.io, любой DeFi-сайт — это просто веб-страница. Красивый интерфейс, который позволяет вам взаимодействовать с блокчейном удобно. Сайт сам по себе не хранит ваши токены и не имеет доступа к ним. Он лишь помогает вам отправлять транзакции.
Когда вы «отключаете» кошелёк от сайта — вы говорите сайту: «Ты больше не видишь мой адрес». Это ограничение на уровне интерфейса. Сайт теряет возможность инициировать всплывающие окна с запросами подписей.
MetaMask, Trust Wallet, Rabby — это программы, которые хранят ваши приватные ключи и подписывают транзакции. Кошелёк — это не счёт, а подпись. Ваши токены технически живут не «в MetaMask», а по вашему адресу в блокчейне.
Когда вы делаете disconnect в MetaMask — вы разрываете связь между сайтом и кошельком на уровне браузера. Кошелёк перестаёт «предлагать» этот сайт как доверенный источник запросов.
Вот здесь всё и происходит. Смарт-контракт — это программа, задеплоенная в блокчейне. Она работает независимо от сайта. Независимо от того, открыт ли сайт. Независимо от того, подключён ли ваш кошелёк.
Когда вы давали approve — вы подписывали разрешение именно смарт-контракту. Запись об этом сделана в блокчейне. Смарт-контракт не знает и не заботится о том, отключили ли вы сайт в браузере. Ему важна только запись в его реестре allowances.
Именно поэтому что такое DeFi простыми словами — это не просто «финансовые приложения». Это система автономных программ, которые работают без сервера, без посредника и без вашего ведома — если вы дали им право.
Итак, вы нажали Disconnect в MetaMask или удалили сайт из списка подключений. Что убрали, а что осталось?
ERC-20 token approvals. Все разрешения, которые вы когда-либо давали контрактам на операции с вашими токенами, остаются нетронутыми. USDT, USDC, DAI, WETH, любые другие токены — allowances для них продолжают существовать в блокчейне.
Unlimited approvals. Если вы давали неограниченное разрешение (unlimited allowance или unlimited spending cap) — оно остаётся активным в полном объёме. Нет никакой «встроенной экспирации» approve. Он не исчезает через неделю или год. Только через ваш явный revoke.
NFT approvals и setApprovalForAll. Если вы пользовались NFT-маркетплейсом или минтили коллекции — вероятно, вы выдавали setApprovalForAll, разрешение управлять всей коллекцией. Disconnect не затрагивает эти записи. Они остаются в контракте NFT.
Operator permissions. Разновидность NFT approval — разрешение определённому оператору управлять всеми токенами стандарта ERC-1155 на вашем адресе. Также никуда не девается после disconnect.
Permit2-разрешения. Если вы пользовались Uniswap v3/v4 или другими протоколами с Permit2 — у вас могут быть разрешения, записанные внутри Permit2-контракта. Они отдельны от стандартных ERC-20 approvals и также не исчезают при disconnect.
Старые approvals в любых сетях. Ethereum, BNB Chain, Polygon, Arbitrum, Optimism, Base — каждая сеть независима. Disconnect в одной сети не затрагивает approvals в другой. А approvals в каждой из этих сетей не исчезают сами по себе.
| Действие | Что убирает | Что не убирает | Когда использовать |
|---|---|---|---|
| Disconnect | Соединение сайта с кошельком в браузере | ERC-20 approvals, NFT approvals, allowances | После любого посещения dApp — как гигиена |
| Revoke token approval | Конкретный ERC-20 allowance в блокчейне | Другие approvals, NFT разрешения | Когда нужно убрать доступ контракта к токенам |
| Revoke NFT approval | setApprovalForAll или approve конкретного NFT | ERC-20 allowances | После использования маркетплейсов и mint-сайтов |
| Создание нового кошелька | Всё — новый чистый адрес без истории | — | При компрометации seed phrase / private key |
Есть ситуации, когда заблуждение «отключил — значит закрыл» особенно распространено. И именно в них риск наиболее высок.
Вы зашли на Uniswap, сделали своп USDT на ETH и отключили кошелёк. Кажется логичным: операция завершена, сайт не нужен. Но перед свопом вы подписали approve — и если это был unlimited approve, он остался. Контракт Uniswap (или любого другого агрегатора) всё ещё может тратить ваши USDT в рамках выданного разрешения.
Это не значит, что Uniswap украдёт токены. Это значит, что если завтра этот контракт окажется уязвимым или будет взломан — ваш unlimited allowance может быть использован атакующим.
Большинство bridge-протоколов работают через approve: вы разрешаете им взять ваши токены из одной сети, чтобы отправить в другую. После операции вы, возможно, отключились — но approve на bridge-контракт остался. Если этот протокол окажется уязвимым или мошенническим — approve будет работать.
При добавлении в пул ликвидности или во время фарминга вы почти всегда выдаёте approve стейкинг-контракту. Часто — unlimited. Даже после того как вы вывели все активы и «ушли», approve на контракт может оставаться. Отключение от сайта не меняет этого.
Вы заминтили NFT на новом дроп-сайте, порадовались, закрыли вкладку. Но перед минтом сайт мог запросить setApprovalForAll на весь ваш NFT-контракт. Если сайт окажется мошенническим — злоумышленники могут вывести всю коллекцию. Disconnect не поможет: разрешение записано в блокчейне.
Это самый острый сценарий. Человек кликнул по ссылке «claim your whitelist», подключил кошелёк, увидел якобы безобидный запрос разрешения — и подписал. Потом закрыл вкладку и забыл. Но контракт получил unlimited allowance и воспользуется им при первой возможности — или уже воспользовался.
WalletConnect создаёт сессию между мобильным кошельком и dApp. Завершение WalletConnect-сессии («отключение») убирает соединение, но не approvals. Логика та же: сессия и allowance — разные уровни доступа.
Понять угрозу лучше через конкретный механизм.
Атакующий создаёт смарт-контракт, который запрашивает unlimited approve на USDT. Затем делает фишинговый сайт, который выглядит как интерфейс популярного dApp. Пользователь заходит, подключает кошелёк, видит обычный запрос approve — и подписывает. Потом уходит с сайта, возможно даже делает disconnect.
Атакующий не спешит. Контракт уже имеет unlimited allowance. Несколько часов спустя — когда пользователь спит или не следит за уведомлениями — контракт вызывает transferFrom и переводит все USDT с кошелька. Операция выглядит как обычная авторизованная транзакция: ведь allowance был выдан пользователем.
Именно такая схема стоит за большинством крупных DeFi-краж. И именно поэтому отдельные ресурсы ведут публичные реестры approval-based exploits — чтобы пользователи понимали, насколько реальна эта угроза.
Особенно уязвимы кошельки, где лежат стейблкоины. USDT и USDC — ликвидные, их можно мгновенно вывести и обменять. Если у вас там крупный остаток, а approval старый и неограниченный — это не абстрактный риск. Это реальная открытая дверь.
О том, как не потерять крипту в 2026 году и каких ошибок избегать новичкам, — отдельный большой материал. Approval-ловушка там тоже разобрана.
Это практический блок. Вы уже знаете, почему проблема существует. Теперь — где её увидеть.
Самый удобный инструмент для массовой проверки. Поддерживает более 100 сетей, показывает все активные approvals по адресу, позволяет фильтровать по сумме, дате и типу токена.
Алгоритм:
Revoke.cash также отдельно показывает Permit2-разрешения — важная деталь для пользователей Uniswap и аналогичных протоколов.
Каждая крупная EVM-сеть имеет встроенный инструмент проверки approvals:
Введите адрес кошелька, выберите тип токена (ERC-20, ERC-721, ERC-1155), изучите список. Для revoke напрямую через эксплорер — понадобится подключение кошелька.
MetaMask Portfolio (portfolio.metamask.io) имеет раздел управления allowances и spending caps для поддерживаемых сетей: Ethereum, Polygon, BNB Chain, Optimism, Base. Если вы пользователь MetaMask — это удобный способ проверить разрешения в едином интерфейсе без перехода на сторонние сайты.
Approvals в Ethereum и Polygon — это разные записи в разных блокчейнах. Проверка одной сети не даёт информации о другой. Если у вас была активность в нескольких сетях — проверяйте каждую.
Вот полный маршрут действий для тех, кто хочет реально закрыть доступ.
Ethereum, BNB Chain, Polygon, Arbitrum, Base, Optimism, Linea, Avalanche — составьте список. Если не помните — проверьте историю транзакций в каждом эксплорере.
Для каждой сети посмотрите полный список approvals. Обращайте внимание на:
Критерии «опасного» approve:
Сначала — unlimited approvals на USDT, USDC, DAI. Затем — подозрительные разрешения. Затем — старые разрешения неактивным dApp. Затем — NFT approvals.
В том же Revoke.cash переключитесь на ERC-721 и ERC-1155 токены. Найдите setApprovalForAll — особенно от маркетплейсов или mint-сайтов, которыми вы не пользуетесь активно.
После выполнения транзакции обновите список в Revoke.cash или block explorer. Убедитесь, что approve действительно исчез из списка. Если статус не обновился сразу — подождите несколько минут и проверьте снова.
Если вы замечаете неожиданные исходящие транзакции, которые вы не инициировали, — это не проблема approvals, это компрометация кошелька. В таком случае revoke не поможет, нужен срочный перевод активов на новый адрес. Об этом — отдельный раздел ниже.
Если разрешений накопилось много — вот логика расстановки приоритетов.
USDT, USDC, DAI — это деньги. Unlimited allowance на них при значительном балансе — это максимальный риск. Ревокайте в первую очередь, независимо от того, насколько «проверенным» кажется dApp, которому разрешение выдано.
Даже если сам протокол честный — он может быть взломан. А ваш unlimited approve будет работать и в пользу атакующего.
Всё, что было подписано после клика по ссылке из Telegram, Discord, X — если вы не уверены в источнике — удаляйте немедленно. Не ждите, пока что-то пропадёт с баланса. Действуйте превентивно.
Если у вас есть сомнения, насколько безопасно хранить крипту и как правильно выстроить защиту, — начните с как хранить крипту безопасно в 2026 году: там разобраны все уровни защиты — от seed фразы до операционных привычек.
Если вы когда-либо пользовались NFT-маркетплейсами или минтили коллекции на незнакомых сайтах — проверьте этот тип разрешений. setApprovalForAll позволяет контракту перемещать все NFT определённого типа из вашего кошелька. Это один из самых разрушительных типов approve — и один из самых забытых.
Ethereum, BNB Chain, Polygon, Arbitrum, Base, Optimism — проверяйте все. Approvals двухлетней давности в сети, где вы давно не работали, тоже могут представлять риск. Протокол мог быть переписан, заброшен или скомпрометирован — а ваше разрешение всё ещё там.
Если сервис закрылся, сменил владельца или просто вышел из вашего фокуса — его approve вам больше не нужен. Удалите.
Это частый вопрос: если disconnect бесплатный, почему revoke платный?
Disconnect — это локальное действие. Оно происходит в браузере или в интерфейсе кошелька. Никакой транзакции в блокчейне не создаётся. Сеть ничего не знает об этом действии.
Revoke — это ончейн-транзакция. Она записывается в блокчейн. Для её выполнения нужен газ: сетевой ресурс, который оплачивается в нативной валюте сети. В Ethereum это ETH, в BNB Chain — BNB, в Polygon — MATIC и так далее.
Стоимость revoke в разных сетях:
Экономить на revoke в L2-сетях — неразумно: цена вопроса ниже стоимости чашки кофе, а защита несопоставима. В Ethereum mainnet при большом балансе стейблкоинов затраты на revoke также оправданы.
Важный нюанс: если у вас нет нативного токена сети для оплаты газа — revoke выполнить не получится. Это ещё одна причина держать небольшой резерв нативного токена в каждой сети, где вы работаете.
Справедливость требует сказать: disconnect — не бесполезное действие. У него есть своя роль.
Уменьшает поверхность атаки через интерфейс. Если сайт взломан и начинает показывать вредоносные всплывающие окна — disconnect снижает риск случайной подписи вредоносного запроса.
Убирает лишние активные соединения. Список подключённых сайтов — это потенциальные точки входа для атак через скомпрометированные интерфейсы. Регулярный disconnect поддерживает «чистоту» кошелька.
Снижает вероятность фишинга через подменный интерфейс. Если вы отключили кошелёк от устаревшего dApp — его подменной версии сложнее получить от вас новую подпись.
Хорошая привычка цифровой гигиены. Disconnect после каждого посещения dApp — правило, которое стоит выработать. Просто потому что лишние активные соединения не нужны.
Во всех случаях, когда была подписана транзакция approve. Если вы делали своп, bridge, стейкинг, минтинг, добавление ликвидности — approve был. Disconnect его не тронул. Нужен revoke.
Проверьте: есть ли unlimited approve на USDT, USDC или другой токен, который использовался при свапе. Если это был ваш первый своп именно на этом DEX — approve точно есть.
Про механику самого свопа и что происходит под капотом — в отдельном материале.
Bridge-протоколы почти всегда требуют approve перед операцией. Проверьте approvals для bridge-контракта после операции — особенно если использовали новый или незнакомый bridge.
Это самый тревожный сценарий. Проверьте approvals сразу после disconnect. Если вы подписывали что-то на сайте claim — ищите approve от неизвестного контракта. Ревокайте немедленно.
При работе с Bybit в 2026 году или другими централизованными биржами обычно нет approvals в том смысле, в котором мы их обсуждаем: CEX работают иначе. Но если вы подключали MetaMask к биржевому Web3-интерфейсу или DeFi-продукту биржи — approvals могут быть.
Если вы покупали альткоины на DEX — скорее всего, выдавали approve на каждый токен перед свапом. Проверьте, не остались ли unlimited approvals от этих операций.
Самая распространённая и самая дорогостоящая. Disconnect — это начало, а не конец. После него нужна проверка approvals и revoke опасных разрешений.
Если вы проверили Ethereum, но забыли про Polygon и BNB Chain — вы не видите полной картины. Approvals существуют независимо в каждой сети.
В MetaMask есть список Connected Sites — сайты, у которых есть активное соединение. Этот список и список активных allowances — это разные вещи. Сайт может отсутствовать в Connected Sites, но allowance на его контракт всё равно будет активен.
Многие проверяют ERC-20 approvals и успокаиваются. Но ERC-721 (NFT) и ERC-1155 (полуфунгибельные токены) — отдельные типы разрешений, которые нужно проверять отдельно.
Вы ищете «как убрать approve» и переходите на сайт с похожим на Revoke.cash адресом. Там вас просят подключить кошелёк и «сделать revoke» — но вместо этого вы подписываете новый вредоносный approve. Всегда проверяйте адрес сайта в строке браузера. Используйте закладки.
«Потом» в этом контексте — это момент, когда контракт взломан или стал мошенническим. К тому времени «потом» уже поздно. Unlimited approve на стейблкоин с живым балансом — это постоянно открытый риск. Ревокайте сейчас.
Если на кошельке сейчас нет токенов, но вы планируете пополнить его — старые unlimited approvals сразу начнут работать против вас. Чистите разрешения до пополнения, а не после.
Revoke — правильный инструмент при правильной проблеме. Но есть ситуации, когда проблема принципиально другая.
Если вы замечаете, что любой ETH или другой нативный токен, который приходит на ваш адрес, мгновенно уходит на чужой адрес — это признак sweeper bot. Это значит, что ваш private key скомпрометирован: кто-то написал бота, который отслеживает ваш адрес и мгновенно выводит любые входящие средства.
В такой ситуации revoke бессмысленен. Атакующий с вашим private key может снова выдать approve после вашего revoke. Единственное правильное действие — немедленно создать новый кошелёк с новой seed фразой и попытаться перевести остатки, используя флэш-транзакцию.
Если ваша seed фраза попала к третьим лицам — весь кошелёк скомпрометирован. Любое действие с текущим кошельком бессмысленно: атакующий может повторить или отменить что угодно. Нужен новый кошелёк.
О том, что такое seed phrase и почему это главный секрет вашего кошелька, — отдельный детальный материал. Хранение seed phrase — это не паранойя, это базовая необходимость.
Полный алгоритм действий при взломе кошелька — в материале что делать если криптокошелёк взломали в 2026 году. Там разобрано пошагово: что проверить, куда обращаться и как минимизировать ущерб.
Лучшая защита — это не реагирование на уже случившееся, а правильные привычки, которые предотвращают накопление рисков.
Давайте лимитный approve вместо unlimited. При следующем свапе или взаимодействии с DeFi — вручную измените spending cap на конкретную сумму этой операции. Да, в следующий раз придётся повторить. Но unlimited approve на всю жизнь — несопоставимо более высокий риск.
Используйте отдельный кошелёк для DeFi-экспериментов. Основные средства — на одном адресе, с минимумом взаимодействий с dApp. Для экспериментов с новыми протоколами — отдельный кошелёк без значимого баланса. Так даже при компрометации «рабочего» кошелька основные активы в безопасности.
Проверяйте approvals раз в месяц. Revoke.cash открывается за секунду, проверка занимает 5–10 минут. Включите это в рутину — например, одновременно с проверкой балансов.
После любого нового dApp — проверьте, что именно подписали. Не обязательно сразу ревокать — но понять, какой approve был выдан и насколько он обоснован, стоит всегда.
И ещё одна важная практика для тех, кто покупает крипту через разные каналы и работает с несколькими сетями: как купить крипту и сразу вывести на свой кошелёк безопасно — там разобрано, как выстроить маршрут от покупки до хранения с минимальными рисками.
Нет. Disconnect убирает только соединение сайта с кошельком в браузере. Approvals хранятся в блокчейне и требуют отдельного revoke.
Нет. Это принципиально разные действия. Disconnect — локальное, бесплатное, не трогает блокчейн. Revoke — ончейн-транзакция, платная, обнуляет конкретный allowance в блокчейне.
Да. Revoke — это отдельная ончейн-транзакция с network fee / gas fee. В L2-сетях (Arbitrum, Base, Optimism) это стоит копейки. В Ethereum mainnet — дороже, но сопоставимо с обычной транзакцией.
Можно, но это оставляет активными все выданные ранее approvals. Если среди них есть unlimited approve на ликвидные токены — риск сохраняется.
Ничего плохого — пока контракт, которому выдано разрешение, честен и не взломан. Но это «пока». Старые approvals — это накопленный риск, который материализуется при взломе или уязвимости протокола.
Да. Удаление из «Connected Sites» — это disconnect. Approvals, выданные контрактам через этот сайт, остаются в блокчейне.
Нет, они работают на разных уровнях. Disconnect — уровень интерфейса. Revoke — уровень блокчейна. Оба действия полезны, но не взаимозаменяемы.
Теоретически — да, если у контракта, которому выдан approve, есть злой умысел или уязвимость. Unlimited approve на USDT при значительном балансе — это открытое разрешение, независимо от состояния браузерного соединения.
При активном использовании DeFi — раз в месяц. После любого взаимодействия с новым или незнакомым dApp — немедленно. После новости о взломе протокола, которым вы пользовались — в тот же день.
Не срочно, но желательно. Если вы планируете пополнить кошелёк — лучше почистить approvals до того, как там появятся средства. Unlimited approve на пустом кошельке сейчас не опасен, но станет опасным сразу после пополнения.
Одно предложение, которое стоит запомнить: disconnect закрывает дверь, но не меняет замок. Revoke — это смена замка. И пока замок не сменён, старый ключ у чужих рук — работает.
Популярные лонгриды: