This guide explains Bitcoin Core gettxoutproof RPC in plain English. It shows what the command does, what its result means and what it cannot prove.
TL;DR
- What it is: Bitcoin Core 0.16.0 gettxoutproof returned a serialized, hex-encoded proof that selected transaction IDs were included in one block. Without an explicit block hash it worked reliably only when transaction-index or UTXO clues located the block.
- Why it matters: gettxoutproof supplies compact transaction inclusion evidence, not Bitcoin finality. Correct use binds proof bytes to a verified header and separately establishes active-chain work, depth and payment meaning.
- Current position: The proof established Merkle inclusion in that header, not active-chain membership, confirmation depth, script validity or payment ownership.
Bitcoin Core gettxoutproof RPC in simple English
Bitcoin Core gettxoutproof RPC: Merkle inclusion binds txids to the block header. It does not verify transaction scripts, output ownership, absence of double spend or accumulated proof of work.
Simple example
A miner is checking Bitcoin Core gettxoutproof RPC. Financial approval also needs active ancestry and suitable confirmation depth. Verify the block is available locally and record its height, chainwork and current active status.
Key terms in plain English
- Bitcoin Core:
- Widely used software that validates Bitcoin and can provide wallet, network and operator tools.
- RPC:
- A command that software sends to a node to request information or a local action.
- UTXO:
- An unspent transaction output: a piece of bitcoin that can be used as an input to a later transaction.
- Node:
- A computer running Bitcoin software that checks data and communicates with other peers.
Transaction set
Provide a non-empty bounded array of valid txids belonging to the same block. Deduplicate inputs and impose response limits. A proof request is not a general cross-block batching interface and malformed sets should fail explicitly.
Block discovery limits
Without blockhash, historical lookup may depend on txindex or a currently unspent output from the transaction. This was intentionally unreliable as a universal archive path. Configure indexed roles explicitly or retain the containing block hash at ingestion.
Explicit block context
A supplied blockhash limits lookup to that block. Verify the block is available locally and record its height, chainwork and current active status. A correct side-chain proof remains a valid inclusion proof for that side-chain header.
Serialized proof
The result is hex encoding of a partial Merkle block structure. Parse with a version-pinned implementation, enforce size and tree bounds and verify reconstructed root against the header. Do not accept success merely because the hex decodes.
What proof establishes
Merkle inclusion binds txids to the block header. It does not verify transaction scripts, output ownership, absence of double spend or accumulated proof of work. Financial approval also needs active ancestry and suitable confirmation depth.
How specialists test it
Operators test the command on a non-production node first. They check a normal reply, an invalid request, a timeout and a restart. This shows what the response means and prevents one local result from being mistaken for a network-wide outcome.
How specialists test it
Operators test the command on a non-production node first. They check a normal reply, an invalid request, a timeout and a restart. This shows what the response means and prevents one local result from being mistaken for a network-wide outcome.
Frequently asked questions
What is the main point of Bitcoin Core gettxoutproof RPC?
Bitcoin Core gettxoutproof RPC: Merkle inclusion binds txids to the block header. It does not verify transaction scripts, output ownership, absence of double spend or accumulated proof of work.
For Bitcoin Core gettxoutproof RPC, what should a beginner know about transaction set?
Provide a non-empty bounded array of valid txids belonging to the same block.
For Bitcoin Core gettxoutproof RPC, what should a beginner know about block discovery limits?
Without blockhash, historical lookup may depend on txindex or a currently unspent output from the transaction.
For Bitcoin Core gettxoutproof RPC, what should a beginner know about explicit block context?
A supplied blockhash limits lookup to that block. Verify the block is available locally and record its height, chainwork and current active status.
Conclusion
gettxoutproof supplies compact transaction inclusion evidence, not Bitcoin finality. Correct use binds proof bytes to a verified header and separately establishes active-chain work, depth and payment meaning.
Primary sources
Check the current specification status and the documentation for the exact implementation you operate before moving production funds or changing a mining node.
Join the ASIC Mining Discussion
Members can read and join the discussion
Log in to read comments from other miners. Create a free account if you would like to ask a question or share your experience.
Membership helps us protect the discussion from spam and keep answers useful.