How to find the secret message in Bitcoin’s first transaction?

Satoshi left a secret message in Bitcoin’s first transaction:

The Times 03/Jan/2009 Chancellor on brink of second bailout for banks

It refers to this article in The Sunday Times. The point is to prove that the chain was created at least by that date. It’s also a tongue-in-cheek joke about the nature of currency and how governments manage it. You don’t have to take my word for it, though. Here is how to find it yourself albeit using the Bitcoin GUI instead of the command-line interface.

The goal is to find that secret message in the first transaction.

Start the GUI. Go to the console.

We want to see the first block on the chain. Get its hash with the call:

getblockhash 0

and you’ll get the result

000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

That is the primary key for the first block called the Genesis Block.

Get the block for it’s ID:

getblock 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

and you’ll get the result:

{
  "hash": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",
  "confirmations": 703293,
  "strippedsize": 285,
  "size": 285,
  "weight": 1140,
  "height": 0,
  "version": 1,
  "versionHex": "00000001",
  "merkleroot": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
  "tx": [
    "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"
  ],
  "time": 1231006505,
  "mediantime": 1231006505,
  "nonce": 2083236893,
  "bits": "1d00ffff",
  "difficulty": 1,
  "chainwork": "0000000000000000000000000000000000000000000000000000000100010001",
  "nTx": 1,
  "nextblockhash": "00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048"
}

There is one transaction in that block. The list of transactions follows the “tx:” string. It’s ID starts with 4a5e1e4baab89.

Get that transaction now:



gettransaction 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b

and you’ll get the result:

No wallet is loaded. Load a wallet using loadwallet or create a new one with createwallet. (Note: A default wallet is no longer automatically created) (code -18)

Bitcoin only knows about transactions associated with your wallet. You don’t have one loaded. Even if you had one loaded, your wallet wouldn’t be associated with that transaction anyway. For us, that doesn’t matter anyway though we just want to see the transaction. Note: if you have enabled the transaction index on your server, then go back to this post about the transaction index. If you haven’t already enabled it, do so now, then carry on.

Since that transaction isn’t associated with a wallet, we have to look up its raw transaction.

You can look up the transaction in its raw form.

getrawtransaction 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b

and you’ll get the result:

The genesis block coinbase is not considered an ordinary transaction and cannot be retrieved (code -5)

Gosh, OK. There is no way to see that first transaction. However, that is OK. It turns out that the secret message isn’t hidden there. Instead, it is hidden in the coinbase.

When miners are rewarded is stored in the coinbase. That data structure can hold additional data, and that is where Satoshi hid the message. You can see it by getting all of the information from the block available like this:

getblock 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f 2

look for this value:

"hex":
  "0100000001000000...

Take that hex value and convert to ASCII at the command line:

echo "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff
4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e20
6272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a010000
00434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f3
5504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000" | xxd -r -p

and there you have it:

The Times 03/Jan/2009 Chancellor on brink of second bailout for banks

There is the secret message forever immutably provably frozen in time.

So cool!