§ Q & A · Verification

How can I verify Bitcoin's 21M supply cap myself?

Short answer

Run a Bitcoin node. It independently validates every block since the genesis block, enforces the 21 million supply cap in consensus code, and will reject any block that exceeds it. No trust in any third party required.

Last updated · April 23, 2026

21M Emission Curve · Supply Schedule94.8% mined
Now (2026)19.92M BTC94.8% mined
05M10M15M21M20092014201920242029203420392044204921,000,000 BTC limit50% · 201390% · 202399% · 2036TodayBTC Mined (cumulative)

Computed from Bitcoin halving schedule: 210,000 blocks per epoch, 144 blocks/day average. Hover or tap to explore any year. Supply asymptotes at ≈20,999,999.9769 BTC around year 2140.

Run a Bitcoin node. That is the short answer, and it is the correct one. A Bitcoin full node downloads every block from the genesis block in January 2009 to the present, validates every transaction against Bitcoin’s consensus rules, and enforces the 21 million supply cap directly in code. No mining pool, no exchange, no government, and no journalist can tell you the supply is 21 million — your node tells you because it checked every single block itself.

The supply cap is not a marketing claim. It is not a promise from a CEO. It is a mathematical consequence of a function in Bitcoin’s consensus code called GetBlockSubsidy(). That function determines how many new bitcoins a miner is allowed to claim when they find a valid block. The function halves its output every 210,000 blocks. If a miner ever attempts to claim more than the subsidy allows, every other node on the network rejects that block outright — it never enters the chain. The rule enforces itself, collectively, across approximately 20,000 independent nodes worldwide.

If you want to hold Bitcoin and you want to know for certain that the 21 million cap is real and not a claim you’re taking on faith, you don’t need to read an explainer — you need to verify. This page shows you how.

The mechanism: GetBlockSubsidy() and the halving

The source code that enforces Bitcoin’s supply cap lives in validation.cpp in the Bitcoin Core repository. The relevant function is GetBlockSubsidy(). Here is the logic in plain English:

The initial block subsidy was 50 BTC per block. Every 210,000 blocks, that subsidy is halved using a right-bit-shift operation. Block 0 to block 209,999: 50 BTC subsidy. Block 210,000 to block 419,999: 25 BTC. Block 420,000 to 629,999: 12.5 BTC. And so on.

If you sum up the total bitcoin that will ever be issued across all epochs of the halving schedule, the math works out to a geometric series:

Sum of the series: 10,500,000 + 5,250,000 + 2,625,000 + … converges to 21,000,000 BTC. Precisely, because the integer arithmetic used in Bitcoin Core (working in satoshis, where 1 BTC = 100,000,000 satoshis) means small remainders are lost at each halving step, the actual final supply that will ever be mined is approximately 20,999,999.9769 BTC — slightly less than 21 million. The last satoshi will be mined sometime around the year 2140.

The bit-shift operation is not an accident. It is designed to be exact and deterministic. Every node that runs this code produces the same result. If any miner’s block claims more than GetBlockSubsidy() permits, the block is invalid, and every other node independently rejects it.

I’ve read this code. You can read it too — open the GitHub repository and search for GetBlockSubsidy. You do not need to trust me that it does what I say.

Method 1: Run your own node

The most authoritative way to verify Bitcoin’s supply is to run your own node. When I do this, I am not querying someone else’s database. I am building my own copy of the ledger by validating every block from the beginning.

Bitcoin Core (technical users). Download Bitcoin Core from bitcoincore.org. It’s free, open-source software. Run bitcoind on a machine with at least 600 GB of disk space (for the full chain), or use pruning mode if space is limited. Initial Block Download (IBD) takes one to three days on a typical home internet connection. Once synced, your node has validated every transaction and every subsidy claim since 2009. You can query your node with bitcoin-cli gettxoutsetinfo and it will report the current total supply in the UTXO set.

Umbrel. If you have a Raspberry Pi or a spare computer, Umbrel is a home server operating system that runs Bitcoin Core with a graphical interface. Setup takes about 30 minutes; syncing takes a few days. After sync, it shows you the block height, supply, and network health on a dashboard. I run an Umbrel node at home.

Start9. Similar to Umbrel, Start9 is a self-hosting platform that packages Bitcoin Core and other services. More technical than Umbrel, but stronger emphasis on operational security.

myNode. Another home node option, available both as a pre-built device and as software. Good option if you prefer something more plug-and-play.

