ШКОЛА
КРИПТОВАЛЮТЫ
Журнал о цифровых деньгах
Знания. Инструменты. Практика.
Все материалы ↗

Как проверить перевод криптовалюты по хешу транзакции

Пошаговая инструкция: где взять хеш транзакции, как выбрать обозреватель нужной сети и прочитать статус, получателя, сумму и комиссию в Ethereum и Bitcoin. С пересчётом комиссии по формуле EIP-1559.

Лупа над длинной бумажной полосой с тиснеными метками и оранжевой линией на тёмном столе, рядом карточка с чек-боксами.
Редакционная иллюстрация · OpenAI
В этом материале

Чтобы проверить перевод криптовалюты, нужны две вещи: хеш транзакции (его ещё называют TxID или идентификатором) и сеть, в которой отправляли средства. Хеш вводят в публичный обозреватель блоков именно этой сети и смотрят четыре поля: статус, адрес получателя, сумму и комиссию. Если транзакция есть, у неё статус «успешно» и достаточно подтверждений, перевод состоялся, даже если получатель пока не видит его у себя в приложении.

Инструкция ниже универсальная. Конкретные обозреватели выглядят по-разному и меняют дизайн, поэтому здесь описаны данные, которые показывает любой из них, и то, как их читать. Скриншоты не приводятся намеренно.

Что такое хеш транзакции и где его взять

Хеш транзакции – это уникальный идентификатор, который вычисляется из её содержимого. Документация Ethereum описывает жизненный цикл так: после отправки криптографически генерируется хеш, транзакция рассылается в сеть и попадает в пул ожидающих, затем валидатор включает её в блок. В Bitcoin тот же идентификатор называется txid: по документации разработчика, именно по нему следующая транзакция ссылается на ранее полученный выход.

Где найти хеш:

  • в истории операций своего кошелька, в карточке конкретного перевода;
  • на бирже или в сервисе, откуда выводили средства, в деталях вывода (если сервис его показывает);
  • у отправителя, если проверяете входящий платёж.

Как по виду хеша понять семейство сети

  • В Ethereum и совместимых с ним сетях хеш начинается с 0x и состоит из 64 шестнадцатеричных знаков, всего 66 символов. Пример из документации ethereum.org: 0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017. Это учебный образец из документации; искать его как платёж не нужно.
  • В Bitcoin txid обычно показывают как 64 шестнадцатеричных знака без префикса 0x.

Формат подсказывает только семейство. Один и тот же вид хеша у Ethereum и десятков совместимых сетей, поэтому точную сеть берите из деталей перевода: кошелёк или биржа указывают её при отправке.

Пошаговая проверка

  1. Уточните сеть. В деталях перевода найдите название сети. Без этого поиск в обозревателе другой сети ничего не покажет.
  2. Откройте обозреватель этой сети. Надёжнее всего перейти по ссылке «посмотреть в обозревателе» прямо из кошелька или из официальной документации сети. Ethereum.org, например, перечисляет обозреватели для тестовых сетей на странице о сетях. Ссылки из чатов и рекламы для этого не подходят.
  3. Вставьте хеш в поиск и откройте карточку транзакции. Подключать кошелёк для этого не нужно: обозреватель только читает публичные данные.
  4. Прочитайте поля по таблицам ниже и сравните с тем, что вы ожидали отправить.
  5. Если всё совпадает, а получатель средств не видит, проблема на стороне получателя: другая сеть в его кошельке, не добавлен токен, сервис ещё не зачислил платёж по своим правилам.

Поля транзакции в Ethereum-совместимых сетях

Состав полей описан в документации ethereum.org. В обозревателе они могут называться чуть иначе, но смысл тот же.

