¿Qué es un hash de transacción (TXID) y cómo se comprueba?

Los ID de transacción en Bitcoin, Ethereum, Solana y XRP, explicados por ChainGate.

Un hash de transacción (también llamado TXID, ID de transacción o tx hash) es el identificador único de una transacción en una blockchain. Se obtiene aplicando una función hash a los propios datos de la transacción, así que queda fijado en el momento en que la transacción se firma, y cualquiera puede pegarlo en un explorador de bloques para ver el remitente, el destinatario, el importe, la comisión y el estado de confirmación.

En Bitcoin y Ethereum es un string hexadecimal de 64 caracteres. Ethereum y el resto de cadenas EVM le anteponen el prefijo 0x, lo que da 66 caracteres. Solana usa en su lugar la firma de la transacción, un string más largo en base58, y el XRP Ledger escribe sus hashes en mayúsculas.

Tarde o temprano toda wallet, exchange o servicio de soporte te pide un hash de transacción, y la mayoría de explicaciones se quedan en "un identificador único". Esta guía va más allá: de qué está hecho el string, por qué tiene un aspecto distinto en cada cadena, de dónde copiar el tuyo, cómo leer la página del explorador que abre y el puñado de casos en los que el hash que te dieron deja de funcionar.

La versión corta

  • Hash de transacción e ID de transacción son lo mismo. Wallets, exchanges y exploradores usan los nombres indistintamente, junto con TXID, tx hash y hash ID.
  • La longitud te dice la familia de cadenas: 64 caracteres hexadecimales (Bitcoin), 0x + 64 (Ethereum y cadenas EVM). Solana usa en su lugar la firma de la transacción, unos 88 caracteres en base58.
  • El tuyo está en los detalles de la transacción de la wallet o en el historial de retiros del exchange, y se comprueba en el explorador de la red por la que se envió.
  • Un hash deja de funcionar cuando la transacción fue reemplazada (acelerada, cancelada, replace-by-fee) o cuando la transferencia nunca salió del registro interno del exchange.

1. ¿Qué es un hash de transacción?

Una transacción de blockchain es un pequeño bloque de datos: quién paga, a quién se paga, cuánto, qué comisión y una firma. Pasa esos datos por la función hash de la red y obtienes un número de longitud fija. Ese número es el hash de transacción. Cualquier cambio en los datos produce un número distinto, así que el hash funciona como una huella digital: nombra exactamente una transacción y ninguna otra.

Nodos, wallets y exploradores usan el hash como clave de búsqueda. Cuando emites una transacción, el nodo que la acepta te devuelve el hash. Cuando tu wallet muestra "pendiente", está consultando a la red por ese hash. Cuando un exchange pide una prueba de un depósito, el hash es lo que comprueba. Es la única referencia que necesitas para seguir un pago desde la emisión hasta la confirmación.

El hash por sí mismo no demuestra nada. Es una clave de búsqueda, y la prueba es lo que muestra el explorador cuando lo abres.

2. ¿Es lo mismo un hash de transacción que un ID de transacción?

Sí. Hash de transacción, ID de transacción, TXID, tx hash, txn hash y hash ID se refieren todos al mismo string. El vocabulario depende de dónde estés: el software de Bitcoin dice txid, las herramientas de Ethereum dicen transaction hash o txn hash, y los exchanges suelen decir TXID o hash ID en sus pantallas de retiro. Solana es el único sitio donde el término difiere de fondo. Su ID de transacción es la primera firma de la transacción y no un hash de la transacción completa, así que su documentación dice "signature".

Hay dos cosas que se confunden a menudo con él y no son lo mismo. Una dirección de wallet identifica una cuenta, no un pago (en Bitcoin empieza por 1, 3 o bc1). Un hash de bloque identifica un bloque entero que contiene muchas transacciones. Si un exchange rechaza el string que pegaste, comprueba que no hayas copiado uno de esos.

3. ¿Qué aspecto tiene un hash de transacción?

El formato depende de la cadena, y normalmente basta para saber a qué red pertenece un hash:

RedFormatoLongitudEjemplo
Bitcoin, Litecoin, Dogecoin, Bitcoin CashHexadecimal en minúsculas64 caracteres4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
Ethereum, Polygon, BNB Smart Chain, Arbitrum, Base, Avalanche C-Chain y todas las demás cadenas EVM0x seguido de 64 caracteres hexadecimales en minúsculas66 caracteres0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017
SolanaFirma en base58: dígitos y letras, sin prefijo 0xUnos 87 u 88 caracteresMás larga que un hash hexadecimal, mezcla mayúsculas y minúsculas
XRP LedgerHexadecimal en mayúsculas64 caracteresDígitos y las letras de la A a la F, todo en mayúsculas

