Child pays for parent (CPFP)
Also called: CPFP, CPFP fee bump, ancestor fee rate, package fee rate.
Child pays for parent (CPFP) speeds up a stuck transaction by spending one of its outputs in a new high-fee transaction, so miners confirm both together.
Child pays for parent (CPFP) is a way to raise the fee of an unconfirmed transaction without replacing it. Anyone who controls one of its outputs, usually the receiver or the sender's change, spends that output in a new "child" transaction with a high fee. A miner can only collect the child's fee by also mining the parent, so it evaluates the two together.
How CPFP works
Miners and nodes look at the ancestor fee rate: the total fees divided by the total vbytes of a transaction plus its unconfirmed ancestors. Bitcoin Core has selected transactions this way since version 0.13, as BIP 331 notes. For example:
- Parent: 200 vB paying 200 sats (1 sat/vB), stuck.
- Child: 150 vB paying 3,300 sats.
- Package: 350 vB and 3,500 sats, which is 10 sat/vB.
If 10 sat/vB is competitive, both confirm in the same block.
CPFP vs RBF
| CPFP | Replace-by-fee | |
|---|---|---|
| Who can do it | Anyone who controls an output of the transaction | The sender, who can re-sign the inputs |
| Changes the original? | No, it adds a child | Yes, it replaces it |
| Extra block space | The child transaction | None |
CPFP in contracts
Pre-signed transactions in the Lightning Network and other protocols can't know future fee rates, so they include anchor outputs for a CPFP child to attach to. CPFP used to fail when the parent paid less than a node's minimum fee rate, because the parent was rejected before the child arrived. Package relay (BIP 331) and TRUC transactions (BIP 431) address that and limit pinning, and BIP 433 defines a keyless anchor output designed for CPFP. More on fee bumping in the replace-by-fee guide.