Home › Glossary › Child pays for parent (CPFP)

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.

BIPs that define Child pays for parent (CPFP)

  • BIP 331: Ancestor Package Relay: Draft. Lets nodes request and share an unconfirmed transaction together with the parent transactions it depends on, as a single package. This helps low-fee parents get relayed when a child pays extra fees…
  • BIP 431 (TRUC transactions): Topology Restrictions for Pinning: Draft. Explains 'pinning', a problem where someone can block a transaction from being replaced with a higher-fee version, which can endanger time-sensitive protocols like Lightning. It describes stricter…
  • BIP 433: Pay to Anchor (P2A): Draft. Defines Pay to Anchor, a tiny standard output that anyone can spend without a signature. Its purpose is to act as a hook for fee-bumping: by spending it in a follow-up transaction, any party can add…

Related terms

  • Replace-by-fee (RBF): Replace-by-fee (RBF) lets you replace an unconfirmed Bitcoin transaction with a new version that pays a higher fee, so it confirms sooner.
  • Anchor output: An anchor output is a small extra output on a pre-signed transaction that can be spent by a CPFP child to add fees when the transaction is broadcast.
  • Package relay: Package relay lets Bitcoin nodes accept and relay related unconfirmed transactions together, so a high-fee child can carry a low-fee parent.
  • Mempool: The mempool is a node's waiting area for valid, unconfirmed transactions; miners choose from it, usually by fee rate, when they build a block.

Learn more

Guides