El ejemplo de Bitcoin es la primera transacción registrada en la historia, la coinbase del bloque génesis minado el 3 de enero de 2009; puedes abrirla en mempool.space. El ejemplo de Ethereum es el que usa la documentación para desarrolladores de ethereum.org. Ambos son 32 bytes escritos en hexadecimal, por eso tienen 64 caracteres; el prefijo 0x es la convención de Ethereum para indicar "esto es hexadecimal". Litecoin, Dogecoin y Bitcoin Cash heredan el formato de Bitcoin, y todas las redes EVM heredan el de Ethereum, así que una transacción en Polygon o Base tiene exactamente el mismo aspecto que una en la mainnet de Ethereum.

El ID de una transacción de Solana es la firma de la transacción: 64 bytes de firma Ed25519 codificados en base58 en lugar de hexadecimal, por eso es más largo y contiene letras tanto mayúsculas como minúsculas. Los hashes del XRP Ledger son los mismos 256 bits que los de Bitcoin, escritos en mayúsculas por convención.

4. ¿Cómo se genera un hash de transacción?

Cada cadena aplica el hash a su propia serialización de la transacción firmada, y las diferencias explican algunas cosas con las que te vas a encontrar.

Bitcoin, Litecoin, Dogecoin, Bitcoin Cash
El txid es el doble SHA-256 de la transacción en su serialización tradicional, que deja fuera los datos de testigo (firma) de las entradas SegWit; el testigo lo cubre un segundo identificador, el wtxid. Así lo define BIP 141, y por eso un tercero no puede alterar antes de la confirmación el txid de una transacción que solo gasta salidas SegWit.
Ethereum y cadenas EVM
El hash es el Keccak-256 de la transacción firmada y serializada, así que solo existe una vez firmada la transacción: librerías como ethers devuelven null como hash de una transacción sin firmar. El nodo devuelve el hash de 32 bytes como resultado de eth_sendRawTransaction, y ese mismo valor es el que pasas a eth_getTransactionByHash y eth_getTransactionReceipt.
Solana
No hay un hash aparte. La primera firma Ed25519 de la transacción, 64 bytes mostrados como string en base58, se usa como su ID.
XRP Ledger
Un hash SHA-512Half (los primeros 256 bits de un SHA-512) de la forma binaria de la transacción firmada, con los bytes TXN como prefijo antes de aplicar el hash, escrito como 64 caracteres hexadecimales en mayúsculas.

Las definiciones están en BIP 141, la especificación JSON-RPC de Ethereum, la página de terminología de Solana y la referencia de tipos de datos del XRP Ledger.

Lo que todas comparten: el hash lo calcula quien firma la transacción, antes de que llegue a la red. Tu wallet conoce el hash en el instante en que pulsas enviar, y por eso puede mostrarlo mientras la transacción sigue sin confirmar.

5. ¿Dónde encuentro mi hash de transacción?

Depende de quién envió la transacción.

Wallet de autocustodia (MetaMask, Ledger, Trust Wallet, Phantom, Electrum)
Abre la transacción en la lista de actividad o historial de la wallet. La pantalla de detalles muestra el hash, normalmente con un botón para copiarlo y un enlace "ver en el explorador" que lo abre por ti.
Retiro desde un exchange
Ve al historial de retiros. Una vez que el exchange ha emitido la transacción, la fila muestra un TXID, a menudo como enlace. Si la fila todavía dice en proceso, el hash aún no existe porque no se ha firmado nada.
Alguien te pagó
Pídele el hash, o abre tu dirección de recepción en un explorador de bloques: todas las transacciones que han tocado la dirección aparecen listadas con su hash.
Tu propio código
La llamada de emisión lo devuelve. Con el SDK de ChainGate es el campo transactionId del resultado de signAndBroadcast(), tanto en Bitcoin como en Ethereum (ver la sección 10).

Copia el string completo. Los exchanges rechazan hashes a los que les falta un carácter o les sobra un espacio, y un txid de Bitcoin pegado en un explorador de Ethereum sencillamente no aparecerá.

6. ¿Cómo compruebo una transacción con su hash?

Pégalo en un explorador de bloques de la red por la que se envió la transacción. El explorador muestra si la transacción está pendiente o confirmada, cuántas confirmaciones tiene, el bloque que la incluyó, el remitente y el destinatario, el importe, la comisión pagada y, en Ethereum, si la ejecución tuvo éxito o falló.