Once any of these nodes is synced, the supply is not a claim you accepted — it is a number your own software computed by checking every block.

Method 2: Verify via mempool.space

If you want to verify the supply without running a full node right now, mempool.space provides supply graphs and current statistics based on their own node. This is still trusting their node rather than your own, but mempool.space is open-source software — their node is running the same validation code as Bitcoin Core, and you can check their GitHub repository to confirm.

The supply graph on mempool.space shows the stepwise increase in total bitcoin mined over time, with the halvings clearly visible as inflection points where the rate of new supply slows. You can see the current circulating supply and compare it against the theoretical schedule.

This method requires less trust than reading a news article, but more trust than running your own node. I use it to double-check that my own node’s numbers are in the expected range.

Why node count matters: 20,000 enforcers of the same rule

Bitcoin’s supply cap is not enforced by one server or one company. It is enforced by approximately 20,000 reachable full nodes worldwide — and an unknown number of non-listening nodes (nodes that validate but don’t accept incoming connections). According to bitnodes.io, which maps reachable Bitcoin nodes, these nodes are distributed across hundreds of countries.

Every one of those nodes runs the same GetBlockSubsidy() function. Every one of them independently checks every miner’s subsidy claim against the same rule. If a miner tries to issue themselves 100 BTC in a block instead of the allowed amount, all 20,000 nodes independently compute that the block is invalid and refuse to add it to their chain. The block doesn’t propagate.

This is the “decentralization is the point” argument made concrete. There is no single authority you could coerce, pay, or hack to change Bitcoin’s supply. You would need to simultaneously convince 20,000 independent node operators around the world to voluntarily adopt software that inflates the supply — which they would not do, because it would devalue their own holdings. The incentive structure enforces the cap at least as much as the code does.

I think about this the way I think about a constitutional law that’s enforced by millions of people who each benefit from its existence. You can’t bribe the institution when the institution is everyone.

What happens if someone tries to break the 21M cap

Let’s say a miner or a coalition of miners releases a version of Bitcoin software that removes the subsidy limit and allows them to issue 1,000 BTC per block. What happens?

  1. They find a block under this modified ruleset.
  2. They broadcast the block to the network.
  3. Every other node — running standard Bitcoin Core — receives the block and validates it. The GetBlockSubsidy() check fails. The block is rejected.
  4. The minority chain exists only among the miners who adopted the modified rules. It is not Bitcoin in any economically meaningful sense.
  5. Anyone using the standard chain — which includes every exchange, every wallet, every user who didn’t adopt the modification — is completely unaffected.

This is exactly what happened with the Bitcoin Cash hard fork in 2017. A group of miners and developers changed Bitcoin’s block size rule and forked off a new chain. The Bitcoin network continued operating under the original rules. The two chains diverged. Bitcoin’s supply cap was unaffected. The minority chain exists as a separate network, but it is not Bitcoin.

A supply cap violation is much more severe than a block size change — it is directly harmful to every existing Bitcoin holder, which means the economic incentives against adopting it are overwhelming. Even miners who might benefit from extra subsidy in the short term would be destroying the value of their own holdings by making the cap meaningless.

A quick verification right now

You can check the current circulating supply right now without any software:

  1. Open mempool.space/graphs/supply in a browser.
  2. Note the current supply figure and block height.
  3. Cross-check: at any given block height, the maximum theoretical supply is the sum of GetBlockSubsidy() outputs for all blocks up to that height. The actual supply should be close to — but slightly less than — that figure, because some early blocks were mined with less than the full subsidy, and because some bitcoin has been permanently lost.

The current supply as of mid-2024 (after the fourth halving) is approximately 19.7 million BTC mined out of the theoretical 21 million maximum. The current block subsidy is 3.125 BTC per block. The next halving will occur at block 1,050,000, at which point the subsidy drops to 1.5625 BTC.

These numbers are not announcements from a central authority. They are outputs of the same consensus code that every full node runs. Your node, when synced, will compute the same figures.

That is what “don’t trust, verify” means in practice. Not “I’ll trust this source over that source.” It means “I’ll compute the answer myself.”


Primary sources

  1. Bitcoin Core — validation.cpp (GetBlockSubsidy) [1]
  2. bitcoin.org — Running a full node [2]
  3. mempool.space — Bitcoin supply graphs [3]
  4. Bitcoin: A Peer-to-Peer Electronic Cash System [4]