Что такое хеш транзакции (TXID) и как его проверить?

ID транзакций в Bitcoin, Ethereum, Solana и XRP, объяснение от ChainGate.

Хешем транзакции (также TXID, ID транзакции или tx hash) называют уникальный идентификатор одной транзакции в блокчейне. Он получается хешированием данных самой транзакции, поэтому фиксируется в момент её подписания, и любой может вставить его в обозреватель блоков, чтобы увидеть отправителя, получателя, сумму, комиссию и статус подтверждения.

В Bitcoin и Ethereum это шестнадцатеричная строка из 64 символов. Ethereum и другие EVM-сети добавляют спереди 0x, и получается 66 символов. Solana вместо хеша использует подпись транзакции, более длинную строку в base58, а XRP Ledger записывает свои хеши в верхнем регистре.

Рано или поздно любой кошелёк, биржа или служба поддержки попросит у вас хеш транзакции, а большинство объяснений ограничивается словами «уникальный идентификатор». Это руководство идёт дальше: из чего состоит строка, почему в каждой сети она выглядит по-разному, откуда скопировать свою, как читать страницу обозревателя, которую она открывает, и в каких немногих случаях выданный вам хеш перестаёт работать.

Коротко

  • Хеш транзакции и ID транзакции означают одно и то же. Кошельки, биржи и обозреватели используют эти названия как взаимозаменяемые, наряду с TXID, tx hash и hash ID.
  • Длина подсказывает семейство сети: 64 шестнадцатеричных символа (Bitcoin), 0x + 64 (Ethereum и EVM-сети). Solana вместо этого использует подпись транзакции, около 88 символов в base58.
  • Свой хеш вы найдёте в деталях транзакции в кошельке или в истории выводов на бирже, а проверить его можно в обозревателе той сети, в которой она была отправлена.
  • Хеш перестаёт работать, когда транзакцию заменили (ускорили, отменили, replace-by-fee) или когда перевод не покидал внутреннего реестра биржи.

1. Что такое хеш транзакции?

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

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

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

2. Хеш транзакции и ID транзакции: это одно и то же?

Да. Хеш транзакции, ID транзакции, TXID, tx hash, txn hash и hash ID обозначают одну и ту же строку. Словарь зависит от места: софт для Bitcoin говорит txid, инструменты Ethereum говорят transaction hash или txn hash, а биржи на экранах вывода часто пишут TXID или hash ID. Solana остаётся единственным местом, где термин отличается по сути. Её ID транзакции представляет собой первую подпись транзакции, а не хеш всей транзакции целиком, поэтому документация называет его «signature» (подпись).

С ним часто путают две вещи, которые им не являются. Адрес кошелька идентифицирует счёт, а не платёж (в Bitcoin он начинается с 1, 3 или bc1). Хеш блока идентифицирует целый блок, в котором много транзакций. Если биржа отклонила вставленную строку, проверьте, не скопировали ли вы одну из них.

3. Как выглядит хеш транзакции?

Формат зависит от сети, и обычно по нему можно понять, к какой сети относится хеш:

СетьФорматДлинаПример
Bitcoin, Litecoin, Dogecoin, Bitcoin CashШестнадцатеричная строка в нижнем регистре64 символа4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
Ethereum, Polygon, BNB Smart Chain, Arbitrum, Base, Avalanche C-Chain и любая другая EVM-сеть0x и за ним 64 шестнадцатеричных символа в нижнем регистре66 символов0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017
SolanaПодпись в base58: цифры и буквы, без префикса 0xОколо 87 или 88 символовДлиннее hex-хеша, содержит буквы верхнего и нижнего регистра
XRP LedgerШестнадцатеричная строка в верхнем регистре64 символаЦифры и буквы от A до F, все в верхнем регистре

Пример для Bitcoin: самая первая записанная транзакция, coinbase генезис-блока, добытого 3 января 2009 года; её можно открыть на mempool.space. Пример для Ethereum взят из документации для разработчиков на ethereum.org. В обоих случаях это 32 байта, записанные в шестнадцатеричном виде, поэтому длина равна 64 символам; префикс 0x в Ethereum служит пометкой «это hex». Litecoin, Dogecoin и Bitcoin Cash наследуют формат Bitcoin, а каждая EVM-сеть наследует формат Ethereum, так что транзакция в Polygon или Base выглядит точно так же, как в основной сети Ethereum.