RedExploradorQué mirar
Bitcoinmempool.space, blockchain.comConfirmaciones (6 es el "final" habitual), tarifa en sat/vB, posición en la mempool mientras no se confirma
EthereumEtherscanEstado (Success, Fail, Pending), número de bloque, gas usado y comisión de la transacción, transferencias de tokens
Polygon, BNB Smart Chain, Arbitrum, Base, AvalanchePolygonscan, BscScan, Arbiscan, Basescan, SnowtraceMisma disposición que Etherscan; cada explorador solo conoce su propia cadena
Litecoin, Dogecoin, Bitcoin CashBlockchair o el explorador propio de cada monedaConfirmaciones y comisión, como en Bitcoin
SolanaSolscan, Solana ExplorerNivel de commitment (processed, confirmed, finalized), comisión en SOL, las instrucciones ejecutadas
XRP LedgerXRPScan, el explorador de xrpl.orgCódigo de resultado (tesSUCCESS significa que se ejecutó), índice del ledger, destination tag

Lee primero el estado. "Pendiente" o "sin confirmar" significa que la red tiene la transacción pero ningún bloque la ha incluido todavía. "Success" con una o más confirmaciones significa que el dinero se movió. "Fail" o "dropped" significa que no, y en Ethereum la comisión se pagó igualmente. Para saber qué significa cada campo de la página de una transacción de Ethereum, lee la guía de Etherscan.

7. ¿Por qué no encuentro mi transacción en el explorador?

Una página de "transacción no encontrada" casi siempre se debe a uno de estos motivos:

Red equivocada
El hash es de una cadena distinta a la del explorador. Un retiro de USDT puede viajar por Ethereum, Tron, BNB Smart Chain o Polygon, y cada una tiene su propio explorador. Usa el explorador de la red que elegiste al retirar.
Demasiado pronto
Una transacción tarda unos segundos en propagarse, y un exchange puede mostrar el TXID un momento antes de que los exploradores lo indexen. Espera un minuto y recarga.
Nunca llegó a la cadena
Las transferencias entre dos cuentas del mismo exchange, y los pagos con tarjeta o por banco, se registran en la base de datos de la empresa y no en una blockchain, así que no hay ningún hash que encontrar. Solo los envíos on-chain tienen uno.
Fue reemplazada
Si la transacción se aceleró, se canceló o se reemitió con replace-by-fee, el reemplazo tiene un hash nuevo y la red descarta el antiguo. La siguiente sección explica por qué.
Caducó
Una transacción de Bitcoin con una comisión demasiado baja se elimina de las mempools de los nodos al cabo de unas dos semanas. Los fondos vuelven a estar disponibles y el txid antiguo no se refiere a nada.

La guía de comisiones de Bitcoin explica cómo elegir una comisión que se confirme y qué hacer cuando una se queda atascada.

8. ¿Puede cambiar un hash de transacción?

El hash de una transacción confirmada no cambia nunca: forma parte del bloque, y alterarlo alteraría el bloque. Antes de la confirmación, el hash puede quedar sustituido por otra transacción, lo que desde fuera parece un cambio.

En Ethereum y otras cadenas EVM, acelerar o cancelar una transacción pendiente significa firmar una transacción nueva con el mismo nonce y una comisión mayor, como describe la página de ayuda de MetaMask. La red se queda con la que llegue a minarse y descarta la otra. La transacción nueva tiene un hash nuevo, así que el que tu wallet mostró al principio se convierte en un enlace muerto. Lo mismo ocurre con el replace-by-fee de Bitcoin (BIP 125): el reemplazo es una transacción distinta con un txid distinto.

Las transacciones antiguas de Bitcoin tenían un problema más, la maleabilidad de transacciones: un tercero podía retocar la codificación de la firma de una transacción sin confirmar y darle un txid distinto sin cambiar adónde iba el dinero. Segregated Witness (BIP 141, activo desde 2017) sacó las firmas de los datos que cubre el txid, lo que eliminó el problema para las transacciones que gastan salidas SegWit. Si tu wallet usa direcciones que empiezan por bc1, esto no te afecta.

9. ¿Es seguro compartir un hash de transacción?

Sí. El hash no contiene claves, ni contraseñas, ni nada que permita a nadie mover tus fondos. Quien lo tenga puede ver lo que muestra el explorador: las direcciones implicadas, el importe y la hora. Esa información ya es pública, porque la blockchain es pública; el hash solo facilita encontrarla.

