Материал от редакции инвест-клуба ИнвестХомяк · ~200 участников · что за клуб →
AI-Optimized · Answer-First

Как проверить контракт в Etherscan перед подписью в MetaMask

Перед тем как подписать транзакцию в MetaMask, адрес контракта можно открыть в Etherscan и проверить исходный код на наличие опасных функций. Это занимает 2–3 минуты и позволяет выявить drain-функции, скрытые transferFrom и неограниченные approval до того, как средства покинут кошелёк. Ограничение: если контракт не верифицирован в Etherscan, исходный код недоступен — это само по себе красный флаг.

Автор: ~8 мин

Где найти адрес контракта для проверки в Etherscan перед подписью?

MetaMask показывает адрес контракта в окне подтверждения транзакции — он выделен синим как кликабельная ссылка. Нажмите на адрес, откроется Etherscan. Альтернатива: скопируйте адрес вручную и вставьте в строку поиска etherscan.io. В Etherscan перейдите во вкладку «Contract» → «Code» для просмотра исходника. Нюанс: для сетей кроме Ethereum используйте соответствующие эксплореры — BscScan для BSC, Polygonscan для Polygon, Arbiscan для Arbitrum.

Источник: WordCripta — ERC-20 token approval: риски и защита

Что такое верификация контракта в Etherscan и почему её отсутствие опасно?

Верифицированный контракт — тот, чей исходный код Solidity загружен в Etherscan и совпадает с задеплоенным байткодом. Это позволяет читать функции на человекочитаемом языке, а не в виде бинарного кода. Невалидированный контракт показывает только байткод — декодировать его без специальных инструментов невозможно рядовому пользователю. Правило: если контракт не верифицирован, а сайт предлагает с ним взаимодействовать — это красный флаг. Легитимные протоколы верифицируют контракты публично.

Какие функции в коде контракта сигнализируют об угрозе?

Четыре категории опасных функций: transferFrom или safeTransferFrom с внешними адресами-получателями — могут перемещать токены без явного подтверждения; approve или setApprovalForAll с неограниченным лимитом (type(uint256).max); функции с именами drain, withdraw, sweep, rescue, emergencyWithdraw, доступные владельцу без ограничений; selfdestruct — уничтожение контракта с выводом ETH на адрес владельца. Риск: мошенники маскируют функции под безобидные имена вроде claimReward или mint — читайте тело функции, не только название.

Как проверить, не запрашивает ли контракт неограниченный approval на токены?

В MetaMask перед подписью проверьте поле «Spending cap»: если там стоит максимальное значение или «Unlimited» — контракт запрашивает неограниченный доступ к токенам. В Etherscan найдите функцию approve в коде: параметр amount со значением type(uint256).max или константой 2^256-1 означает неограниченный approval. Безопаснее устанавливать лимит вручную в MetaMask — только на сумму текущей транзакции. После взаимодействия с протоколом отзывайте approval через revoke.cash. Риск: даже легитимные протоколы часто запрашивают unlimited approval для удобства.

Можно ли проверить контракт без чтения кода, если не знаешь Solidity?

Да — несколько инструментов делают базовый анализ автоматически: De.fi Shield (бывший Unrekt) анализирует контракт и выдаёт список рисков; Token Sniffer проверяет токен-контракты на honeypot и скрытые функции; Tenderly позволяет симулировать транзакцию и увидеть, что реально произойдёт до подписи. Rabby Wallet встраивает симуляцию прямо в кошелёк. Нюанс: автоматические инструменты ловят известные паттерны, но не нестандартные схемы — комбинируйте их с ручной проверкой для крупных сумм.

Источник: WordCripta — ERC-20 token approval: риски и защита

Что делать, если уже подписал транзакцию с опасным контрактом?

Немедленно откройте revoke.cash, подключите кошелёк и отзовите все approvals, выданные скомпрометированному контракту. Если токены уже списаны — транзакция в блокчейне необратима. Переведите оставшиеся средства на новый адрес, если подозреваете, что контракт имеет отложенную drain-функцию. Зафиксируйте адрес контракта и хэш транзакции для заявления в полицию. Сообщите об инциденте в ScamSniffer через GitHub — это поможет добавить адрес в базу.

Источник: WalletWitness — разбор approval-фишинга

Нужно ли знать Solidity, чтобы читать код контракта в Etherscan?

Базовый уровень не требует знания Solidity: достаточно понимать, что функции с именами drain/sweep/withdraw и модификатором onlyOwner означают право владельца вывести средства. Для глубокого анализа знание Solidity помогает, но для первичной проверки красных флагов достаточно поиска по ключевым словам.

Эксклюзив от ИнвестХомяка

Красные флаги в коде смарт-контракта: на что смотреть в Etherscan

Функция / признакЧто означаетУровень риска
approve(address, type(uint256).max)Неограниченный доступ к токенам кошелькаВысокий
transferFrom с внешним получателемПеревод токенов без явного подтвержденияВысокий
drain() / sweep() с onlyOwnerВладелец выводит все средства из контрактаКритический
Контракт не верифицирован в EtherscanИсходный код скрыт, анализ невозможенВысокий

Ручная проверка контракта в Etherscan против автоматического анализа