ID транзакции в Solana совпадает с подписью транзакции: 64 байта подписи Ed25519, закодированные в base58, а не в hex, поэтому он длиннее и содержит буквы как верхнего, так и нижнего регистра. Хеши XRP Ledger содержат те же 256 бит, что и в Bitcoin, но по соглашению записываются в верхнем регистре.

4. Как генерируется хеш транзакции?

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

Bitcoin, Litecoin, Dogecoin, Bitcoin Cash
txid вычисляется как двойной SHA-256 от транзакции в её традиционной сериализации, которая не включает данные witness (подписи) входов SegWit; witness покрывается вторым идентификатором, wtxid. Так его определяет BIP 141, и именно поэтому у транзакции, тратящей только выходы SegWit, третья сторона не может изменить txid до подтверждения.
Ethereum и EVM-сети
Хеш вычисляется как Keccak-256 от подписанной сериализованной транзакции, поэтому он существует только после подписания: библиотеки вроде ethers возвращают null вместо хеша неподписанной транзакции. Узел возвращает 32-байтовый хеш как результат eth_sendRawTransaction, и то же значение вы передаёте в eth_getTransactionByHash и eth_getTransactionReceipt.
Solana
Отдельного хеша нет. В качестве ID используется первая подпись Ed25519 на транзакции, 64 байта в виде строки base58.
XRP Ledger
Хеш SHA-512Half (первые 256 бит SHA-512) от бинарной формы подписанной транзакции, к которой перед хешированием добавляется префикс из байтов TXN; записывается как 64 шестнадцатеричных символа в верхнем регистре.

Определения есть в BIP 141, спецификации Ethereum JSON-RPC, на странице терминологии Solana и в справочнике по типам данных XRP Ledger.

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

5. Где найти свой хеш транзакции?

Зависит от того, кто отправил транзакцию.

Некастодиальный кошелёк (MetaMask, Ledger, Trust Wallet, Phantom, Electrum)
Откройте транзакцию в списке активности или истории кошелька. На экране с деталями показан хеш, обычно с кнопкой копирования и ссылкой «посмотреть в обозревателе», которая открывает его за вас.
Вывод с биржи
Зайдите в историю выводов. Как только биржа отправила транзакцию в сеть, в строке появляется TXID, часто в виде ссылки. Если строка всё ещё показывает «в обработке», хеша пока не существует, потому что ничего ещё не подписано.
Вам кто-то заплатил
Попросите хеш у отправителя или откройте свой адрес получения в обозревателе блоков: там перечислены все транзакции, затронувшие адрес, с их хешами.
Ваш собственный код
Его возвращает вызов отправки. В SDK ChainGate это поле transactionId в результате signAndBroadcast(), одинаково для Bitcoin и Ethereum (см. раздел 10).

Копируйте строку целиком. Биржи отклоняют хеши с пропущенным символом или лишним пробелом, а txid Bitcoin, вставленный в обозреватель Ethereum, просто не будет найден.

6. Как проверить транзакцию по хешу?

Вставьте его в обозреватель блоков той сети, в которой была отправлена транзакция. Обозреватель покажет, ожидает ли транзакция или уже подтверждена, сколько у неё подтверждений, в какой блок она вошла, отправителя и получателя, сумму, уплаченную комиссию, а в Ethereum ещё и то, успешно ли прошло исполнение.