Что читать в карточке транзакции
ПолеЧто означаетНа что смотреть
СтатусОжидает, успешно или ошибка исполнения«Успешно» значит, что транзакция включена в блок и исполнена
БлокНомер блока, куда включена транзакцияПустое значение означает, что транзакция ещё ожидает
FromАдрес отправителя, подписавший транзакциюДолжен совпадать с вашим адресом или адресом отправителя
ToАдрес получателя или смарт-контрактаПри переводе токена здесь стоит адрес контракта токена
ValueСколько нативной монеты (ETH) переведеноПри переводе токена обычно 0
Перемещения токеновСобытия Transfer, которые выпустил контракт токенаЗдесь виден реальный получатель и сумма токена
NonceПорядковый номер транзакции с этого адресаПомогает понять, какая из нескольких транзакций застряла
Использованный газ и цена газаСколько вычислений потрачено и почём за единицуИх произведение и есть комиссия
Input dataДанные вызова контрактаУ простого перевода ETH пусто; у вызова контракта здесь функция и параметры

Почему при переводе токена получатель «не тот»

Это самый частый повод для паники. Когда вы отправляете токен, транзакция адресована контракту токена, а внутри неё вызывается функция перевода. Стандарт ERC-20 требует, чтобы такая функция выпускала событие Transfer, и обозреватели показывают его отдельной строкой. Поэтому получателя и сумму токена ищите в разделе перемещений токенов. Поле To в этом случае показывает контракт. Подробнее о том, что вызывается внутри контракта, рассказано в материале «Смарт-контракт: что он делает и чего не гарантирует».

Единицы: wei и gwei

Ethereum считает суммы в wei, мельчайшей единице: 1 ETH = 1018 wei. Цены газа обычно пишут в gwei, это 10−9 ETH. Например, значение value 10000000000 из примера транзакции в документации равно 0,00000001 ETH. Обозреватели переводят единицы сами, но если вы смотрите «сырые» данные, учитывайте множитель.

Как пересчитать комиссию в Ethereum

После обновления EIP-1559 комиссия состоит из двух частей: базовой платы, которую протокол сжигает, и чаевых валидатору. Спецификация EIP-1559 задаёт правило: чаевые за единицу газа равны меньшему из двух значений, указанного максимума чаевых и разницы между максимальной ценой и базовой платой. Итоговая цена за газ равна базовой плате плюс чаевые, а списывается произведение этой цены на использованный газ.

Пример из документации транзакций ethereum.org пересчитан в Python и сошёлся:

Пересчёт примера ethereum.org: простой перевод ETH
ВеличинаЗначение
Использовано газа21 000 (простой перевод)
Базовая плата190 gwei за газ
Чаевые10 gwei за газ
Комиссия(190 + 10) × 21 000 = 4 200 000 gwei = 0,0042 ETH
Сожжено190 × 21 000 = 0,00399 ETH
Получил валидатор10 × 21 000 = 0,00021 ETH

Учебный пример с условными числами: вы указали максимум 30 gwei за газ и максимум чаевых 2 gwei, а базовая плата в блоке была 10 gwei. Тогда цена за газ составит 12 gwei, а комиссия 21 000 × 12 = 252 000 gwei, то есть 0,000252 ETH. Разница между указанным максимумом и фактической ценой, 0,000378 ETH, не списывается. Если бы базовая плата выросла до 29 gwei, чаевые урезались бы до 1 gwei, потому что сумма не может превысить 30. Эти числа не описывают текущую загрузку сети, они только показывают формулу.

Ещё одна деталь из документации о газе: комиссия платится и при успешном исполнении, и при ошибке. Если контракту не хватило газа посреди выполнения, изменения откатываются, но потраченный газ не возвращается. Поэтому транзакция со статусом «ошибка» всё равно уменьшает баланс отправителя на комиссию.

Как читать транзакцию Bitcoin

В Bitcoin другая модель: нет полей From и To, есть входы и выходы. Вход ссылается на ранее полученный выход по txid и номеру, выход задаёт сумму и условие траты. Документация разработчика объясняет, что выход тратится целиком, поэтому почти любая транзакция содержит выход «сдачи» обратно отправителю.

