К основному содержанию
T TON Adoption
Основы GUIDE · 2026

Как читать TON-транзакции в эксплорере: гайд по TonScan

Разбираем TonScan и Tonviewer пошагово: как найти транзакцию по хешу, что значит каждое поле, как читать сообщения, jetton-переводы, NFT и комиссии.

Автор
TON Adoption Team · исследовательская группа проекта
Опубликовано
Обновлено
5 мин. чтения

В Ethereum-семье есть Etherscan — общеизвестный инструмент проверки транзакций. В TON роль такого «универсального справочника» выполняет TonScan и его более молодой конкурент Tonviewer. Этот гайд показывает, как читать данные в этих эксплорерах: что значит каждое поле, как разобрать цепочку сообщений и где искать ошибки.

Какие эксплореры есть в TON

На 2026 год основных пять:

  • tonscan.org — классический, исторически первый.
  • tonviewer.com — современнее, делает Tonkeeper team.
  • ton.cx — лёгкий, быстрый.
  • toncenter.com — официальный API + минимальный UI от TON Foundation.
  • explorer.toncoin.org — простой тематический.

Для пользовательского применения — tonscan.org и tonviewer.com покрывают 99% сценариев. Дальше будем рассматривать на их примере.

Что такое транзакция в TON

Прежде чем читать эксплорер, важно понять модель транзакции. В Ethereum транзакция — это одно атомарное действие: вызов функции контракта со всеми вложенными вызовами в одном пакете.

В TON всё иначе:

  • Транзакция — это выполнение одного смарт-контракта в ответ на одно входящее сообщение.
  • Если контракт А посылает контракту Б сообщение, у тебя получается две транзакции — одна для А (где он отправил), вторая для Б (где он получил и обработал).
  • Они связаны цепочкой in_msg → tx → out_msgs → next_tx → ....

В эксплорерах это видно как дерево сообщений.

Поиск транзакции по хешу

Самый частый сценарий: знаешь хеш транзакции, хочешь её увидеть.

  1. Открываешь tonscan.org (или tonviewer.com).
  2. В строку поиска сверху вставляешь хеш — выглядит как длинная hex-строка вида 9f8d7e6c....
  3. Нажимаешь Enter.

Откроется страница транзакции с полями:

  • Hash — собственно хеш.
  • Block — в каком блоке (с workchain, shard, seqno).
  • Time — когда обработана.
  • Status — успех (зелёная галка) или ошибка (красный крестик).
  • In message — кто и что прислал.
  • Out messages — что отправил наружу.
  • Total fees — сколько TON ушло на комиссии.
  • EXIT_CODE — код выхода контракта.

Поиск по адресу

Второй частый сценарий — посмотреть историю своего или чужого кошелька.

  1. Скопировал EQ…/UQ… адрес.
  2. Вставил в поиск.
  3. Открылась страница адреса с полями:
    • Balance — текущий баланс TON.
    • Jettons — список jetton-токенов на адресе с балансами.
    • NFTs — список NFT.
    • Transactions — лента всех операций.
    • State — состояние контракта (uninitialized / active / frozen).

Tonviewer ещё показывает график активности — удобно увидеть, был ли всплеск транзакций.

Как читать обычный перевод TON

Возьмём пример: Алиса отправляет 1 TON Бобу.

В эксплорере увидишь две транзакции:

Транзакция 1 — на адресе Алисы:

  • In message: пустое (или подписанная запросом транзакция от внешнего источника, кошелька).
  • Out messages: 1 сообщение на адрес Боба, value = 1 TON.
  • EXIT_CODE: 0 (успех).
  • Total fees: ~0.005 TON.

Транзакция 2 — на адресе Боба:

  • In message: от адреса Алисы, value = 1 TON.
  • Out messages: пусто.
  • EXIT_CODE: 0.
  • Total fees: ~0.001 TON (списано из value).

Бобу пришло 0.999 TON, потому что 0.001 TON ушло на forward fee и storage fee на стороне Боба.

Как читать перевод jetton (USDT, NOT, любой токен)

Jetton — это отдельный смарт-контракт у каждого пользователя, не «балансовая запись». Поэтому перевод сложнее:

Алиса отправляет 100 USDT Бобу. В эксплорере цепочка:

  1. Tx 1: кошелёк Алисы → её jetton-wallet USDT (сообщение «передай 100 USDT Бобу»).
  2. Tx 2: jetton-wallet Алисы списывает у себя 100 USDT, отправляет сообщение jetton-wallet’у Боба (создаст его, если не существует).
  3. Tx 3: jetton-wallet Боба зачисляет 100 USDT, отправляет уведомление основному кошельку Боба.
  4. Tx 4: основной кошелёк Боба обрабатывает уведомление (опционально).

Tonviewer показывает это как единое дерево с понятным «Алиса → 100 USDT → Боб». TonScan показывает классическим списком — нужно прокликать связанные транзакции.

Поля, которые часто пугают новичков

EXIT_CODE