СетьОбозревательНа что смотреть
Bitcoinmempool.space, blockchain.comПодтверждения (6 обычно считаются «окончательными»), ставка комиссии в sat/vB, позиция в mempool, пока транзакция не подтверждена
EthereumEtherscanСтатус (Success, Fail, Pending), номер блока, использованный gas и комиссия за транзакцию, переводы токенов
Polygon, BNB Smart Chain, Arbitrum, Base, AvalanchePolygonscan, BscScan, Arbiscan, Basescan, SnowtraceТа же раскладка, что у Etherscan; каждый обозреватель знает только свою сеть
Litecoin, Dogecoin, Bitcoin CashBlockchair или собственный обозреватель каждой монетыПодтверждения и комиссия, как в Bitcoin
SolanaSolscan, Solana ExplorerУровень commitment (processed, confirmed, finalized), комиссия в SOL, выполненные инструкции
XRP LedgerXRPScan, обозреватель xrpl.orgКод результата (tesSUCCESS означает, что транзакция прошла), индекс леджера, destination tag

Сначала смотрите на статус. «Pending» или «unconfirmed» означает, что сеть знает о транзакции, но ни один блок её ещё не включил. «Success» с одним или несколькими подтверждениями означает, что деньги ушли. «Fail» или «dropped» означает, что нет, причём в Ethereum комиссия всё равно списана. Что означает каждое поле на странице транзакции Ethereum, рассказывает руководство по Etherscan.

7. Почему я не могу найти транзакцию в обозревателе?

Страница «transaction not found» почти всегда означает одно из следующего:

Не та сеть
Хеш из другой сети, не той, что у обозревателя. Вывод USDT может идти через Ethereum, Tron, BNB Smart Chain или Polygon, и у каждой свой обозреватель. Подберите обозреватель под сеть, которую вы выбрали при выводе.
Слишком рано
Транзакции нужно несколько секунд, чтобы разойтись по сети, и биржа может показать TXID чуть раньше, чем его проиндексируют обозреватели. Подождите минуту и обновите страницу.
Она не попала в блокчейн
Переводы между двумя счетами одной биржи, а также платежи картой или банковским переводом записываются в базе данных компании, а не в блокчейне, поэтому искать хеш негде. Его получают только отправки в сеть.
Её заменили
Если транзакцию ускорили, отменили или подняли комиссию через replace-by-fee, у замены новый хеш, а старую сеть отбрасывает. Почему так, объясняет следующий раздел.
Она истекла
Транзакцию Bitcoin со слишком низкой комиссией узлы удаляют из своих mempool примерно через две недели. Средства снова можно тратить, а старый txid больше ни на что не указывает.

О том, как выбрать комиссию, с которой транзакция подтвердится, и что делать, если она застряла, рассказывает руководство по комиссиям Bitcoin.

8. Может ли хеш транзакции измениться?

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

В Ethereum и других EVM-сетях ускорить или отменить ожидающую транзакцию означает подписать новую транзакцию с тем же nonce и более высокой комиссией, как описывает страница справки MetaMask. Сеть оставляет ту, что попала в блок, и отбрасывает другую. У новой транзакции новый хеш, поэтому тот, который кошелёк показал первым, превращается в мёртвую ссылку. То же относится к replace-by-fee в Bitcoin (BIP 125): замена представляет собой другую транзакцию с другим txid.

У старых транзакций Bitcoin была ещё одна проблема, пластичность транзакций (transaction malleability): третья сторона могла подправить кодирование подписи неподтверждённой транзакции и дать ей другой txid, не меняя того, куда уходят деньги. Segregated Witness (BIP 141, действует с 2017 года) вынес подписи из данных, которые покрывает txid, и это убрало проблему для транзакций, тратящих выходы SegWit. Если ваш кошелёк использует адреса, начинающиеся с bc1, вас это не касается.

9. Безопасно ли делиться хешем транзакции?

Да. В хеше нет ключей, пароля и ничего, что позволило бы кому-то переместить ваши средства. Любой, у кого он есть, увидит то, что показывает обозреватель: участвующие адреса, сумму и время. Эта информация и так публична, потому что блокчейн публичен; хеш лишь упрощает её поиск.

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

10. Как получить хеш в коде

Если ваше приложение отправляет транзакции, сохраняйте хеш, который возвращает вызов отправки: это ключ для проверки статуса, обращений в поддержку и сверки. В SDK ChainGate одни и те же строки работают в Bitcoin, Litecoin, Dogecoin, Bitcoin Cash и любой EVM-сети:

