BTC/RUB6 330 717 ETH/RUB188 133 USDT/RUB81,50 TON/RUB164 BNB/RUB55 408 XMR/RUB31 262 BTC/RUB6 330 717 ETH/RUB188 133 USDT/RUB81,50 TON/RUB164 BNB/RUB55 408 XMR/RUB31 262

Как читать tx перед подписью в MetaMask 2026: calldata, simulate, blowfish

Большинство потерь крипто-юзеров — из-за подписи tx без проверки. Как читать calldata, использовать simulate-сервисы (Blowfish, Wallet Guard, Pocket Universe).

Опубликовано 03.05.2026

Когда фишинг-сайт даёт вам подписать tx и вы видите в MetaMask что-то типа «MetaMask is requesting your signature» с непонятным hex-кодом — это критический момент. Большинство drainer-атак работают именно здесь: пользователь подписывает tx, не понимая что подписывает, и через 10 секунд кошелёк пуст. Разбираемся, как читать tx до подписи и какие сервисы помогают.

Что такое calldata

Calldata — закодированные данные, которые вы отправляете smart-контракту. Это что именно вы просите контракт сделать + с какими параметрами.

Пример. Когда вы вызываете «approve USDT to Uniswap router for unlimited amount» — calldata выглядит как:

«0x095ea7b3000000000000000000000000c0a47dfe...00000000000000000000ff...»

Раскодировать:

Если вы не понимаете эти 4 байта — у вас нет шансов отличить «approve to Uniswap» от «approve to drainer». Они выглядят одинаково в hex.

Как читать calldata в MetaMask

MetaMask с 2023 показывает Decoded transaction для известных контрактов:

Что проверять:

1. Function name. Должно быть то, что вы ожидаете. Если вы хотели сделать swap, а вижу «setApprovalForAll» — не подписывайте, это NFT-drainer.

2. Spender / target address. Сравните с известным адресом протокола. Uniswap router в Ethereum — «0xE592427A0AEce92De3Edee1F18E0157C05861564» (V3) или «0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af» (V4). Если другой адрес — могут быть поддельный контракт под видом «Uniswap».

3. Amount. Если видите unsigned int максимум («115792089237316195423570985008687907853269984665640564039457584007913129639935» или «2^256 - 1») — это unlimited approve. Опасно. Можно установить лимит самостоятельно (только нужное количество).

4. Recipient (для transfer). Адрес куда уходят токены. Внимательно сверьте с тем, кому вы хотели отправить.

Симуляция tx через сторонние сервисы

В MetaMask нет встроенной симуляции «что произойдёт если я подпишу». Сторонние сервисы решают это:

Blowfish

Расширение для Chrome / Firefox. Перехватывает tx-popup MetaMask, показывает:

Бесплатное. Покрытие — основные сети (Ethereum, Arbitrum, Polygon, BSC, Base, Optimism).

Wallet Guard

Аналог Blowfish, ещё немного фокус на phishing-detection. Сравнивает домен сайта с known-good. Базы phishing-доменов обновляются автоматически.

Pocket Universe

Премиум ($5/мес), глубже simulation, лучшая поддержка NFT-операций. Если активно работаете с NFT — стоит того.

Tenderly Simulator (для опытных)

Бесплатный web-инструмент. Введите calldata, contract address, from-address — получаете полный trace выполнения, какие токены двигаются. Не интегрирован в кошелёк, но полезно для review подозрительных tx перед подписью.

Опасные паттерны — что должно вас остановить

setApprovalForAll(true) — даёт оператору контроль над ВСЕМИ вашими NFT в коллекции. Используется legitimately только в OpenSea/Blur/Magic Eden. На любом другом сайте — drainer.

approve(spender, max_uint256) — unlimited approve на стейблкоин. Всегда ограничивайте сумму.

permit / permit2 + transferFrom — gasless approve. Drainer может попросить вас «sign permit», и потом прозрачно списать токены без вашей второй подписи. Проверяйте permit-amount и spender.

multicall с десятком вложенных операций — drainer может скрыть «transfer all your USDT» в третьей внутренней вызове. Отдельные сложные tx подписывайте только если явно понимаете каждый шаг.

EIP-712 typed data signing — сложнее calldata, легче спрятать. Если видите длинный JSON в подписи — внимательно проверяйте domain, type, message. Особенно если речь о Seaport (OpenSea), Uniswap permit, EigenLayer delegate.

Как настроить защиту здесь и сейчас

За 5 минут:

  1. Установите Blowfish (бесплатно, Chrome Store)
  2. Включите Wallet Guard как backup
  3. В MetaMask Settings → Advanced → Show conversion in test networks: Off, Show advanced reset option: On
  4. Регулярно делайте «revoke.cash» cleanup ваших активных approve

За 30 минут:

  1. Создайте отдельный hot-wallet для DeFi-операций. Держите там минимум, не основной холд.
  2. Основной холд переведите на hardware wallet (Ledger, Trezor) или smart-account (Account Abstraction →).
  3. Настройте Etherscan custom RPC через Flashbots Protect для Ethereum L1 (MEV-защита →).

Что делать если вы уже подписали что-то подозрительное

1. Немедленно зайдите на revoke.cash, подключите кошелёк, посмотрите все active approve. Отзовите всё подозрительное.

2. Переведите крипту на новый адрес если вы дали approve на USDC/USDT/любой ERC-20. Drainer может прийти не сейчас, а через дни/недели.

3. Если уже сняли средства — публичные адреса drainer'а часто известны (chainabuse.com, scamniffer). Подайте репорт в Tether/USDC — иногда они блокируют дренер-адреса (особенно USDC, который не stand 100% censorship-resistant).

4. Налоговые и юридические аспекты: Если суммы значительные — есть смысл записать инцидент в полицию (заявление в РФ принимают в 1-2% случаев) и Chainalysis Reactor (для будущей трассировки).

Чек-лист перед каждой подписью

Дальше

🛡

Проверь крипту перед обменом

AML-анализ кошелька за 1-5 минут. $1-3. Не дай бирже заморозить депозит из-за «грязных» монет в истории.

Связанные разделы

Читайте также