Qu'est-ce qu'un hash de transaction (TXID) et comment le vérifier ?

Identifiants de transaction sur Bitcoin, Ethereum, Solana et XRP, expliqués par ChainGate.

Un hash de transaction (aussi appelé TXID, identifiant de transaction ou tx hash) est l'identifiant unique d'une transaction blockchain. Il est obtenu en hachant les données de la transaction elle-même, il est donc fixé dès que la transaction est signée, et n'importe qui peut le coller dans un block explorer pour voir l'expéditeur, le destinataire, le montant, les frais et l'état de confirmation.

Sur Bitcoin et Ethereum, c'est une chaîne hexadécimale de 64 caractères. Ethereum et les autres chaînes EVM la font précéder de 0x, ce qui donne 66 caractères. Solana utilise à la place la signature de la transaction, une chaîne base58 plus longue, et le XRP Ledger écrit ses hashes en majuscules.

Tout wallet, toute plateforme d'échange et tout service client finit par vous demander un hash de transaction, et la plupart des explications s'arrêtent à « un identifiant unique ». Ce guide va plus loin : de quoi la chaîne est faite, pourquoi elle n'a pas le même aspect sur chaque chaîne, où copier la vôtre, comment lire la page d'explorer qu'elle ouvre, et les quelques cas où le hash qu'on vous a donné cesse de fonctionner.

La version courte

  • Hash de transaction et identifiant de transaction désignent la même chose. Wallets, plateformes d'échange et explorers emploient ces noms indifféremment, tout comme TXID, tx hash et hash ID.
  • La longueur indique la famille de chaînes : 64 caractères hexadécimaux (Bitcoin), 0x + 64 (Ethereum et chaînes EVM). Solana utilise à la place la signature de la transaction, environ 88 caractères en base58.
  • Vous trouvez le vôtre dans les détails de la transaction de votre wallet ou dans l'historique des retraits de la plateforme d'échange, et vous le vérifiez sur l'explorer du réseau sur lequel la transaction a été envoyée.
  • Un hash cesse de fonctionner quand la transaction a été remplacée (accélérée, annulée, replace-by-fee) ou quand le transfert n'a jamais quitté le registre interne de la plateforme d'échange.

1. Qu'est-ce qu'un hash de transaction ?

Une transaction blockchain est un petit bloc de données : qui paie, qui est payé, combien, quels frais, et une signature. Passez ces données dans la fonction de hachage du réseau et vous obtenez un nombre de longueur fixe. Ce nombre est le hash de transaction. La moindre modification des données produit un nombre différent, donc le hash fonctionne comme une empreinte : il désigne exactement une transaction et aucune autre.

Les nœuds, les wallets et les explorers utilisent le hash comme clé de recherche. Quand vous diffusez une transaction, le nœud qui l'accepte vous renvoie le hash. Quand votre wallet affiche « en attente », il interroge le réseau sur ce hash. Quand une plateforme d'échange demande une preuve de dépôt, c'est le hash qu'elle vérifie. C'est la seule référence dont vous avez besoin pour suivre un paiement de la diffusion à la confirmation.

Le hash en lui-même ne prouve rien. C'est une clé de recherche, et c'est ce que l'explorer affiche quand vous l'ouvrez qui constitue la preuve.

2. Hash de transaction et identifiant de transaction, est-ce la même chose ?

Oui. Hash de transaction, identifiant de transaction, TXID, tx hash, txn hash et hash ID désignent tous la même chaîne. Le vocabulaire dépend de l'endroit où vous êtes : les logiciels Bitcoin disent txid, les outils Ethereum disent transaction hash ou txn hash, et les plateformes d'échange affichent souvent TXID ou hash ID sur leurs écrans de retrait. Solana est le seul cas où le terme diffère sur le fond. Son identifiant de transaction est la première signature de la transaction plutôt qu'un hash de la transaction entière, et sa documentation parle donc de « signature ».

