Definition
A full node is a Bitcoin client that downloads every block and transaction, independently verifies them against the network's consensus rules, and stores the complete blockchain on disk. By validating from the genesis block onward, a full node never trusts a third party to tell it the state of the ledger — it enforces the rules itself. This is the foundation of self-custody and sovereignty: "don't trust, verify" is only literally true when you run your own node.
What a full node enforces
A full node rejects any block or transaction that breaks consensus — invalid signatures, double-spends, inflation beyond the block subsidy, or malformed scripts. It maintains the UTXO set (the database of all spendable coins) and relays valid transactions to peers. Crucially, a full node has no say in which block gets mined, but it has absolute veto over which blocks are valid. Economic full nodes are what ultimately keep miners honest.
Storage and bandwidth
As of 2025 a full archival node stores roughly 600–650 GB of block data plus an ~8 GB UTXO set, and the initial block download can take many hours over a typical connection. Pruned nodes validate identically but discard old blocks to save space. Running a node on cheap hardware like a Raspberry Pi or mini-PC is well within reach of a home Bitcoiner. Ongoing demands are modest: after the initial download, a node validates each new block as it arrives (one roughly every ten minutes) and idles otherwise, though an archival node that serves blocks to newly syncing peers can upload substantially more than it downloads — a setting worth capping on metered connections. An SSD rather than a spinning disk makes the biggest practical difference, because validation is random-read heavy against the UTXO database.
Archival versus pruned: same security, different disk
A common misconception is that a pruned node is a lesser node. It is not. A pruned node performs the exact same full validation of every block from genesis — it simply deletes old raw block data after verifying it, keeping only the UTXO set and recent blocks. Pruning can shrink the disk footprint to a few gigabytes while sacrificing nothing in security. What you give up is the ability to serve historical blocks to other nodes and to rescan for old wallet transactions without re-downloading. The initial block download is the same either way: every signature, every script, every block header's proof-of-work gets checked on your own CPU. That one-time cost is precisely what buys you a lifetime of trustless verification.
The privacy dividend
Verification is only half the reason to run a node; the other half is privacy. A wallet that does not talk to your own node must ask someone else's server which addresses hold your coins — and that query itself reveals your entire wallet contents and IP address to a stranger. Pointing your wallets, and your Lightning node if you run one, at your own full node keeps your financial footprint on your own hardware. Many node operators also accept connections over Tor so that even their node's existence is not tied to a home IP address.
Why miners need one too
Mining and node-running are separate roles, but they meet at the block template. Solo miners — including Bitaxe-class lottery miners pointed at their own infrastructure — need a full node to construct candidate blocks and to verify that a found block is valid before celebrating. Pool miners benefit differently: a node lets you independently confirm the blocks your pool claims to have found and audit that the network is behaving as advertised. Either way, the node is the trust anchor of a sovereign mining setup: hashrate secures the chain, but only validation tells you what the chain actually says.
For sovereignty-minded setups, pair a node with private hardware in our self-hosting guidance, and see the related UTXO entry to understand what the node actually tracks.
In Simple Terms
A full node is a Bitcoin client that downloads every block and transaction, independently verifies them against the network’s consensus rules, and stores the complete…