import { ChainGate, importWallet } from 'chaingate';

const cg = new ChainGate({ apiKey: process.env.CHAINGATE_API_KEY });
const wallet = importWallet({ phrase: process.env.MNEMONIC });
const eth = cg.connect(cg.networks.ethereum, wallet);

const tx = await eth.transfer(cg.networks.ethereum.amount('0.01'), '0x...');
tx.setFee(tx.recommendedFees().normal);

const sent = await tx.signAndBroadcast();
console.log(sent.transactionId); // 0x... on EVM chains, 64 hex chars on Bitcoin

sent.onConfirmed((details) => {
  console.log('mined in block', details.blockHeight, details.transactionId);
});

Кошельки, комиссии и обработку ошибок разбирает руководство по отправке криптотранзакций на JavaScript, а документация по переводам перечисляет каждое поле результата отправки, включая колбэк onConfirmed(), использованный выше.

11. Куда дальше

Теперь вы умеете читать хеш так, как это делает обозреватель: какая сеть, какая транзакция и окончательна ли она. Чтобы разобраться в строке с комиссией на той же странице обозревателя, читайте что такое gas fees в Ethereum и как устроены комиссии Bitcoin, а чтобы увидеть, сколько сейчас стоит отправка в каждой сети, откройте трекер газа. Если вы хотите, чтобы отправка, колбэки подтверждения и ID транзакций в Bitcoin и EVM-сетях обрабатывались одной TypeScript-библиотекой, ChainGate делает именно это.

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

Что такое хеш транзакции в крипте?

Уникальный идентификатор транзакции в блокчейне, полученный хешированием её данных. В Bitcoin это 64 шестнадцатеричных символа; в Ethereum и других EVM-сетях это 0x и за ним 64 hex-символа. Вставьте его в обозреватель блоков, чтобы увидеть статус транзакции, адреса, сумму и комиссию.

Хеш транзакции и ID транзакции (TXID): это одно и то же?

Да. Хеш транзакции, ID транзакции, TXID, tx hash и hash ID означают одну и ту же строку под разными названиями. По сути отличается только Solana: там ID транзакции совпадает с её первой подписью, а не с хешем.

Как выглядит хеш транзакции?

Bitcoin, Litecoin, Dogecoin и Bitcoin Cash: 64 hex-символа в нижнем регистре. Ethereum, Polygon, BNB Smart Chain, Arbitrum, Base и другие EVM-сети: 0x плюс 64 hex-символа, всего 66. Solana: подпись в base58 длиной около 88 символов. XRP Ledger: 64 hex-символа в верхнем регистре.

Как найти хеш транзакции при выводе с биржи?

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

Как проверить хеш транзакции?

Вставьте его в обозреватель блоков той сети, в которой он был отправлен: mempool.space или blockchain.com для Bitcoin, Etherscan для Ethereum, Polygonscan, BscScan, Arbiscan или Basescan для других EVM-сетей, Solscan для Solana. Страница покажет статус, подтверждения, отправителя, получателя, сумму и комиссию.

Почему обозреватель пишет, что транзакция не найдена?

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

Может ли хеш транзакции измениться?

После подтверждения транзакции нет. До этого ускорение, отмена или replace-by-fee создают новую транзакцию с новым хешем, а исходная отбрасывается. Старые транзакции Bitcoin также могли быть изменены третьими сторонами (пластичность), что исправил SegWit в 2017 году.

Безопасно ли делиться своим хешем транзакции?

Да. Он не содержит приватных ключей и не может быть использован для перемещения средств. Он раскрывает адреса, сумму и время платежа, которые и так публичны в блокчейне.

Сколько символов в хеше транзакции?

64 для сетей семейства Bitcoin и XRP Ledger, 66 для Ethereum и EVM-сетей из-за префикса 0x. И те и другие представляют одни и те же 32 байта. ID транзакций в Solana представляют собой подписи в base58, обычно 87 или 88 символов.

Создавай с ChainGate

Превращай идеи в код — ChainGate даёт кошельки, транзакции и управляемый RPC для Ethereum и 20+ блокчейнов в одной библиотеке.