This guide explains Bitcoin Core verifytxoutproof 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 verifytxoutproof checked a hex-encoded proof produced by gettxoutproof. It returned the transaction identifiers committed by a valid proof, an empty array for an invalid proof and an RPC error if the referenced block was not in the node’s best chain.
- Why it matters: verifytxoutproof provides scoped Merkle inclusion evidence against the node’s active chain. Safe settlement still requires exact txid matching, confirmation depth and ongoing reorganisation handling.
- Current position: Require a second reviewer and explicit rollback or expiry, and pause payments, signing or network-dependent services until post-change evidence is complete.
Bitcoin Core verifytxoutproof RPC in simple English
Bitcoin Core verifytxoutproof RPC: Merkle inclusion shows the transaction identifier is committed by the block header path. It does not show which party owns an output, whether a payment amount satisfies an invoice, whether the output remains unspent or whether enough confirmations have accumulated.
Simple example
A miner is checking Bitcoin Core verifytxoutproof RPC. Enforce size limits and timeouts before parsing so a public verification service cannot become an unbounded CPU or memory endpoint.
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.
- Node:
- A computer running Bitcoin software that checks data and communicates with other peers.
Proof provenance
Accept proof hex only from a bounded authenticated workflow and retain its hash, expected txids and claimed block separately. Hex is untrusted binary data. Enforce size limits and timeouts before parsing so a public verification service cannot become an unbounded CPU or memory endpoint.
Three outcome classes
Handle a non-empty txid array, an empty invalid result and an RPC error as different states. An error because the block is outside the best chain is not equivalent to malformed proof. Preserve the exact classification for reorganisation handling without leaking excessive node internals.
Expected transaction set
Compare the returned identifiers as a validated set against the requested transaction identifiers. Do not accept merely because one familiar txid appears. Reject unexpected extras, duplicates or missing entries and bind the decision to the proof hash and node tip observed at verification time.
Best-chain context
The node requires the proof block to be in its best chain. Record block hash, height, tip and chainwork and compare with independent nodes. A proof can move from accepted to error after a reorganisation, so applications must re-evaluate confirmation-dependent decisions.
What inclusion mean
Merkle inclusion shows the transaction identifier is committed by the block header path. It does not show which party owns an output, whether a payment amount satisfies an invoice, whether the output remains unspent or whether enough confirmations have accumulated.
Confirmation policy
After proof verification, get the block’s active-chain depth and apply the business confirmation rule. Monitor until final service settlement and reverse provisional status on reorganisation. Keep proof acceptance separate from crediting, fulfilment and fraud controls.
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 verifytxoutproof RPC?
Bitcoin Core verifytxoutproof RPC: Merkle inclusion shows the transaction identifier is committed by the block header path.
For Bitcoin Core verifytxoutproof RPC, what should a beginner know about proof provenance?
Accept proof hex only from a bounded authenticated workflow and retain its hash, expected txids and claimed block separately.
For Bitcoin Core verifytxoutproof RPC, what should a beginner know about three outcome classes?
Handle a non-empty txid array, an empty invalid result and an RPC error as different states.
For Bitcoin Core verifytxoutproof RPC, what should a beginner know about expected transaction set?
Compare the returned identifiers as a validated set against the requested transaction identifiers.
Conclusion
verifytxoutproof provides scoped Merkle inclusion evidence against the node’s active chain. Safe settlement still requires exact txid matching, confirmation depth and ongoing reorganisation handling.
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.