Deux choses sont souvent confondues avec lui et ne sont pas la même chose. Une adresse de wallet identifie un compte, pas un paiement (sur Bitcoin elle commence par 1, 3 ou bc1). Un hash de bloc identifie un bloc entier contenant de nombreuses transactions. Si une plateforme d'échange rejette la chaîne que vous avez collée, vérifiez que vous n'avez pas copié l'un de ces deux-là.

3. À quoi ressemble un hash de transaction ?

Le format dépend de la chaîne, et il suffit généralement à savoir à quel réseau appartient un hash :

RéseauFormatLongueurExemple
Bitcoin, Litecoin, Dogecoin, Bitcoin CashHexadécimal en minuscules64 caractères4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
Ethereum, Polygon, BNB Smart Chain, Arbitrum, Base, Avalanche C-Chain et toutes les autres chaînes EVM0x suivi de 64 caractères hexadécimaux en minuscules66 caractères0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017
SolanaSignature en base58 : chiffres et lettres, sans préfixe 0xEnviron 87 à 88 caractèresPlus long qu'un hash hexadécimal, mélange majuscules et minuscules
XRP LedgerHexadécimal en majuscules64 caractèresChiffres et lettres de A à F, tout en majuscules

L'exemple Bitcoin est la toute première transaction jamais enregistrée, la coinbase du bloc genesis miné le 3 janvier 2009 ; vous pouvez l'ouvrir sur mempool.space. L'exemple Ethereum est celui utilisé dans la documentation développeur d'ethereum.org. Les deux sont 32 octets écrits en hexadécimal, ce qui explique leurs 64 caractères ; le préfixe 0x est la convention d'Ethereum pour dire « ceci est de l'hexadécimal ». Litecoin, Dogecoin et Bitcoin Cash héritent du format de Bitcoin, et tous les réseaux EVM héritent de celui d'Ethereum, si bien qu'une transaction sur Polygon ou Base ressemble exactement à une transaction sur le mainnet Ethereum.

Un identifiant de transaction Solana est la signature de la transaction : 64 octets de signature Ed25519 encodés en base58 plutôt qu'en hexadécimal, ce qui explique qu'il soit plus long et contienne des lettres majuscules et minuscules. Les hashes du XRP Ledger sont les mêmes 256 bits que ceux de Bitcoin, écrits en majuscules par convention.

4. Comment un hash de transaction est-il généré ?

Chaque chaîne hache sa propre sérialisation de la transaction signée, et les différences expliquent plusieurs choses que vous rencontrerez.