Отдельного поля комиссии в самой транзакции нет: комиссия равна сумме входов минус сумма выходов. Обозреватели считают её сами. Учебный пример с условными числами: входы 120 000 и 80 000 сатоши, выходы 150 000 и 48 500 сатоши. Комиссия 200 000 − 198 500 = 1 500 сатоши. Один из выходов, скорее всего, сдача, поэтому получатель вашего платежа не обязательно «получил 198 500».

Сколько подтверждений достаточно

Bitcoin.org подчёркивает, что неподтверждённые транзакции ненадёжны, и каждое подтверждение делает отмену сложнее. Блоки выходят в среднем раз в 10 минут с большим разбросом, а для крупных переводов рекомендуется минимум 6 подтверждений. Получатель, особенно биржа, может требовать собственное число подтверждений; его указывают в правилах сервиса.

В Ethereum вместо счёта подтверждений важна финализация. По документации, блок с транзакцией со временем получает статус «justified», затем «finalized», и после этого изменить его можно только атакой на уровне всей сети. Многие обозреватели показывают эту отметку рядом с номером блока.

Что делать при разных статусах

Статус в обозревателе и следующий шаг
Что видноВероятная причинаЧто делать
Транзакция не найденаНе та сеть или обозреватель; транзакция ещё не разослана; хеш скопирован с ошибкойСверить сеть и хеш; спросить сервис-отправитель, отправлен ли вывод
ОжидаетТранзакция в пуле, но не включена в блок; часто низкая комиссияПодождать; некоторые кошельки для Ethereum предлагают ускорить транзакцию, повторив её с тем же nonce и большей комиссией
Успешно, мало подтвержденийБлок свежийПодождать нужное получателю число подтверждений
Успешно, получатель не видитДругая сеть у получателя, не добавлен токен, внутренний учёт сервисаПроверить адрес и сеть в карточке; дать получателю хеш
Ошибка исполненияКонтракт отклонил вызов или закончился газСредства, кроме комиссии, не ушли; разобраться с причиной перед повтором
Успешно, но адрес получателя чужойОшибка при вводе или подмена адресаОтменить нельзя; вернуть может только владелец адреса

Последняя строка не преувеличение. Ethereum.org прямо пишет, что отправленная транзакция необратима, и если вы не знаете владельца адреса, вернуть средства не получится. Как защищаться от подмены адресов и поддельных сервисов, разобрано в материале о сид-фразе и фишинге.

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

Можно ли по хешу узнать, кто владелец адреса?

Обозреватель показывает адреса, суммы и время, но не имена. Некоторые обозреватели помечают адреса известных сервисов, но это собственная разметка обозревателя. В самом блокчейне имён нет. Личность за адресом становится известна, только если её раскрыли где-то вне сети.

Что делать, если сервис не показывает хеш вывода?

Запросите его в поддержке сервиса. Без хеша можно искать по адресу получателя: обозреватель покажет все входящие транзакции адреса с суммами и временем, и нужную обычно легко узнать.

Перед следующим переводом

  • Сверяйте адрес целиком. Совпадение первых и последних символов ещё ничего не доказывает.
  • Убедитесь, что сеть отправки совпадает с сетью, которую поддерживает получатель.
  • Для нового получателя отправьте сначала небольшую сумму и проверьте её по хешу.
  • Сохраняйте хеш каждого важного перевода: это единственное доказательство, которое понимают и получатель, и поддержка любого сервиса.

Если вы ещё путаетесь в том, что такое адрес и кто подписывает перевод, начните с объяснения «Как работает криптокошелёк».

Источники и подготовка

Материал подготовлен с помощью Claude по указанным источникам. Учебные примеры отмечены в тексте. Как мы работаем.

Следующий вопрос

Кошельки8 мин.

Как работает криптокошелёк: адрес, приватный ключ и доступ к средствам

Что на самом деле хранит криптокошелёк, чем адрес отличается от ключа и сид-фразы, и как сравнить биржевой счёт, приложение, аппаратный кошелёк и мультиподпись по контролю ключей.

Читать материал