{
  "$schema": "https://degreesofsatoshi.com/encyclopedia/schemas/article-v1.json",
  "schemaVersion": "1.0.0",
  "id": "child-pays-for-parent",
  "canonical": "https://degreesofsatoshi.com/encyclopedia/child-pays-for-parent/",
  "collection": "bitcoin",
  "title": "Child pays for parent: how a second transaction can lift the first",
  "description": "See how a child transaction can make a package more attractive to miners, including the fee calculation and the requirement to control a spendable output.",
  "aliases": [
    "CPFP"
  ],
  "dates": {
    "published": "2026-10-02",
    "modified": "2026-10-02",
    "verified": "2026-10-02T18:15:23.891Z",
    "dataAsOf": "2026-10-02"
  },
  "authorship": {
    "publisher": "Degrees of Satoshi editorial project",
    "process": "AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied."
  },
  "quickAnswer": {
    "text": "Child pays for parent, or CPFP, spends an output of an unconfirmed transaction in a new transaction whose fee can raise the combined package fee rate. A miner evaluating the dependent package can collect both fees, but the parent must precede the child, potentially within the same block. A usable output, wallet support and applicable relay policy are necessary.",
    "claimId": "child-pays-for-parent-quick-answer",
    "sourceIds": [
      "bitcoin-dev-transactions",
      "core-packages"
    ]
  },
  "keyFacts": [
    {
      "label": "Dependency",
      "value": "A child spends an output created by its parent.",
      "sourceIds": [
        "bitcoin-dev-transactions"
      ],
      "id": "dependency",
      "claimId": "child-pays-for-parent-fact-dependency"
    },
    {
      "label": "Authority",
      "value": "You need the keys or other authorization required to spend that output.",
      "sourceIds": [
        "bitcoin-dev-transactions"
      ],
      "id": "authority",
      "claimId": "child-pays-for-parent-fact-authority"
    },
    {
      "label": "Combined rate",
      "value": "For the simplified package example, combined fee rate is total fees divided by total virtual size; node policy can adjust fees and deduplicate existing transactions.",
      "sourceIds": [
        "bip141",
        "core-packages"
      ],
      "id": "combined-rate",
      "claimId": "child-pays-for-parent-fact-combined-rate"
    }
  ],
  "prerequisites": [
    "what-is-a-utxo"
  ],
  "sections": [
    {
      "id": "dependency",
      "heading": "Why a child helps its parent",
      "sourceIds": [
        "bitcoin-dev-transactions"
      ],
      "paragraphs": [
        "Imagine a low-fee payment with an output controlled by its recipient. The recipient can spend that output onward, creating a dependency. A miner cannot include this child as a valid spend without making the parent’s output available.",
        "The sender may instead control a change output and use that. CPFP is therefore about output control, not exclusively about being the sender or recipient."
      ]
    },
    {
      "id": "package",
      "heading": "Calculate the combined rate",
      "sourceIds": [
        "bip141",
        "core-packages"
      ],
      "paragraphs": [
        "Suppose a parent is 200 vbytes and pays 200 satoshis. A child is 100 vbytes. To make the combined 300-vbyte package pay an illustrative 10 sat/vB, total fees must be 3,000 satoshis, so the child contributes 2,800. Setting the child alone to 10 sat/vB would be insufficient.",
        "The arithmetic describes a target package rate, not a promise of relay or inclusion. Actual software has dependency, package and conflict limits, and a wallet may not support this operation."
      ]
    },
    {
      "id": "limits",
      "heading": "Check the output before constructing a child",
      "sourceIds": [
        "bitcoin-dev-transactions",
        "core-walletcreatefundedpsbt"
      ],
      "paragraphs": [
        "The parent output must be spendable by your wallet. The child’s selected inputs must together fund its outputs and fee; a wallet may add other inputs if needed. Spending an output you do not control is not an option. A watch-only view of a payment cannot supply the necessary signature.",
        "If the parent is replaced, a child referring to the old parent’s transaction ID may no longer be usable. Follow the actual dependency chain in an explorer and the wallet’s current transaction state."
      ]
    }
  ],
  "faq": [
    {
      "question": "Is CPFP the same as RBF?",
      "answer": "No. CPFP creates a dependent spend; RBF creates a conflicting replacement. They rely on different outputs, permissions and policy conditions.",
      "sourceIds": [
        "bitcoin-dev-transactions",
        "bip125"
      ]
    }
  ],
  "claims": [
    {
      "id": "child-pays-for-parent-quick-answer",
      "articleSlug": "child-pays-for-parent",
      "statement": "Child pays for parent, or CPFP, spends an output of an unconfirmed transaction in a new transaction whose fee can raise the combined package fee rate. A miner evaluating the dependent package can collect both fees, but the parent must precede the child, potentially within the same block. A usable output, wallet support and applicable relay policy are necessary.",
      "sourceIds": [
        "source-b282fdecc069b74d",
        "source-9da8e2ada19d24a9"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-b282fdecc069b74d",
          "locator": "P2PKH Script Validation; Transaction Fees And Change"
        },
        {
          "sourceId": "source-9da8e2ada19d24a9",
          "locator": "Package Mempool Acceptance Rules; Package Fees and Feerate"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read package-feerate rules including modified fees, deduplication and dependency constraints. Corrected larger absolute child-fee wording to raising combined package feerate, and made same-block parent-before-child inclusion explicit.",
          "Corrected the assumption that the parent output alone must fund the child: selected inputs may include additional wallet inputs. Recomputed required child fee 2,800 sat; setting only the child to 10 sat/vB yields package rate 4 sat/vB."
        ]
      }
    },
    {
      "id": "child-pays-for-parent-fact-dependency",
      "articleSlug": "child-pays-for-parent",
      "statement": "Dependency: A child spends an output created by its parent.",
      "sourceIds": [
        "source-b282fdecc069b74d"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-b282fdecc069b74d",
          "locator": "P2PKH Script Validation; Transaction Fees And Change"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read package-feerate rules including modified fees, deduplication and dependency constraints. Corrected larger absolute child-fee wording to raising combined package feerate, and made same-block parent-before-child inclusion explicit.",
          "Corrected the assumption that the parent output alone must fund the child: selected inputs may include additional wallet inputs. Recomputed required child fee 2,800 sat; setting only the child to 10 sat/vB yields package rate 4 sat/vB."
        ]
      }
    },
    {
      "id": "child-pays-for-parent-fact-authority",
      "articleSlug": "child-pays-for-parent",
      "statement": "Authority: You need the keys or other authorization required to spend that output.",
      "sourceIds": [
        "source-b282fdecc069b74d"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-b282fdecc069b74d",
          "locator": "P2PKH Script Validation; Transaction Fees And Change"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read package-feerate rules including modified fees, deduplication and dependency constraints. Corrected larger absolute child-fee wording to raising combined package feerate, and made same-block parent-before-child inclusion explicit.",
          "Corrected the assumption that the parent output alone must fund the child: selected inputs may include additional wallet inputs. Recomputed required child fee 2,800 sat; setting only the child to 10 sat/vB yields package rate 4 sat/vB."
        ]
      }
    },
    {
      "id": "child-pays-for-parent-fact-combined-rate",
      "articleSlug": "child-pays-for-parent",
      "statement": "Combined rate: For the simplified package example, combined fee rate is total fees divided by total virtual size; node policy can adjust fees and deduplicate existing transactions.",
      "sourceIds": [
        "source-896e868816ad19d1",
        "source-9da8e2ada19d24a9"
      ],
      "sourceLocators": [
        {
          "sourceId": "source-896e868816ad19d1",
          "locator": "Block size; Transaction size"
        },
        {
          "sourceId": "source-9da8e2ada19d24a9",
          "locator": "Package Mempool Acceptance Rules; Package Fees and Feerate"
        }
      ],
      "scope": {
        "collection": "bitcoin",
        "dataAsOf": "2026-10-02",
        "blockHeight": null
      },
      "qualification": "",
      "evidenceStatus": "documented",
      "verification": {
        "status": "verified",
        "method": "independent automated source review",
        "checkedAt": "2026-10-02T18:15:23.891Z",
        "reviewer": "Independent automated verification agent verify_bitcoin_stablecoins_100",
        "notes": [
          "Read package-feerate rules including modified fees, deduplication and dependency constraints. Corrected larger absolute child-fee wording to raising combined package feerate, and made same-block parent-before-child inclusion explicit.",
          "Corrected the assumption that the parent output alone must fund the child: selected inputs may include additional wallet inputs. Recomputed required child fee 2,800 sat; setting only the child to 10 sat/vB yields package rate 4 sat/vB."
        ]
      }
    }
  ],
  "sources": [
    {
      "id": "bitcoin-dev-transactions",
      "label": "Bitcoin Developer Guide: Transactions",
      "publisher": "Bitcoin developer documentation contributors",
      "url": "https://developer.bitcoin.org/devguide/transactions.html",
      "locator": "P2PKH Script Validation; Transaction Fees And Change",
      "note": "UTXO inputs, transaction outputs, change and the difference paid as a fee.",
      "version": null,
      "checkedAt": "2026-10-02T17:03:41.190Z",
      "contentSha256": "449ae88ea59f9b198c398d3f5f56f83a92cd6be1638fa6681a1fdeea164892c0",
      "recordId": "source-b282fdecc069b74d"
    },
    {
      "id": "core-packages",
      "label": "Bitcoin Core package policy",
      "publisher": "Bitcoin Core",
      "url": "https://raw.githubusercontent.com/bitcoin/bitcoin/v29.0/doc/policy/packages.md",
      "locator": "Package Mempool Acceptance Rules; Package Fees and Feerate",
      "note": "Package fee accounting and policy for dependent transaction admission.",
      "version": "Bitcoin Core v29.0",
      "checkedAt": "2026-10-02T17:21:46.897Z",
      "contentSha256": "5caabc65a25e89c4c4d8f3c60ec56d59d6962253db031f3ce8bb13334c411141",
      "recordId": "source-9da8e2ada19d24a9"
    },
    {
      "id": "bip141",
      "label": "Segregated Witness consensus layer",
      "publisher": "Bitcoin BIPs contributors",
      "url": "https://raw.githubusercontent.com/bitcoin/bips/927b6de9915c9262615a6399de51b200f81e5aa4/bip-0141.mediawiki",
      "locator": "Block size; Transaction size",
      "note": "Transaction weight and virtual-size definitions in the SegWit specification.",
      "version": "BIP-141; immutable revision pinned in source URL",
      "checkedAt": "2026-10-02T17:22:20.465Z",
      "contentSha256": "d72409335872a32494f75e7547589abf4b3b23b6beebe6bc6999c7a84b135e2c",
      "recordId": "source-896e868816ad19d1"
    },
    {
      "id": "core-walletcreatefundedpsbt",
      "label": "walletcreatefundedpsbt RPC",
      "publisher": "Bitcoin Core",
      "url": "https://bitcoincore.org/en/doc/29.0.0/rpc/wallet/walletcreatefundedpsbt/",
      "locator": "Arguments and result fields",
      "note": "Input selection, fee units, change output, selected inputs and transaction funding.",
      "version": "Bitcoin Core 29.0.0 RPC",
      "checkedAt": "2026-10-02T17:03:40.827Z",
      "contentSha256": "d30514044f4ab73bb52b4f8d9bb2d5b8a64482c26fd1b63be11defcb0f2ac6d6",
      "recordId": "source-a8abe4366f2656ba"
    },
    {
      "id": "bip125",
      "label": "Opt-in Full Replace-by-Fee",
      "publisher": "Bitcoin BIPs contributors",
      "url": "https://raw.githubusercontent.com/bitcoin/bips/927b6de9915c9262615a6399de51b200f81e5aa4/bip-0125.mediawiki",
      "locator": "Summary; Implementation Details",
      "note": "Historical opt-in replacement signaling and replacement policy conditions.",
      "version": "BIP-125; immutable revision pinned in source URL",
      "checkedAt": "2026-10-02T17:22:20.573Z",
      "contentSha256": "da53c6f77100581b715befcfcb2e84adc672d205628a4219c77106f66978aad2",
      "recordId": "source-67b7ee4bcd0e4a4f"
    }
  ],
  "related": {
    "articles": [
      "replace-by-fee",
      "bitcoin-stuck-transactions",
      "bitcoin-virtual-size"
    ],
    "dossiers": [],
    "wallets": []
  },
  "revisionHistory": [
    {
      "date": "2026-10-02",
      "kind": "published",
      "summary": "Initial Bitcoin encyclopedia entry at this permanent URL."
    },
    {
      "date": "2026-10-02",
      "kind": "publishing-format",
      "summary": "Added reusable claims, explicit source locators, and matching Markdown and JSON. This publishing change does not itself establish factual verification."
    }
  ],
  "citation": "Degrees of Satoshi editorial project. “Child pays for parent: how a second transaction can lift the first.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/child-pays-for-parent/"
}