Bitcoin, Litecoin, Dogecoin, Bitcoin Cash
Le txid est le double SHA-256 de la transaction dans sa sérialisation traditionnelle, qui laisse de côté les données de témoin (signature) des entrées SegWit ; le témoin est couvert par un second identifiant, le wtxid. C'est ainsi que le BIP 141 le définit, et c'est pourquoi un tiers ne peut pas modifier avant confirmation le txid d'une transaction qui ne dépense que des sorties SegWit.
Ethereum et chaînes EVM
Le hash est le Keccak-256 de la transaction signée et sérialisée, il n'existe donc qu'une fois la transaction signée : des bibliothèques comme ethers renvoient null pour le hash d'une transaction non signée. Le nœud renvoie le hash de 32 octets comme résultat de eth_sendRawTransaction, et c'est la même valeur que vous passez à eth_getTransactionByHash et eth_getTransactionReceipt.
Solana
Il n'y a pas de hash séparé. La première signature Ed25519 de la transaction, 64 octets affichés sous forme de chaîne base58, sert d'identifiant.
XRP Ledger
Un hash SHA-512Half (les 256 premiers bits d'un SHA-512) de la forme binaire de la transaction signée, précédée des octets TXN avant hachage, écrit sous forme de 64 caractères hexadécimaux en majuscules.

Les définitions se trouvent dans le BIP 141, la spécification JSON-RPC d'Ethereum, la page de terminologie de Solana et la référence des types de données du XRP Ledger.

Ce qu'elles ont toutes en commun : le hash est calculé par celui qui signe la transaction, avant qu'elle n'atteigne le réseau. Votre wallet connaît le hash à l'instant où vous appuyez sur envoyer, c'est pourquoi il peut l'afficher alors que la transaction n'est pas encore confirmée.

5. Où trouver mon hash de transaction ?

Cela dépend de qui a envoyé la transaction.

Wallet en auto-garde (MetaMask, Ledger, Trust Wallet, Phantom, Electrum)
Ouvrez la transaction dans l'activité ou l'historique du wallet. L'écran de détails affiche le hash, généralement avec un bouton de copie et un lien « voir sur l'explorer » qui l'ouvre pour vous.
Retrait depuis une plateforme d'échange
Allez dans l'historique des retraits. Une fois que la plateforme a diffusé la transaction, la ligne affiche un TXID, souvent sous forme de lien. Si la ligne indique encore « en cours », le hash n'existe pas encore parce que rien n'a été signé.
Quelqu'un vous a payé
Demandez-lui le hash, ou ouvrez votre adresse de réception sur un block explorer : chaque transaction qui a touché l'adresse y est listée avec son hash.
Votre propre code
L'appel de diffusion le renvoie. Avec le SDK ChainGate, c'est le champ transactionId du résultat de signAndBroadcast(), sur Bitcoin comme sur Ethereum (voir la section 10).

Copiez la chaîne entière. Les plateformes d'échange rejettent les hashes auxquels il manque un caractère ou qui contiennent une espace en trop, et un txid Bitcoin collé dans un explorer Ethereum ne sera tout simplement pas trouvé.

6. Comment vérifier une transaction avec son hash ?

Collez-le dans un block explorer du réseau sur lequel la transaction a été envoyée. L'explorer indique si la transaction est en attente ou confirmée, combien de confirmations elle a, le bloc qui l'a incluse, l'expéditeur et le destinataire, le montant, les frais payés et, sur Ethereum, si l'exécution a réussi ou échoué.

RéseauExplorerCe qu'il faut regarder
Bitcoinmempool.space, blockchain.comConfirmations (6 est le « définitif » habituel), tarif en sat/vB, position dans la mempool tant qu'elle n'est pas confirmée
EthereumEtherscanStatut (Success, Fail, Pending), numéro de bloc, gas utilisé et frais de transaction, transferts de tokens
Polygon, BNB Smart Chain, Arbitrum, Base, AvalanchePolygonscan, BscScan, Arbiscan, Basescan, SnowtraceMême présentation qu'Etherscan ; chaque explorer ne connaît que sa propre chaîne
Litecoin, Dogecoin, Bitcoin CashBlockchair ou l'explorer propre à chaque coinConfirmations et frais, comme sur Bitcoin
SolanaSolscan, Solana ExplorerNiveau de commitment (processed, confirmed, finalized), frais en SOL, instructions exécutées
XRP LedgerXRPScan, l'explorer de xrpl.orgCode de résultat (tesSUCCESS signifie que c'est passé), index du ledger, destination tag

Lisez d'abord le statut. « Pending » ou « unconfirmed » signifie que le réseau a la transaction mais qu'aucun bloc ne l'a encore incluse. « Success » avec une ou plusieurs confirmations signifie que l'argent a bougé. « Fail » ou « dropped » signifie qu'il n'a pas bougé, et sur Ethereum les frais ont tout de même été payés. Pour la signification de chaque champ d'une page de transaction Ethereum, lisez le guide Etherscan.

7. Pourquoi l'explorer ne trouve-t-il pas ma transaction ?

Une page « transaction not found » relève presque toujours de l'un de ces cas :

