123 / 691A-UTXO

AssumeUTXO

AssumeUTXO loads a supported UTXO-set snapshot so a Full Node can operate at the tip sooner. Historical validation continues independently in the background.

AssumeUTXO is an optimization with a temporary assumption, not a replacement for full validation. Snapshot contents must match the software's expected hash and later the state computed from history.

A snapshot describes unspent outputs at a particular base block. It is neither an archive of every transaction nor standalone proof that all preceding blocks were validated. [Bitcoin Core — AssumeUTXO design] [Bitcoin Core — loadtxoutset RPC]

loadtxoutset checks format, the base block and supported parameters. Bitcoin Core v29.0 also computes the loaded UTXO content hash and compares it with the expected value before activation. [Bitcoin Core v29.0 — AssumeUTXO parameters] [Bitcoin Core — loadtxoutset RPC] [Bitcoin Core — validation]

Once accepted, the snapshot chainstate can process subsequent blocks and reach the tip. New blocks remain subject to consensus checks; the snapshot grants no exemption from spending or issuance rules. [Bitcoin Core — AssumeUTXO design] [Bitcoin Core — validation]

A second chainstate processes historical blocks from the beginning toward the snapshot base. Availability of the active tip does not itself mean this independent work is complete. [Bitcoin Core — AssumeUTXO design] [Bitcoin Core — validation]

Supported base blocks and expected hashes belong to a particular software version. Until historical validation finishes, the user accepts this explicit assumption of correct state; a hash does not replace historical proof. [Bitcoin Core v29.0 — AssumeUTXO parameters] [Bitcoin Core 28.0 release notes]

Arbitrary files or heights are not automatically supported. Incorrect contents fail the expected hash check; a provider can nevertheless cause unavailability or delay, and loading consumes resources. [Bitcoin Core — loadtxoutset RPC] [Bitcoin Core — validation]

At the base block, the independently constructed UTXO-set hash is compared with the expected hash. A mismatch is an error that triggers shutdown, not silent certification of the snapshot. [Bitcoin Core — AssumeUTXO design] [Bitcoin Core — validation]

AssumeUTXO reduces time to a usable state, not total validation work to zero. Concurrent chainstates require CPU, disk I/O and storage; pruning has its own limits. [Bitcoin Core — AssumeUTXO design] [Bitcoin Optech — AssumeUTXO]

A snapshot contains no private keys and does not recover a Seed Phrase. It replaces neither wallet backups nor the old blocks needed for a historical wallet rescan. [Bitcoin Core — AssumeUTXO design] [Bitcoin Core — loadtxoutset RPC]

AssumeUTXO starts from a loaded UTXO state and fills in history in the background. Under its own conditions, assumevalid can skip old script checks; these are distinct mechanisms and settings. [Bitcoin Core — AssumeUTXO design] [Bitcoin Optech — AssumeUTXO] [Bitcoin Core — validation]

For the clearest picture, read this entry together with Initial block download, Pruned node, Block propagation, Nakamoto consensus. The reverse links also lead from Initial block download.

DOC · 001Bitcoin Core — AssumeUTXO designDocumentationDOC · 002Bitcoin Core v29.0 — AssumeUTXO parametersDocumentationDOC · 003Bitcoin Core — loadtxoutset RPCDocumentationDOC · 004Bitcoin Core 28.0 release notesDocumentationDOC · 005Bitcoin Optech — AssumeUTXODocumentationDOC · 006Bitcoin Core — validationDocumentation
Source-first · No investment advice