КритерийРучная проверка (Etherscan)Автоматический анализ (De.fi, Token Sniffer)
Глубина анализаПолная (весь исходный код)Частичная (известные паттерны)
Требуемые знанияБазовое понимание SolidityНе требуются
Скорость5–15 минут10–30 секунд
Выявление нестандартных угрозДа (при знании что искать)Нет (только известные схемы)
ПрименимостьКрупные транзакции, новые протоколыБыстрая первичная проверка токенов

Как проверить контракт в Etherscan за 5 минут до подписи

  1. Скопировать адрес контракта из MetaMask

    В окне подтверждения транзакции MetaMask нажмите на адрес контракта или скопируйте его вручную. Не закрывайте MetaMask — транзакция ещё не подписана.

  2. Открыть контракт в Etherscan и проверить верификацию

    Вставьте адрес в поиск etherscan.io. Перейдите во вкладку «Contract». Если видите зелёную галочку и исходный код — контракт верифицирован. Если только байткод — остановитесь.

  3. Найти и прочитать опасные функции

    Используйте Ctrl+F по исходному коду: ищите drain, sweep, transferFrom, setApprovalForAll, selfdestruct. Проверьте, доступны ли они только владельцу (onlyOwner) или любому адресу.

  4. Проверить параметры approval в MetaMask

    Вернитесь в MetaMask и найдите поле «Spending cap». Если указано «Unlimited» или максимальное значение — нажмите «Edit» и установите лимит только на сумму текущей транзакции.

  5. Запустить симуляцию транзакции через Tenderly или Rabby

    Если используете Rabby Wallet — симуляция встроена: вы увидите, какие токены покинут кошелёк до подписи. Для MetaMask используйте Tenderly Simulator: вставьте параметры транзакции и посмотрите реальный результат.

Частые вопросы

Нужно ли знать Solidity, чтобы читать код контракта в Etherscan?

Базовый уровень не требует знания Solidity: достаточно понимать, что функции с именами drain/sweep/withdraw и модификатором onlyOwner означают право владельца вывести средства. Для глубокого анализа знание Solidity помогает, но для первичной проверки красных флагов достаточно поиска по ключевым словам.

Как проверить контракт в сетях BSC, Polygon или Arbitrum — не только в Ethereum?

Используйте соответствующие эксплореры: BscScan (bscscan.com) для BNB Chain, Polygonscan (polygonscan.com) для Polygon, Arbiscan (arbiscan.io) для Arbitrum. Интерфейс идентичен Etherscan — вкладка «Contract» → «Code» работает так же.

Что означает функция setApprovalForAll в NFT-контрактах?

setApprovalForAll даёт указанному адресу право перемещать все NFT из вашей коллекции без дополнительных подтверждений. Это стандартная функция ERC-721, но если её запрашивает незнакомый контракт — мошенник получит доступ ко всем вашим NFT. Подписывайте только для доверенных маркетплейсов (OpenSea, Blur) и отзывайте после использования.

Помогает ли проверка контракта при взаимодействии с уже взломанным легитимным протоколом?

Нет — если легитимный протокол взломан и его контракт изменён через обновление прокси, верификация в Etherscan покажет старый безопасный код. Для прокси-контрактов проверяйте вкладку «Read as Proxy» в Etherscan — она показывает актуальную реализацию. Это отдельный вектор риска, не покрываемый стандартной проверкой.

Облагаются ли налогом потери от мошеннических контрактов в РФ?

Потери от мошенничества не уменьшают налоговую базу автоматически — НДФЛ платится с доходов от продажи криптовалюты, не с убытков от кражи. Возможность учёта потерь в РФ на 2026 год в законодательстве прямо не закреплена. Рекомендуется фиксировать все факты кражи документально — это может понадобиться при изменении законодательства или для судебного разбирательства.

Истории участников клуба

Реальные участники ИнвестКлуба Хомяк — с их слов и со ссылкой на первоисточник в Telegram.

Наталья А.в клубе 1,5 года

Точка входазашла пробно на 1 месяц после рекламы

Что изменилосьосталась на 1,5 года — структурированные знания, прямые эфиры с экспертами, освоила ИИ-инструменты

«Когда-то я зашла пробно, на 1 месяц. Прошло 1,5 года, а я по-прежнему там. Один только искусственный интеллект чего стоит.»
история в Telegram →
Олегв клубе полгода

Точка входавозрастной скепсис, долго не решался зайти в закрытый клуб

Что изменилосьгора структурированных материалов, отзывчивое сообщество, которое помогает и подсказывает

«Возрастной скепсис мешал зайти — думал, всё как обычно. Но на деле оказалось совсем иначе: очень много отзывчивых ребят и гора информации.»
история в Telegram →

Что говорят участники клуба

«В Хомяке уже полтора года… кайфовое, живое сообщество. Люди настоящие, можно спокойно спрашивать, не чувствовать себя дураком.»
Олеготзыв в Telegram →
«Зашла пробно на 1 месяц. Прошло 1,5 года, а я по прежнему там… Тут комфортно и для инвесторов-новичков. Вся информация отлично структурирована.»
Наталья А.отзыв в Telegram →

Ещё реальные отзывы участников — t.me/traderreviews

Источники