Mauvais réseau
Le hash vient d'une autre chaîne que celle de l'explorer. Un retrait en USDT peut circuler sur Ethereum, Tron, BNB Smart Chain ou Polygon, et chacun a son propre explorer. Choisissez l'explorer correspondant au réseau sélectionné au moment du retrait.
Trop tôt
Une transaction met quelques secondes à se propager, et une plateforme d'échange peut afficher le TXID un instant avant que les explorers l'indexent. Attendez une minute et rafraîchissez.
Elle n'est jamais passée on-chain
Les transferts entre deux comptes de la même plateforme d'échange, et les paiements par carte ou virement bancaire, sont enregistrés dans la base de données de l'entreprise et non sur une blockchain, il n'y a donc aucun hash à trouver. Seuls les envois on-chain en ont un.
Elle a été remplacée
Si la transaction a été accélérée, annulée ou relancée par replace-by-fee, le remplacement a un nouveau hash et le réseau abandonne l'ancien. La section suivante explique pourquoi.
Elle a expiré
Une transaction Bitcoin dont les frais sont trop bas est retirée de la mempool des nœuds après environ deux semaines. Les fonds redeviennent dépensables et l'ancien txid ne renvoie plus à rien.

Le guide des frais Bitcoin explique comment choisir des frais qui confirment, et quoi faire quand une transaction est bloquée.

8. Un hash de transaction peut-il changer ?

Le hash d'une transaction confirmée ne change jamais : il fait partie du bloc, et le modifier modifierait le bloc. Avant confirmation, le hash peut être supplanté par une autre transaction, ce qui, vu de l'extérieur, ressemble à un changement.

Sur Ethereum et les autres chaînes EVM, accélérer ou annuler une transaction en attente revient à signer une nouvelle transaction avec le même nonce et des frais plus élevés, comme la page d'aide de MetaMask le décrit. Le réseau garde celle qui est minée et écarte l'autre. La nouvelle transaction a un nouveau hash, donc celui que votre wallet a affiché en premier devient un lien mort. Il en va de même pour le replace-by-fee de Bitcoin (BIP 125) : le remplacement est une transaction différente avec un txid différent.

Les anciennes transactions Bitcoin avaient un problème supplémentaire, la malléabilité des transactions : un tiers pouvait retoucher l'encodage de la signature d'une transaction non confirmée et lui donner un txid différent sans changer la destination de l'argent. Segregated Witness (BIP 141, actif depuis 2017) a sorti les signatures des données couvertes par le txid, ce qui a supprimé le problème pour les transactions qui dépensent des sorties SegWit. Si votre wallet utilise des adresses commençant par bc1, cela ne vous concerne pas.

9. Peut-on partager un hash de transaction sans risque ?

Oui. Le hash ne contient aucune clé, aucun mot de passe et rien qui permette à quiconque de déplacer vos fonds. Quiconque le possède peut voir ce que l'explorer affiche : les adresses impliquées, le montant et l'heure. Ces informations sont déjà publiques, puisque la blockchain est publique ; le hash ne fait que les rendre faciles à trouver.

Le seul point de confidentialité : donner à quelqu'un le hash d'un paiement lui indique quelle adresse est la vôtre, et de là toutes les autres transactions de cette adresse. Si cela compte, utilisez une nouvelle adresse de réception pour chaque paiement, ce que la plupart des wallets Bitcoin font par défaut.

10. Récupérer le hash dans du code

Si votre application envoie des transactions, conservez le hash que renvoie l'appel de diffusion : c'est la clé pour les vérifications de statut, les tickets de support et le rapprochement comptable. Avec le SDK ChainGate, les mêmes lignes fonctionnent sur Bitcoin, Litecoin, Dogecoin, Bitcoin Cash et n'importe quel réseau 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);
});

Le guide pour envoyer des transactions crypto en JavaScript couvre les wallets, les frais et la gestion des erreurs, et la documentation des transferts liste tous les champs du résultat de diffusion, dont le callback onConfirmed() utilisé ci-dessus.

11. Pour aller plus loin

