What am I doing wrong in calculating Merkle root of the block with only 2 transactions (block #99997)?

I want to learn how to calculate the Merkle root so I started from a simple example, a block with only 2 transactions (block #99997). However, I ran into a problem.

Mempool online block explorer says that the Merkle root of this block is: `5140e5972f672bf8e81bc189894c55a410723b095716eaeec845490aed785f0e`.

However, I am getting the different value.

Two transactions are contained inside the block #99997 and their TXID are:

• `b86f5ef1da8ddbdb29ec269b535810ee61289eeac7bf2b2523b494551f03897c`

• `80c6f121c3e9fe0a59177e49874d8c703cbadee0700a782e4002e87d862373c6`

I did the following steps:

1. concatenation of transaction IDs
(result:`b86f5ef1da8ddbdb29ec269b535810ee61289eeac7bf2b2523b494551f03897c80c6f121c3e9fe0a59177e49874d8c703cbadee0700a782e4002e87d862373c6`)
2. SHA256 of the result from the step 1 (result:`e08d8ecc5a02b113bea1e7e2786b8235ddb5ab6058910f30b4d966b30e484bda`)
3. SHA256 of the result from the step 2 (result:`5ab58ee21a1ae7476d59e6b7ddb05a80e8b42a4bf5748e9c5db9eb860b2bd040`)

As you can see I got the different value for the Merkle root than the one presented on the Mempool site.

Mine: `5ab58ee21a1ae7476d59e6b7ddb05a80e8b42a4bf5748e9c5db9eb860b2bd040`

Their: `5140e5972f672bf8e81bc189894c55a410723b095716eaeec845490aed785f0e`

What am I doing wrong?

• You are right, you confused me with this "`However, it is normally presented in reverse order (it's not completely clear why Satoshi did it this way)...`. I assumed you are talking about the way we are calculating merkle tree (since you mentioned Satoshi) and not the way it is represented in Block explorers. In block explorers it is presented in reversed form and when we are calculating merkle tree we are using "normal" form. Nov 28, 2023 at 2:14