TXID (Transaction ID) is basically an identification number for a bitcoin transaction.
f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16- First ever Bitcoin transaction to Hal Finney in 2010.
a1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d- Pizza transaction for 10,000 BTC in 2010.
4ce18f49ba153a51bcda9bb80d7f978e3de6e81b5fc326f00465464530c052f4- The transaction containing the first donation I received for making this website.
TXID is always 32 bytes (64 characters) and hexadecimal.
Creating a TXID
Searching for TXIDs in the blockchain.
If you’ve just hashed some transaction data and want to search for a TXID in the blockchain, you have to search for it in reverse byte order.
txid (original): 169e1e83e930853391bc6f35f605c6754cfead57cf8387639d3b4096c54f18f4 txid (searching): f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16
Because welcome to Bitcoin.
Due to historical accident, the tx and block hashes that bitcoin core uses are byte-reversed. I’m not entirely sure why. May be something like using openssl bignum to store hashes or something like that, then printing them as a number. – Wladimir van der Laan (Bitcoin Core developer)
In other words, this was a slight oversight in the early development of Bitcoin that has now become a standard.
Where are TXIDs used?
1. Searching the blockchain.
If you’ve just made a transaction, you can use the
TXID to find it in the blockchain. For example:
If you have been given a
TXID by your bitcoin wallet, it’s probably already in its “searchable” format (reverse byte order).
2. Spending outputs.
Because after all, a
TXID is a unique identifier1 for a transaction.
Hash functions like SHA256 are great for creating identification numbers, because they will take in any string of data and always spit out a short yet unique result.
Coinbase transactions having the same TXID.
There has been a situation where two “different” coinbase transactions had the same TXID.
These coinbase transactions used the same
address when claiming the block reward from two different blocks. This meant that their transaction data was the same, and so the TXIDs were the same also. Here are the transactions and the blocks they were included in:
Initially, BIP 30 introduced a rule that prevented blocks from containing a TXID that already exists. Later, BIP 34 required coinbase transactions to include the height of the block the were mining in to their transaction data, so that coinbase transactions could be different.