Vous savez désormais lire un hash comme le fait un explorer : quelle chaîne, quelle transaction, et si elle est définitive. Pour comprendre la ligne des frais sur cette page d'explorer, lisez ce que sont les gas fees sur Ethereum et comment fonctionnent les frais Bitcoin, et pour voir ce que coûte un envoi en ce moment sur chaque réseau, ouvrez le gas tracker. Si vous voulez que la diffusion, les callbacks de confirmation et les identifiants de transaction soient gérés sur Bitcoin et les chaînes EVM depuis une seule bibliothèque TypeScript, ChainGate le fait.

Questions fréquentes

Qu'est-ce qu'un hash de transaction en crypto ?

L'identifiant unique d'une transaction blockchain, obtenu en hachant les données de la transaction. Sur Bitcoin, c'est 64 caractères hexadécimaux ; sur Ethereum et les autres chaînes EVM, c'est 0x suivi de 64 caractères hexadécimaux. Collez-le dans un block explorer pour voir le statut, les adresses, le montant et les frais de la transaction.

Un hash de transaction est-il la même chose qu'un identifiant de transaction (TXID) ?

Oui. Hash de transaction, identifiant de transaction, TXID, tx hash et hash ID sont des noms différents pour la même chaîne. Seul Solana diffère sur le fond : son identifiant de transaction est la première signature de la transaction plutôt qu'un hash.

À quoi ressemble un hash de transaction ?

Bitcoin, Litecoin, Dogecoin et Bitcoin Cash : 64 caractères hexadécimaux en minuscules. Ethereum, Polygon, BNB Smart Chain, Arbitrum, Base et les autres chaînes EVM : 0x plus 64 caractères hexadécimaux, soit 66 au total. Solana : une signature en base58 d'environ 88 caractères. XRP Ledger : 64 caractères hexadécimaux en majuscules.

Comment trouver le hash de transaction d'un retrait ?

Ouvrez l'historique des retraits sur la plateforme d'échange. Une fois le retrait diffusé, la ligne affiche le TXID, souvent sous forme de lien vers un block explorer. Si elle indique encore « en cours », la transaction n'a pas encore été signée et aucun hash n'existe.

Comment vérifier un hash de transaction ?

Collez-le dans le block explorer du réseau sur lequel la transaction a été envoyée : mempool.space ou blockchain.com pour Bitcoin, Etherscan pour Ethereum, Polygonscan, BscScan, Arbiscan ou Basescan pour les autres chaînes EVM, Solscan pour Solana. La page affiche le statut, les confirmations, l'expéditeur, le destinataire, le montant et les frais.

Pourquoi l'explorer indique-t-il que la transaction est introuvable ?

En général, le hash appartient à un autre réseau que celui de l'explorer, la transaction n'a que quelques secondes, il s'agissait d'un transfert interne à une plateforme d'échange qui n'a jamais touché la blockchain, ou elle a été remplacée par une transaction accélérée ou annulée portant un nouveau hash.

Un hash de transaction peut-il changer ?

Pas une fois la transaction confirmée. Avant cela, une accélération, une annulation ou un replace-by-fee crée une nouvelle transaction avec un nouveau hash, et l'originale est abandonnée. Les anciennes transactions Bitcoin pouvaient aussi être modifiées par des tiers (malléabilité), ce que SegWit a corrigé en 2017.

Puis-je partager mon hash de transaction sans risque ?

Oui. Il ne contient aucune clé privée et ne permet pas de déplacer des fonds. Il révèle les adresses, le montant et l'heure du paiement, qui sont de toute façon publics sur la blockchain.

Combien de caractères compte un hash de transaction ?

64 pour les chaînes de la famille Bitcoin et le XRP Ledger, 66 pour Ethereum et les chaînes EVM à cause du préfixe 0x. Les deux représentent les mêmes 32 octets. Les identifiants de transaction Solana sont des signatures en base58, généralement de 87 ou 88 caractères.

Construisez avec ChainGate

Mettez ces idées en pratique — ChainGate fournit wallets, transactions et RPC managé pour Ethereum et plus de 20 autres blockchains en une seule installation.