Verifying Bitcoins genesis message

Nathan Wilson
2 min readJan 3, 2021

12 years ago today (2009–01–03) the Bitcoin network went live with the genesis block being created. Within this block was a message:
“The Times 03 Jan 2009 Chancellor on Brink of Second Bailout for Banks”.

In the true Bitcoin’er spirit of “don’t trust, verify” we will be going through how we can manually verify that this message is included in our Bitcoin nodes and where to find it.

Prerequisites

  • Hex Editor/Viewer:
    Windows: HdX (https://mh-nexus.de/en/hxd/)
    Linux: (hexdump, hexedit)
  • The first blk00000.dat file (this contains the raw block data)

The first Bitcoin block doesnt adhere to the standard consensus rules, so getrawtransaction, and other Bitcoin Core console commands do not work.

To get the blk00000.dat file you need a non-pruned node or a brand new node when it firsts starts its sync.

Viewing Block Data

The Bitcoin Core client comes with default tools that allow you to view block data. Unfortunately this wont be enough for us, as the genesis block isnt an ordinary block.

Bitcoin Core console command

To retrieve the contents of the genesis block and its transaction, we will need to view the raw data. To do this, we first need the data file blk00000.dat, located below.

Data file location:
Windows: %appdata%/Bitcoin/blocks
Linux: ~/.bitcoin/blocks

Once the blk00000.dat is located can open it in a hex viewer/editor.

HxD (Windows)
Hexdump (Linux)

Bonus: You can always open the file with any general text editor manually look for the text, or you could run it through other tools like ‘strings

Linux utility strings only showing data from blk00000.dat where there is a sequence of characters larger than 20.

--

--