Skip to article
Degrees of SatoshiFollow the connections.
Degrees of Satoshi/ Encyclopedia

Encyclopedia How the network works · Entry 390

Anatomy of a Bitcoin block: the header, the coinbase and the weight limit, using block 0

Theme
How the network works
Sources
8 cited records
Reading time
About 9 minutes
Automated verification
Substantive update
In this article

At a glance

Key facts

Key facts for Anatomy of a Bitcoin block: the header, the coinbase and the weight limit, using block 0
FactDetailSource
Header size80 bytes, in six fields[1][4]
Header fieldsVersion (4 bytes), previous block hash (32), Merkle root (32), time (4), nBits (4), nonce (4)[1]
Block 0 mined3 January 2009, 18:15:05 UTC (Unix time 1231006505)[5][6]
Block 0 size285 bytes, 1,140 weight units, one transaction[6]
Block 0 nonce and bitsNonce 2083236893; bits 0x1d00ffff, which is difficulty 1[6][5][1]
Weight limit4,000,000 weight units per block; before SegWit the limit was 1,000,000 bytes[7]
Coinbase maturityA coinbase output cannot be spent for at least 100 blocks[3]
Height in coinbaseRequired since block 227,836 under BIP34[8][2]
01

A block is a short header and a long list of transactions

Strip away the mystique and a block is a small, fixed-size header followed by however many transactions the miner chose to include. The header is 80 bytes, a size the white paper gives in passing when it estimates that headers alone would add up to 4.2 megabytes a year at one block every ten minutes. Everything that makes a block a block, the proof-of-work, the link to the previous block, the fingerprint of its contents, lives in those 80 bytes. The transactions are the cargo.

When people talk about a block’s hash, they mean the hash of the header only. Miners hash the header repeatedly, and the developer guide notes that each block header must hash to a value below the target threshold. The transactions are not hashed directly during mining; they are represented in the header by a single 32-byte summary, which is what lets a miner try enormous numbers of header variations without touching the transaction list. Our what is a blockchain article explains how those headers chain together.

02

The six header fields, read off block 0

The developer reference lists the header fields in order. Version, four bytes, says which validation rules the block follows. Previous block header hash, 32 bytes, is the hash of the block before, which the reference says ensures no previous block can be changed without also changing this block’s header. Merkle root, 32 bytes, is derived from the hashes of all the transactions in the block. Time, four bytes, is the Unix time when the miner started hashing, and it must be greater than the median time of the previous eleven blocks. nBits, four bytes, is the encoded target the header hash must fall below. Nonce, four bytes, is an arbitrary number miners change to alter the hash.

Block 0, the genesis block, makes a good worked example because a block explorer shows every field and there is only one transaction to think about. Its version is 1. It has no previous block to point to; the Bitcoin Wiki notes that it does not reference a previous block. Its Merkle root is simply the identifier of its one transaction, which begins 4a5e1e. Its time is 1231006505, which is 3 January 2009 at 18:15:05 UTC. Its nBits value is 0x1d00ffff, the easiest target the main network allows, which the developer reference identifies as difficulty 1, and the explorer reports its difficulty as exactly 1. Its nonce is 2083236893.

One oddity: the wiki points out that the genesis block’s hash has two more leading zeros than an early block needed, meaning Satoshi found a hash far below the target, and that the next block’s timestamp is a full six days later. Nobody knows why. The header records what happened, not what was intended.

03

The coinbase transaction is where new bitcoin comes from

The white paper says that by convention the first transaction in a block is a special one that starts a new coin owned by the block’s creator. That is the coinbase transaction. Unlike every other transaction, it spends nothing. The developer reference describes its single input as pointing at a 32-byte null with an index of 0xffffffff, a placeholder meaning no previous output, followed by a script of between 2 and 100 bytes that the miner fills in more or less as it likes.

Since BIP34, proposed by Gavin Andresen on 6 July 2012, that script must begin with the block’s height, so that no two coinbase transactions can be identical. The developer reference notes that blocks before height 227,836 did not require it, and BIP34 records that block 227,835, on 24 March 2013, was the last version 1 block. The rest of the space is arbitrary data. Miners commonly put an extra nonce there, which changes the Merkle root and gives them a fresh header to search when the four-byte nonce runs out. Some also leave messages. Satoshi did: block 0’s coinbase carries the text “The Times 03/Jan/2009 Chancellor on brink of second bailout for banks.”

The coinbase output collects the block reward and every fee in the block, and it comes with a waiting period: the developer guide states that a coinbase output cannot be spent for at least 100 blocks. Block 0’s single output was 50 bitcoin, and it has never moved, because, as the wiki explains, a quirk in how the genesis block is expressed in the code means it cannot be spent. Whether that was deliberate is unknown. The coins sit at the address recorded in our genesis block coinbase dossier.

04

The Merkle root ties every transaction to the header

