Overview
Child Pays for Parent (CPFP) is a fee-bumping mechanism that allows a recipient (or sender) to accelerate the confirmation of a stuck, low-fee transaction. By creating a new "child" transaction that spends an output of the unconfirmed "parent" transaction and attaching a high fee, the combined fee rate of both transactions becomes attractive enough for miners to include them together in a block.
How CPFP Works
Scenario: Parent TX has a low fee and is stuck in the mempool
Parent TX (low fee: 1 sat/vB)
Input: 0.5 BTC
Output: 0.3 BTC → Bob
0.199 BTC → Alice (change)
Fee: 0.001 BTC
Bob creates a child TX spending his output with a high fee:
Child TX (high fee: 50 sat/vB)
Input: 0.3 BTC (from parent's output to Bob)
Output: 0.28 BTC → Bob's new address
Fee: 0.02 BTC
Miner's calculation:
Combined package size: ~400 vB
Combined fees: 0.001 + 0.02 = 0.021 BTC
Effective fee rate: ~52.5 sat/vB ← attractive to mine!
CPFP vs Replace-by-Fee (RBF)
Both CPFP and RBF are techniques for accelerating unconfirmed transactions, but they work differently:
- CPFP: Creates a new transaction; can be done by the recipient or sender
- RBF: Replaces the original transaction; can only be done by the sender
CPFP is particularly valuable because it gives recipients the ability to accelerate payments they are waiting to receive, without requiring any cooperation from the sender.
Miner Behavior
Rational miners evaluate transactions not individually but as packages. When a high-fee child transaction depends on an unconfirmed parent, the miner must include both to collect the child's fee. Bitcoin Core's mining algorithm considers these ancestor packages when selecting transactions for block templates.
Common Misconceptions
A common misunderstanding is that CPFP is free. In reality, the child transaction must pay enough fees to make the combined package attractive, which means the child's fee effectively subsidizes the parent's low fee. The total cost can be significant during periods of high fee pressure.