Reading the Live Chain & Block Explorers
This is the payoff of the whole book. Every field you’ve studied — headers, Merkle roots, inputs, outputs, fees, the coinbase — is sitting in the live chain right now, readable by anyone. This page shows you how to inspect it, and, more importantly, how to verify what a block explorer tells you instead of trusting it.
Block explorers vs your own node
Section titled “Block explorers vs your own node”A block explorer (a website that lets you search blocks, transactions, and addresses) is convenient — but it’s a third party telling you what the chain says. That’s a trust assumption, and this whole book has been about removing those.
Block explorer Your own node ─────────────── ────────────── fast, no setup you ran the validation someone else's claim first-hand truth can lie or be wrong "don't trust, verify" fine for casual lookups required for anything that mattersUse explorers to find things quickly; use your own node to confirm anything you actually rely on. The rest of this page does both.
Walk the chain from the tip
Section titled “Walk the chain from the tip”# where is the chain tip right now?bitcoin-cli getblockchaininfo # blocks, bestblockhash, chainwork
# get the hash of a specific height, then the blockhash=$(bitcoin-cli getblockhash 800000)bitcoin-cli getblock "$hash" 1 # verbosity 1: header fields + tx idsEverything in that output maps to The Block Header (80 bytes): version,
previousblockhash, merkleroot, time, bits (the target), and nonce, plus the list of
transaction ids committed by the Merkle root.
Read a transaction’s anatomy
Section titled “Read a transaction’s anatomy”# pick a txid from the block above, then decode itbitcoin-cli getrawtransaction <txid> trueMatch the decoded fields back to Anatomy of a Transaction:
vin— each input referencing a previous output by(txid, vout)plus its witness/scriptSig.vout— each output’svalue(in BTC; ×100,000,000 for sats) and itsscriptPubKey(the lock).- The fee isn’t a field — it’s
sum(inputs) − sum(outputs), exactly as in Fees, Change & the Conservation Rule. To get input values you look up each referenced output.
fee = (Σ input values) − (Σ output values) └ found by looking up each vin's prior output ┘Spot the coinbase
Section titled “Spot the coinbase”The first transaction in every block is the coinbase (see
Coinbase Transactions). It’s unmistakable: its single input has
no real txid (it shows coinbase instead of referencing a prior output), and its outputs pay the
miner the subsidy + fees.
# the first txid in a block's tx list is the coinbasebitcoin-cli getblock "$hash" 2 | head # verbosity 2 expands full tx dataReading the coinbase value against the halving schedule tells you which subsidy era the block is in — and the leftover above the subsidy is the total fees that block collected.
Is an output still spendable?
Section titled “Is an output still spendable?”# is this (txid, vout) still in the UTXO set?bitcoin-cli gettxout <txid> <vout>A result means the output is unspent (it’s in the live UTXO set);
null means it’s already been spent. This is the exact check every node does to detect double-spends.
Verify, don’t trust: catch an explorer
Section titled “Verify, don’t trust: catch an explorer”Here’s the habit that ties everything together. Look up a transaction’s confirmation count or a block’s Merkle root on a public explorer, then confirm it against your own node:
# does the explorer's claimed block hash for height N match yours?bitcoin-cli getblockhash <N>
# does a tx the explorer shows "in block X" really commit under that block's merkleroot?bitcoin-cli gettxoutproof '["<txid>"]' <blockhash> # build the Merkle proofbitcoin-cli verifytxoutproof <proof-hex> # your node re-checks itIf your node agrees, you’ve verified rather than trusted — exactly the technique from Verify a Merkle Proof Yourself. If it ever disagrees, believe your node.
The thread
Section titled “The thread”How does this help untrusting strangers agree on one ledger? Because you can now read every field the ledger contains and re-check any claim about it against rules you understand, you no longer need to trust an explorer, an exchange, or a counterparty’s word. That’s the entire promise of Bitcoin made concrete: a ledger that mutually-distrusting strangers agree on not because someone vouches for it, but because each of them can read and verify it independently. You can now do that. You’ve finished the deep dive.
Check your understanding
Section titled “Check your understanding”- What trust assumption does a block explorer introduce, and how do you remove it?
- Given a block hash, which command shows its header fields, and which header field commits to all the transactions?
- A transaction has no
feefield. How do you compute the fee it paid? - How can you tell, from decoded data, that a transaction is the coinbase?
- Describe how you’d verify — not just trust — that an explorer’s “this tx is in block X” claim is true.