The developer guide describes how the root is built. Each transaction identifier is paired with another and the pair is hashed together; if there is an odd number, the one without a partner is hashed with a copy of itself. The resulting hashes are paired and hashed again, and so on, until one hash remains: the Merkle root. The coinbase transaction’s identifier always goes first. Change one byte of one transaction and the root changes, which changes the header, which changes the block hash, which would no longer satisfy the proof-of-work.

The white paper introduced the structure for a practical reason: disk space. Old transactions could be pruned away while the root in the header stayed valid, and a light client could check that a transaction was in a block by asking for the short branch of hashes linking it to the root, without downloading the block. That is the Merkle branch in the paper’s payment-verification section, and it is why a phone wallet can confirm a payment while holding only headers. The nodes article covers what a light client gives up by doing so.

05

Size versus weight: how big a block can be

Originally Bitcoin had one limit: BIP141 records that blocks were limited to 1,000,000 bytes. The Segregated Witness upgrade, specified in that BIP by Eric Lombrozo, Johnson Lau and Pieter Wuille, replaced the byte count with a new measure. Block weight is the base size, meaning the block serialized the old way without signature data, times three, plus the total size including that data. A block’s weight must be no more than 4,000,000 units.

The effect is that signature data counts a quarter as much as everything else, which is why a block can be larger than a megabyte on disk while its weight stays under the cap. Block 0 makes the arithmetic visible. It is 285 bytes and has no witness data, so its base size and total size are the same, and its weight is 285 times three plus 285, which is 1,140, exactly what the explorer reports. A transaction’s virtual size, the number wallets use when they quote fees in satoshis per virtual byte, is its weight divided by four, rounded up to a whole virtual byte.

That limit was the subject of a years-long argument covered in the block size war dossier, and it is the reason fees rise when demand does. The SegWit article explains where witness data went and why. If you want to inspect any of these fields yourself, our guide to reading a block explorer shows where each one appears.

Direct answers

Questions people ask

How big is a Bitcoin block?

The limit is 4,000,000 weight units, where weight is the block’s base size times three plus its total size including signature data. Before Segregated Witness the limit was 1,000,000 bytes. A block full of ordinary transactions comes in well under four megabytes on disk because most of its bytes are counted at full weight.

What is the nonce in a Bitcoin block?

A four-byte number in the header that miners change to produce a different hash on each attempt. When all four billion or so values are used up, miners change an extra nonce in the coinbase transaction instead, which alters the Merkle root and gives them a fresh header to search.

What is the coinbase transaction?

The first transaction in every block. It has no real input, creates the block reward plus the block’s fees as new outputs for the miner, must include the block height since BIP34, and its output cannot be spent for at least 100 blocks.

When was block 0 mined?

Its header timestamp is 1231006505, which is 3 January 2009 at 18:15:05 UTC. It is 285 bytes, contains one transaction, was mined at difficulty 1 with nonce 2083236893, and the next block did not appear until six days later.

What is the Merkle root?

A single 32-byte hash in the header that summarizes every transaction in the block. Transaction identifiers are hashed together in pairs, then the results are paired and hashed again, until one hash is left. Changing any transaction changes the root and therefore the block’s hash.

Inspect the evidence

The answer and key facts have stable claim links. These records retain the scope and qualification when reused.

A Bitcoin block is an 80-byte header followed by a list of transactions. The header holds six fields: a version number, the hash of the previous block, a Merkle root that summarizes every transaction, a timestamp, an encoded difficulty target, and a nonce that miners change while searching for a valid hash. The first transaction, the coinbase, creates the block reward. Block 0, mined on 3 January 2009, is 285 bytes and holds a single transaction.

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Header size: 80 bytes, in six fields

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Header fields: Version (4 bytes), previous block hash (32), Merkle root (32), time (4), nBits (4), nonce (4)

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Block 0 mined: 3 January 2009, 18:15:05 UTC (Unix time 1231006505)

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Block 0 size: 285 bytes, 1,140 weight units, one transaction

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Block 0 nonce and bits: Nonce 2083236893; bits 0x1d00ffff, which is difficulty 1

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Weight limit: 4,000,000 weight units per block; before SegWit the limit was 1,000,000 bytes

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Coinbase maturity: A coinbase output cannot be spent for at least 100 blocks

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Height in coinbase: Required since block 227,836 under BIP34

Scope: Bitcoin. Verification: verified · 2026-10-02T16:01:48.343Z.

Link to this claim
Revision history
  1. — Initial Bitcoin encyclopedia entry at this permanent URL.
  2. — Corrected scope or wording: weight divided by four Corrected scope or wording: rounded up to a whole virtual byte, rounded up
  3. — Added reusable claims, explicit source locators, and matching Markdown and JSON. This publishing change does not itself establish factual verification.

Source register

Sources and references

