Транзакция зависла или не прошла: 10 причин (gas limit, nonce, base fee) и что делать
13-12-2025, 02:44
Авторизуйтесь или зарегистрируйтесь, чтобы оценивать материалы, создавать записи и писать комментарии.
Авторизоваться© 2026 24k.ru. Все материалы носят исключительно информационный характер и не являются индивидуальной инвестиционной рекомендацией (ФЗ-39 «О рынке ценных бумаг»). Криптовалюты не являются законным средством платежа в РФ (ФЗ-259). Используя сайт, вы соглашаетесь с нашей Политикой конфиденциальности и использованием cookie.
Блок-эксплорер (Etherscan/Arbiscan/Basescan и аналоги) — это ваш «чек» в блокчейне. Если вы хотите проверить транзакцию Ethereum или в L2 (Arbitrum/Optimism/Base/zkSync/Scroll), эксплорер покажет: статус (success/failed), сколько списали комиссии, куда реально ушли средства, какие токены переводились (или не переводились), и какие события записал смарт-контракт (logs).
Проблема в том, что новички часто смотрят только на слово “Success” и делают вывод «всё дошло». А дальше — сюрприз: токен «не пришёл», баланс не изменился, или пришло «что-то не то». В этой статье разберёмся, как читать страницу транзакции правильно и как быстро находить реальную причину.
Вам обычно нужен один из трёх идентификаторов:
Самый быстрый путь: копируете Tx Hash из кошелька/биржи → вставляете в поиск эксплорера нужной сети.
Если вы часто путаете сети (L1 vs L2) и из-за этого «не видите токены», держите под рукой гайд: как добавить сети L2 в кошелёк и почему токены не видны.
| Поле | Что это | Как читать | Типичная ошибка |
|---|---|---|---|
| Status | Результат выполнения | Success = EVM-вызов завершился без revert | Путать “Success” с “токен пришёл” |
| Block / Time | Где и когда включили | Чем больше подтверждений — тем надёжнее | Смотреть только время, игнорируя confirmations |
| From | Кто подписал tx | Это ваш адрес-инициатор | Думать, что From всегда = отправитель токена |
| To | Куда отправили tx | Часто это контракт, а не кошелёк получателя | Ожидать «поступление токена» просто потому что To знакомый |
| Value | Сколько нативной монеты | Для Ethereum/L2 обычно это ETH | Искать USDT/USDC в поле Value |
| Txn Fee | Комиссия | Считается как Gas Used × Effective Gas Price (+ L1 data fee в L2) | Сравнивать комиссии L1 и L2 «в лоб» |
| Nonce | Номер транзакции адреса | Растёт на 1 для каждого отправителя | Игнорировать nonce при “зависла/замена” |
| Method / Input | Что вызвали | transfer/approve/swap/bridge и параметры | Не смотреть Method и ожидать перевод |
| Logs | События контракта | Именно здесь часто видно, что реально произошло | Не открывать logs вообще |
Если хочется зафиксировать термин «транзакция» и что такое “вызов контракта”, полезная базовая статья: https://24k.ru/wiki/terms/transaction.
“Success” означает только одно: транзакция на уровне виртуальной машины (EVM) не откатилась через revert. Но токен мог не прийти, если:
Поэтому в “успешной” транзакции всегда смотрим не только Status, но и блок Token Transfers и/или Logs.
Это самый удобный раздел для новичка: эксплорер показывает события типа Transfer и суммирует их в человекочитаемый вид. Здесь вы видите:
“Internal” — это не отдельная «внутренняя транзакция блокчейна», а результат трассировки исполнения контракта. Она помогает понять, куда контракт переслал ETH или какие вызовы сделал внутри. Для DeFi/мостов это часто полезнее, чем кажется.
Logs — это события, которые контракт записал в ходе выполнения. Классический пример для ERC-20: событие Transfer(address from, address to, uint256 value). Если в Token Transfers пусто, откройте Logs: иногда эксплорер не распознал токен/событие как “Transfer”, но в логах оно есть.
Nonce — это порядковый номер транзакции для адреса-отправителя. Он нужен, чтобы сеть не принимала «повтор» старой транзакции и чтобы транзакции выполнялись в правильном порядке.
Практический смысл nonce проявляется, когда:
Если вы часто сталкиваетесь с зависаниями/ошибками газа/nonce — держите отдельный практикум: Транзакция зависла/не прошла: 10 причин и что делать (если у вас URL отличается — пришлите, я переставлю ссылку на точную).
В Ethereum (L1) комиссия обычно раскладывается на:
В L2 (Arbitrum/Optimism/Base и др.) к этому добавляются компоненты, связанные с публикацией данных на L1 (часто это видно как L1 Data Fee или похожее поле). Поэтому бывает ощущение: “в L2 сегодня дорого” — и это объясняется нагрузкой/данными/моделью сети, а не только “газом”.
| Что видите | Как интерпретировать | Практический вывод |
|---|---|---|
| Gas Used | Факт расхода вычислений | Вы платите за реально потраченный газ |
| Effective Gas Price | Цена газа с учётом base/tip | В пике даже простая операция дороже |
| L1 Data Fee (в L2) | Стоимость данных для L1 | В L2 “дорого” часто из-за данных/пакетирования |
| Причина | Как распознать в эксплорере | Что делать |
|---|---|---|
| 1) Это был approve, а не transfer | Method = approve, Token Transfers пусто | Понимать: approve не переводит токен |
| 2) Вы отправили ETH, а ждёте USDT | Value > 0, токен-переводов нет | Проверить, какой актив отправляли |
| 3) Вы в неправильной сети | Tx найден в другом эксплорере | Открыть tx в эксплорере нужной сети |
| 4) Получатель — контракт, а не ваш адрес | To = контракт, а вы ждёте “в кошелёк” | Смотреть Token Transfers/Logs: кому реально зачислено |
| 5) Токен пришёл, но не отображается в кошельке | В эксплорере баланс/transfer есть | Импортировать токен по контракту в этой сети |
| 6) Вы добавили не тот контракт токена (клон) | Контракт отличается от «официального» | Сверить контракт токена в эксплорере |
| 7) Bridge: вы сделали депозит, но не сделали claim | Есть tx на одной сети, а на второй нет поступления | Проверить шаги моста/claim/finalize |
| 8) Swap/DeFi: токен получен, но другой | В Token Transfers другой токен/маршрут | Открыть событие swap и итоговый output |
| 9) Fee-on-transfer/налоговый токен | Сумма в Transfer меньше ожидаемой | Это особенность токена, не “ошибка сети” |
| 10) Токен “пришёл” как wrapped/bridged версия | Тикер похож, контракт другой | Добавить правильный bridged-токен |
| 11) Address poisoning / подмена адреса | To похож на ваш адрес, но не он | Сверять адрес полностью, не копировать из истории |
| 12) Транзакция success, но событие “Transfer” не было | Logs не содержат Transfer нужного токена | Значит, токен реально не переводился |
Если вы хотите закрыть самый опасный пункт №11 (когда адрес похож, но не тот): Address poisoning и подмена адреса: как проверять получателя, контракт и сеть.
Если вы делаете вывод из L2 обратно в Ethereum L1, у операции может быть несколько стадий (initiate/prove/finalize). На одной сети вы видите Success, но на другой сети «поступления» ещё нет — потому что процесс не завершён.
Отдельный разбор с логикой “почему 7 дней” и где появляются риски доверия: вывод из L2 в Ethereum L1: сроки и ускорение.
Для обычных переводов на практике чаще смотрят на несколько подтверждений, но “достаточно” зависит от сценария и суммы. Главное: пока транзакция не включена в блок (или статус не Success), считать её завершённой нельзя.
Чаще всего вы: 1) в другой сети; 2) не импортировали токен; 3) это был approve/вызов контракта без transfer; 4) RPC в кошельке временно показывает 0. Проверяйте Token Transfers и баланс в эксплорере.
Смотрите Method/Function (обычно approve), а также отсутствие Token Transfers с вашим токеном. Approve меняет разрешение, но не переводит токен.
Ищите события контрактов: Transfer/Swap/Deposit/Withdrawal (названия зависят от протокола). Если в логах нет событий нужного токена, значит он реально не переводился.
Материал носит исключительно информационный характер и не является индивидуальной инвестиционной рекомендацией (ФЗ-39). Криптовалюты не являются законным средством платежа в РФ (ФЗ-259).
13-12-2025, 02:44
12-12-2025, 21:58
13-12-2025, 02:11
18-12-2025, 18:29
17-12-2025, 02:14
Комментариев нет