🌱

The Genesis Block

4 min read

history educational
Share: X Bluesky Mastodon Reddit HN

On January 3, 2009, an anonymous developer named Satoshi Nakamoto mined a block on a network nobody else was using yet. Block zero. Fifty bitcoin to an address that would never be spent from. A coinbase scriptSig containing a London Times headline, hardcoded permanently into the genesis of a new monetary system.

Today, years later, you can still read that headline directly off the chain. Let's do that, one RPC at a time.

The hash

Every block has a unique hash. The genesis block’s was the first ever computed. It begins with a long run of leading zeros, the result of a proof-of-work search Satoshi ran on his own machine before publishing the network. You can retrieve it yourself using Bitcoin Core’s getblockhash RPC, which takes a block height, in this case 0, and returns the block’s hash.

Open in playground → returns the genesis block hash

You should see 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f. That's it. The first block hash in the longest-running, highest-value blockchain in existence.

The block itself

Now let's look at the block's structure. Pass the hash to the getblock RPC and you'll see the header (version, previous-block, merkle-root, time, bits, nonce) plus a single transaction: the coinbase.

Open in playground → full block, height 0

Notice previousblockhash isn't there: there is no previous block. The chain starts here. The time field reads 1231006505, which is January 3, 2009 18:15:05 UTC.

The transaction

The genesis block contains exactly one transaction, a coinbase that mints 50 BTC to a P2PK output. Bitcoin Core treats this transaction as a special case: its output was never added to the UTXO set, so it can't be spent, and getrawtransaction refuses to return it, even with txindex=1.

But you can read it. Ask getblock for the genesis block again, this time at verbosity 2, and the coinbase comes back decoded inline. The transaction's id: 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b.

Open in playground → the famous coinbase

Look at the tx[0].vin[0].coinbase field. That's the data Satoshi embedded in the input scriptSig. It's a hex string. Decode it as ASCII:

04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73

The headline from The Times of January 3, 2009: "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks".

This serves two purposes. First, it timestamps the genesis block, no genesis block could have been mined before that newspaper existed. Second, it's a permanent editorial: a new monetary system, mined into existence at the moment the old one was on the brink of its second bailout in three months.

The output that never moved

The 50 BTC subsidy went to a P2PK output paying 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa. That address has received additional donations from admirers over the years, mostly tiny, plus one payment of about 26.9 BTC in January 2024, but the original 50 BTC has never been spent.

Open in playground → address structure check

Satoshi could not spend it even with the private key: the genesis coinbase was never added to the UTXO set, so no node would accept a transaction spending it. Whether that was deliberate or an accident of how the first block was coded is one of Bitcoin's most durable mysteries. Either way, those coins have never moved.

What you just did

Four RPC calls, four pieces of permanent on-chain history surfaced from raw bytes. Every Bitcoin Core node in the world will return the same answers, because that's the point: a permissionless, deterministic ledger that anyone can audit.

Sources

Corrected October 2, 2026. An earlier version told readers to fetch the genesis coinbase with getrawtransaction, which Bitcoin Core refuses for this one transaction; the story now uses getblock at verbosity 2. It said the old system was being bailed out for the second time in eighteen months; the bailout the Times headline counts as the first was the UK bank rescue of October 2008, under three months before the genesis block, and the second was still only being considered on January 3, 2009. It also asked whether Satoshi could spend the original 50 BTC or chose not to, when that output cannot be spent with any key, and it called the later donations to the address small, though one payment in January 2024 was about 26.9 BTC.