El único matiz de privacidad: dar a alguien el hash de un pago le dice qué dirección es tuya, y a partir de ahí todas las demás transacciones de esa dirección. Si eso te importa, usa una dirección de recepción nueva para cada pago, que es lo que la mayoría de wallets de Bitcoin hace por defecto.

10. Cómo obtener el hash desde código

Si tu aplicación envía transacciones, guarda el hash que devuelve la llamada de emisión: es la clave para comprobar el estado, para los tickets de soporte y para la conciliación. Con el SDK de ChainGate las mismas líneas funcionan en Bitcoin, Litecoin, Dogecoin, Bitcoin Cash y cualquier red 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);
});

El tutorial para enviar cripto en JavaScript cubre wallets, comisiones y gestión de errores, y la documentación de transferencias lista todos los campos del resultado de la emisión, incluido el callback onConfirmed() usado arriba.

11. Por dónde seguir

Ya puedes leer un hash como lo hace un explorador: qué cadena, qué transacción y si es definitiva. Para entender la línea de comisión de esa página del explorador, lee qué son las gas fees en Ethereum y cómo funcionan las comisiones de Bitcoin, y para ver cuánto cuesta enviar ahora mismo en cada red, abre el gas tracker. Si quieres que la emisión, los callbacks de confirmación y los ID de transacción se resuelvan en Bitcoin y las cadenas EVM desde una sola librería TypeScript, ChainGate lo hace.

Preguntas frecuentes

¿Qué es un hash de transacción en cripto?

El identificador único de una transacción de blockchain, obtenido aplicando una función hash a los datos de la transacción. En Bitcoin son 64 caracteres hexadecimales; en Ethereum y otras cadenas EVM es 0x seguido de 64 caracteres hexadecimales. Pégalo en un explorador de bloques para ver el estado, las direcciones, el importe y la comisión de la transacción.

¿Es lo mismo un hash de transacción que un ID de transacción (TXID)?

Sí. Hash de transacción, ID de transacción, TXID, tx hash y hash ID son nombres distintos para el mismo string. Solo Solana difiere de fondo: su ID de transacción es la primera firma de la transacción y no un hash.

¿Qué aspecto tiene un hash de transacción?

Bitcoin, Litecoin, Dogecoin y Bitcoin Cash: 64 caracteres hexadecimales en minúsculas. Ethereum, Polygon, BNB Smart Chain, Arbitrum, Base y otras cadenas EVM: 0x más 64 caracteres hexadecimales, 66 en total. Solana: una firma en base58 de unos 88 caracteres. XRP Ledger: 64 caracteres hexadecimales en mayúsculas.

¿Cómo encuentro el hash de transacción de un retiro?

Abre el historial de retiros en el exchange. Una vez emitido el retiro, la fila muestra el TXID, a menudo como enlace a un explorador de bloques. Si todavía dice en proceso, la transacción aún no se ha firmado y no existe ningún hash.

¿Cómo compruebo un hash de transacción?

Pégalo en el explorador de bloques de la red por la que se envió: mempool.space o blockchain.com para Bitcoin, Etherscan para Ethereum, Polygonscan, BscScan, Arbiscan o Basescan para las demás cadenas EVM, Solscan para Solana. La página muestra el estado, las confirmaciones, el remitente, el destinatario, el importe y la comisión.

¿Por qué el explorador dice que no se encontró la transacción?

Normalmente porque el hash pertenece a una red distinta a la del explorador, la transacción tiene solo unos segundos, fue una transferencia interna de un exchange que nunca tocó la blockchain, o fue reemplazada por una transacción acelerada o cancelada con un hash nuevo.

¿Puede cambiar un hash de transacción?

Una vez confirmada la transacción, no. Antes de eso, acelerarla, cancelarla o usar replace-by-fee crea una transacción nueva con un hash nuevo, y la original se descarta. Las transacciones antiguas de Bitcoin también podían ser alteradas por terceros (maleabilidad), algo que SegWit corrigió en 2017.

¿Es seguro compartir mi hash de transacción?

Sí. No contiene claves privadas y no puede usarse para mover fondos. Revela las direcciones, el importe y la hora del pago, que de todas formas son públicos en la blockchain.

¿Cuántos caracteres tiene un hash de transacción?

64 en las cadenas de la familia Bitcoin y en el XRP Ledger, 66 en Ethereum y las cadenas EVM por el prefijo 0x. Ambos representan los mismos 32 bytes. Los ID de transacción de Solana son firmas en base58, normalmente de 87 u 88 caracteres.

Construye con ChainGate

Lleva estas ideas al código — ChainGate te ofrece wallets, transacciones y RPC gestionado para Ethereum y más de 20 blockchains con una sola librería.