AssumeUTXO: Bitcoin Node in Minutes, Not Days

February 3, 2026 · 8 min read

The biggest barrier to running your own Bitcoin node has always been time: waiting days or even weeks for the entire blockchain to download and validate. With AssumeUTXO, that's a thing of the past. Your node is ready to use within hours instead of days.

Why Run Your Own Node?

Before we dive into the technical details: why should you bother running your own Bitcoin node in the first place?

"Not your node, not your rules"

If you don't run your own node, you're trusting third parties. This contradicts Bitcoin's core principle: trustless, meaning no middlemen required.

1. Verify, Don't Trust

When you use a wallet like BlueWallet, Electrum, or Sparrow connected to someone else's server, you're trusting that server to give you correct information. It could:

With your own node, you verify everything yourself. Nobody can lie to you.

2. Privacy

Every request to a third-party server reveals information about you: which addresses belong together, how much Bitcoin you own, when you're online.

Your own node knows all this data – but it belongs to you and never leaves your network.

3. Network Sovereignty

Every full node is a vote in the Bitcoin network. It validates the rules and would reject invalid blocks. The more nodes, the more decentralized and resilient Bitcoin becomes.

4. Faster Transactions

Your wallet doesn't have to wait for responses from overloaded public servers. Everything runs locally – faster and more reliable.

The Problem: Initial Block Download

The traditional way to start a node is the Initial Block Download (IBD): your node downloads every single block since January 2009 and validates every transaction. That's:

Even with fast hardware, this takes several days. With older hardware or a slow internet connection, it can take weeks.

The frustration is real:

Many Bitcoiners start enthusiastically with their node setup but give up after days of waiting. The IBD is the biggest barrier to entry.

The Solution: AssumeUTXO

AssumeUTXO (available since Bitcoin Core 26.0 / Bitcoin Knots 26.0) elegantly solves this problem. The idea:

  1. Load a UTXO snapshot – a snapshot of all unspent transactions at a specific point in time
  2. Your node is immediately usable from that snapshot
  3. In the background, the node validates the entire history
What is a UTXO?

UTXO = Unspent Transaction Output. These are the "coins" in Bitcoin – transaction outputs that haven't been spent yet. The sum of all UTXOs is the current state of the Bitcoin network.

Isn't That Insecure?

Fair question! The key: the snapshot hash is hardcoded in the Bitcoin Core source code. You're not trusting a random download – you're trusting the same code you trust anyway.

If you trust Bitcoin Core/Knots, you automatically trust the snapshot defined in it. No additional trust required.

Step-by-Step Guide

Step 1: Install Bitcoin Core/Knots

Download Bitcoin Core (version 26.0+) or Bitcoin Knots from the official website. Verify the signature!

# Bitcoin Knots 29.2 (recommended)
wget https://bitcoinknots.org/files/29.x/29.2.knots20251110/bitcoin-29.2.knots20251110-x86_64-linux-gnu.tar.gz

# Extract
tar xzf bitcoin-29.2.knots20251110-x86_64-linux-gnu.tar.gz

# Install
sudo install -m 0755 bitcoin-29.2.knots20251110/bin/* /usr/local/bin/

Step 2: Download UTXO Snapshot

The snapshot for block 840,000 is about 12 GB. Download it from a trusted source:

# From bitcoinknots.org
wget https://bitcoinknots.org/assumeutxo/840000/utxo-840000.dat

# Or via torrent (more decentralized)
# Magnet link available on bitcoinknots.org

Important: You don't need to trust the download! The hash is verified against the value hardcoded in the software when loading.

Step 3: Start Bitcoin and Load Snapshot

Start bitcoind and load the snapshot:

# Start bitcoind
bitcoind -daemon

# Wait for RPC to be ready (~10 seconds)
sleep 10

# Load snapshot
bitcoin-cli loadtxoutset /path/to/utxo-840000.dat

Loading takes about 10-20 minutes depending on your SSD speed.

Step 4: Sync to Tip

After loading, your node syncs from block 840,000 to the current blockchain tip. This only takes a few hours since it's just a few months of blocks.

# Check progress
bitcoin-cli getblockchaininfo

# Output shows:
# "blocks": 934XXX (current height)
# "headers": 934XXX (should match)
# "verificationprogress": 0.999...

Step 5: Use Your Node!

Once verificationprogress is close to 1.0, you can connect your wallet and use the node. Background validation continues but doesn't interfere.

What Happens in the Background?

While you're already using your node, it validates the entire blockchain from block 0 to the snapshot in the background. This takes days – but you don't have to wait.

Two chainstates in parallel:

Your node temporarily maintains two UTXO databases: one from the snapshot (active) and one being built from genesis (background). After completion, they're compared and merged.

You can check background validation progress:

bitcoin-cli getblockchaininfo

# "blocks": 934500          ← Current tip
# "snapshot_blockhash": ... ← Snapshot at 840000
# "background_validation": {
#   "blocks": 423000        ← Background progress
# }

Optimal Hardware Configuration

For AssumeUTXO, the same recommendations apply as for regular nodes, with one important difference: you need more storage for the two parallel chainstates.

Tip: Put the chainstate on a fast NVMe SSD and blocks on an external drive. See my article on Bitcoin Node Hardware.

Frequently Asked Questions

Can I trust the snapshot?

You're not trusting the snapshot – you're trusting the Bitcoin Core code. The snapshot hash is hardcoded in the source. If someone gives you a wrong snapshot, it will be rejected when loading.

What if background validation finds an error?

Theoretically possible, practically impossible. The snapshot has been verified by thousands of nodes. If an error were found, your node would warn you.

Can I combine AssumeUTXO with pruning?

Yes, but only after background validation completes. Before that, you need all blocks for validation.

Which wallets support my node?

All wallets supporting Bitcoin Core RPC or Electrum protocol: Sparrow, Specter, Electrum, BlueWallet, and many more.

Conclusion

AssumeUTXO removes the biggest barrier for node operators: waiting time. In hours instead of days, you have a fully functional node that verifies your transactions and protects your privacy.

Security isn't compromised – you're trusting the same code as always, just used more efficiently. Full validation continues in the background.

There's no excuse left not to run your own node. Verify, don't trust.

Node Setup as a Service

Want to get started right away? I'll set up your Bitcoin node on your preferred hardware – including a pre-synced blockchain and AssumeUTXO. Plug & play, ready to use immediately.

Get in Touch