Код выхода TVM при выполнении контракта. Стандартные значения:

  • 0 — успех, штатное завершение.
  • 1 — успешно с откатом (alternative success).
  • 2 — Stack underflow.
  • 3 — Stack overflow.
  • 4 — Integer overflow.
  • 5 — Range check error.
  • 8 — Cell overflow.
  • 9 — Cell underflow.
  • 10 — Dictionary error.
  • 13 — Out of gas.
  • 32 — Action list invalid (типичная ошибка при попытке отправить некорректное сообщение).
  • 34 — Action invalid (например, неправильный mode).
  • 37 — Not enough TON.
  • 38 — Not enough extra-currency.

Контракт может определить и свои коды выхода в диапазоне 256+. Например, jetton-wallet выкидывает код 706 «not authorized» при попытке списать токены не от владельца.

Полная таблица — в docs.ton.org/develop/smart-contracts/guidelines/error-handling.

Compute phase / Action phase

Транзакция в TON делится на фазы:

  • Compute — выполнение кода контракта в TVM. Здесь живёт EXIT_CODE.
  • Action — обработка действий, которые контракт «накопил» (отправка сообщений, изменение кода). У этой фазы свой код — action_result_code.
  • Storage — списание storage fee.
  • Bounce — обработка bounce (откат при ошибке).

Если транзакция «упала», смотри сначала EXIT_CODE compute-фазы. Если он 0, но что-то пошло не так — смотри action_result_code.

Bounce

Если контракт А отправил сообщение контракту Б, и Б не смог его обработать (упал с ошибкой), сообщение «отскакивает» обратно к А. В TonScan и Tonviewer это видно как помеченное «Bounced». Это не значит, что деньги пропали — они вернулись отправителю.

Частые сценарии отладки

«Я отправил, но получатель не получил»

  1. Открой свой адрес в эксплорере.
  2. Найди исходящую транзакцию с нужной суммой.
  3. Проверь её статус: успех или ошибка.
  4. Если успех — иди по цепочке out_messages к адресу получателя.
  5. На странице получателя должна быть входящая транзакция с тем же хешем родительской.

Если на стороне получателя нет транзакции — задержка в сети (подожди 1–2 минуты). Если она есть, но баланс не обновился — обнови приложение или попробуй другой эксплорер для двойной проверки.

«Я заплатил большую комиссию»

Открываешь транзакцию, смотришь поле total_fees. Если больше 0.05 TON — что-то нестандартное. Возможные причины:

  • Деплой контракта (первая транзакция новой dApp).
  • Большой forward_fee из-за объёма payload.
  • Долгая storage_fee (контракт давно не использовался).

Подробнее о том, как считаются комиссии — в отдельной статье.

«Я не понимаю, почему контракт упал»

Открываешь транзакцию в Tonviewer (он удобнее для отладки). Поля:

  • compute.exit_code — основная подсказка.
  • compute.vm_log — лог выполнения (если включён).
  • action.result_code — если сама компиляция прошла.

Если exit_code = 13 — контракт исчерпал газ. Если в районе 700+ — типично кастомный код от контракта (jetton, NFT). Гугли по конкретному номеру и контракту.

Маленькие фишки

  • Tonviewer показывает превью dApp, если транзакция связана с известным проектом (STON.fi, DeDust). Это удобно для понимания «свопил ли я на правильной кривой».
  • TonScan имеет публичный API для пакетной обработки данных. Удобно для аналитики или своих ботов.
  • Tonviewer показывает OnchainAPI для каждой транзакции — можно дёрнуть JSON через query.
  • Оба эксплорера дают постоянные ссылки на конкретные транзакции — можно пошарить в Telegram-чате.

Дальше

Если хочешь понять, из чего состоит эта комиссия и почему в TON она так невысока — гайд по комиссиям. Если работаешь с testnet — как переключиться и проверить. Если только начинаешь — создание кошелька.

Источники

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

TonScan (tonscan.org) — классический эксплорер с табличным интерфейсом, удобен для быстрого поиска. Tonviewer (tonviewer.com) — современнее, лучше показывает сложные транзакции с цепочкой сообщений и jetton-переводами. Для базовой проверки оба ОК; для отладки контрактов лучше Tonviewer.
Скопируй хеш из кошелька (обычно в истории операций есть кнопка «копировать хеш» или «открыть в эксплорере»). Вставь в строку поиска tonscan.org или tonviewer.com — откроется страница транзакции со всеми параметрами.
В TON каждая транзакция — это цепочка сообщений между контрактами. Например, перевод USDT — это минимум 2 сообщения: jetton-wallet отправителя → jetton-wallet получателя. Это нормально, не баг эксплорера.
EXIT_CODE — статус выполнения смарт-контракта. 0 значит «успешно». Любое другое число — ошибка (таблица в docs.ton.org). Если транзакция была принята сетью, но контракт упал с EXIT_CODE != 0, фактически операция не выполнилась.
Да, открываешь свой адрес в TonScan/Tonviewer, вкладка Transactions. Видишь полную историю в обоих направлениях, с суммами, контрагентами, временем и комиссиями. Это публично — любой видит все твои транзакции.

Похожие материалы