Retrieval dates and locators are recorded individually.
  1. Bitcoin Developer Reference: Block Chain (Block Headers)Bitcoin Project, developer.bitcoin.org

    Lists the six 80-byte header fields with sizes and meanings, the median-time rule for timestamps, the nBits encoding with 0x1d00ffff as difficulty 1 on mainnet, and states that the coinbase txid is placed first and collects rewards and fees.

    Locator: Lists the six 80-byte header fields with sizes and meanings, the median-time rule for timestamps, the nBits encoding with 0x1d00ffff as difficulty 1 on mainnet, and states that the coinbase txid is placed first and collects rewards and fees. · Retrieved: 2026-10-02T14:48:37.089132+00:00Open source
  2. Bitcoin Developer Reference: Transactions (Coinbase)Bitcoin Project, developer.bitcoin.org

    Describes the coinbase input as a null outpoint with index 0xffffffff, a script of 2 to 100 bytes beginning with the block height under BIP34 since height 227,836, and the extra nonce miners put in the remaining space.

    Locator: Describes the coinbase input as a null outpoint with index 0xffffffff, a script of 2 to 100 bytes beginning with the block height under BIP34 since height 227,836, and the extra nonce miners put in the remaining space. · Retrieved: 2026-10-02T14:48:40.879756+00:00Open source
  3. Bitcoin Developer Guide: Block ChainBitcoin Project, developer.bitcoin.org

    States that each header must hash below the target, that a coinbase output cannot be spent for at least 100 blocks, and how the Merkle tree pairs txids, hashing an unpaired txid with a copy of itself.

    Locator: States that each header must hash below the target, that a coinbase output cannot be spent for at least 100 blocks, and how the Merkle tree pairs txids, hashing an unpaired txid with a copy of itself. · Retrieved: 2026-10-02T14:48:36.834850+00:00Open source
  4. Bitcoin: A Peer-to-Peer Electronic Cash SystemSatoshi Nakamoto · 2008bitcoin.org

    Section 6 describes the first transaction in a block creating a new coin for its creator; section 7 gives the 80-byte header, the 4.2 MB per year estimate and the Merkle tree; section 8 describes verifying a payment from a Merkle branch.

    Locator: Section 6 describes the first transaction in a block creating a new coin for its creator; section 7 gives the 80-byte header, the 4.2 MB per year estimate and the Merkle tree; section 8 describes verifying a payment from a Merkle branch. · Retrieved: 2026-10-02T15:04:11.761440+00:00Open source
  5. Genesis blockBitcoin Wiki

    Community reference giving the timestamp of 1231006505, the coinbase headline text, the unspendable 50 bitcoin reward and its cause, the extra leading zeros in the hash, the six-day gap to block 1, and that block 0 references no previous block.

    Locator: Community reference giving the timestamp of 1231006505, the coinbase headline text, the unspendable 50 bitcoin reward and its cause, the extra leading zeros in the hash, the six-day gap to block 1, and that block 0 references no previous block. · Retrieved: 2026-10-02T14:48:36.889384+00:00Open source
  6. Block 0 (machine-readable block record)Blockstream explorer API

    Reports block 0 as height 0, version 1, timestamp 1231006505, one transaction, size 285 bytes, weight 1140, bits 486604799, nonce 2083236893, difficulty 1.0, with a Merkle root beginning 4a5e1e.

    Locator: Reports block 0 as height 0, version 1, timestamp 1231006505, one transaction, size 285 bytes, weight 1140, bits 486604799, nonce 2083236893, difficulty 1.0, with a Merkle root beginning 4a5e1e. · Retrieved: 2026-10-02T14:48:47.657357+00:00Open source
  7. BIP141: Segregated Witness (Consensus layer)Eric Lombrozo, Johnson Lau and Pieter WuilleBitcoin Improvement Proposals, GitHub

    Records the earlier 1,000,000-byte limit and defines base size, total size, block weight as base size times three plus total size with a 4,000,000 limit, and virtual size as weight divided by four, rounded up to a whole virtual byte rounded up.

    Locator: Records the earlier 1,000,000-byte limit and defines base size, total size, block weight as base size times three plus total size with a 4,000,000 limit, and virtual size as weight divided by four, rounded up to a whole virtual byte rounded up. · Version / scope: 927b6de9915c9262615a6399de51b200f81e5aa4 · Retrieved: 2026-10-02T15:04:13.421045+00:00Open source
  8. BIP34: Block v2, Height in CoinbaseGavin Andresen · 2012-07-06Bitcoin Improvement Proposals, GitHub

    Requires the block height as the first item in the coinbase script for version 2 blocks, to enforce uniqueness, and records block 227,835 on 24 March 2013 as the last version 1 block.

    Locator: Requires the block height as the first item in the coinbase script for version 2 blocks, to enforce uniqueness, and records block 227,835 on 24 March 2013 as the last version 1 block. · Version / scope: 927b6de9915c9262615a6399de51b200f81e5aa4 · Retrieved: 2026-10-02T15:04:17.161207+00:00Open source
How this article was made

Research and drafting use AI assistance. A separate automated review checks claims against primary sources; no external expert or named human review is implied. Publication, substantive editing, source retrieval and verification are recorded separately. This version was independently checked by an automated reviewer on 2 October 2026.

Editorial method and corrections

Degrees of Satoshi editorial project. “Anatomy of a Bitcoin block: the header, the coinbase and the weight limit, using block 0.” Published 2026-09-23; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/anatomy-of-a-bitcoin-block/