This guide explains Bitcoin Core getmempooldescendants 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 getmempooldescendants returned every transaction in the local mempool that spent, directly or indirectly, from a specified in-mempool transaction. Default output listed descendant transaction IDs and verbose mode returned the same historical mempool-entry fields used by the ancestor RPC.
- Why it matters: getmempooldescendants reveals downstream unconfirmed dependencies for local policy analysis. Reliable systems treat it as a changing graph, preserve count semantics and distinguish confirmation, replacement and eviction.
- Current position: Bitcoin Core 0.16.0 getmempooldescendants returned every transaction in the local mempool that spent, directly or indirectly, from a specified in-mempool transaction.
Bitcoin Core getmempooldescendants RPC in simple English
Bitcoin Core getmempooldescendants RPC: A large descendant set can indicate chained payments, consolidation workflows or application fan-out. It is not inherently malicious.
Simple example
A miner is checking Bitcoin Core getmempooldescendants RPC. Map direct dependencies and relevant outputs before deciding which business action is affected, and never infer customer identity from graph shape alone.
Key terms in plain English
- BIP:
- Bitcoin Improvement Proposal: a document describing a proposed rule, standard or process. Its status must be checked separately.
- 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.
- Mempool:
- A node’s changing local collection of valid, unconfirmed transactions.
- Node:
- A computer running Bitcoin software that checks data and communicates with other peers.
Target and descendants
The target must currently exist in the node’s mempool. Descendants spend one of its outputs directly or through other unconfirmed transactions. The returned set excludes the target itself while verbose aggregate descendantcount fields include each described transaction in its own totals, a distinction tests must preserve.
Terse and verbose modes
False returns transaction IDs; true returns keyed entry objects with virtual size, fees, local admission metadata, package aggregates, wtxid and direct dependencies. Choose the mode explicitly and cap response size because a broad descendant graph can be expensive to serialise and process.
Spend-chain interpretation
A large descendant set can indicate chained payments, consolidation workflows or application fan-out. It is not inherently malicious. Map direct dependencies and relevant outputs before deciding which business action is affected, and never infer customer identity from graph shape alone.
Replacement and conflicts
Replacement can remove a transaction and its descendants or introduce a different package under local policy. Monitor replacement evidence and conflicts alongside the graph. A vanished descendant may have confirmed, been evicted or become invalid after an ancestor change; absence alone does not identify the cause.
Mining and eviction
Package feerate and ancestor relationships affect block selection, while size and count limits can constrain admission. Descendant aggregates help explain local behaviour but do not promise confirmation. Compare template or acceptance results on the exact node and avoid extrapolating to every miner.
Privacy and service design
An unrestricted endpoint can reveal local unconfirmed inventory and enable repeated expensive traversal. Keep RPC private, authorise callers and rate-limit diagnostic layers. Redact customer mappings and peer details from retained incident records while preserving hashes required for technical reproduction.
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 getmempooldescendants RPC?
Bitcoin Core getmempooldescendants RPC: A large descendant set can indicate chained payments, consolidation workflows or application fan-out.
For Bitcoin Core getmempooldescendants RPC, what should a beginner know about target and descendants?
The target must currently exist in the node’s mempool. Descendants spend one of its outputs directly or through other unconfirmed transactions.
For Bitcoin Core getmempooldescendants RPC, what should a beginner know about terse and verbose modes?
False returns transaction IDs. True returns keyed entry objects with virtual size, fees, local admission metadata, package aggregates, wtxid and direct dependencies.
For Bitcoin Core getmempooldescendants RPC, what should a beginner know about spend-chain interpretation?
A large descendant set can indicate chained payments, consolidation workflows or application fan-out.
Conclusion
getmempooldescendants reveals downstream unconfirmed dependencies for local policy analysis. Reliable systems treat it as a changing graph, preserve count semantics and distinguish confirmation, replacement and eviction.
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.