Transaction fees

Fee Rescue

Isolated regtest evidence

Replace the parent or pay through its child.

Published by HabibitcoinFixture generated: 2026-09-11T23:41:31.038ZMethod: automated byte and node checksIsolated regtest
Fee strategy

Native P2WPKH. One input, one payment, one change output. CPFP spends change.

Replacement flow

Recorded Core 29 result: accepted. Exact fixture only; isolated regtest, not public Signet.
Same funding input100000sats
Original parent fee, replaced284sats
Recipient unchanged60000sats
Returned change38872sats
Replacement fee1128sats
Total fee
1128 sats
Additional fee
844 sats
Estimated signed size
141 vB
Returned change
38872 sats
TransactionFee (sats)Estimated vBAccounting
Original parent284141Replaced, not added
Replacement1128141Included in total

100000 input = 60000 payment + 38872 change + 1128 fee. Size above is an unsigned construction estimate, not a node measurement.

For this one-conflict model, the conservative replacement floor is 425 sats at an assumed 1 sat/vB incremental relay fee. Other policy rules still apply.

Unsigned rescue PSBT and transaction
cHNidP8BAHECAAAAAVypF7EaqdQD7qEBSe5J/m/iYGc1UC0hI8zNyXz1G265AAAAAAD9////AmDqAAAAAAAAFgAUiCmijqrlMe0/shBTd9aIPQ0ep1jYlwAAAAAAABYAFInNw33tuXoWqQv+Ywpqdr7zgHWdAAAAAAABAR+ghgEAAAAAABYAFB2Y6GmgRFdYE+hgVADmIZyXGKr2AAAA
02000000015ca917b11aa9d403eea10149ee49fe6fe2606735502d2123cccdc97cf51b6eb90000000000fdffffff0260ea0000000000001600148829a28eaae531ed3fb2105377d6883d0d1ea758d89700000000000016001489cdc37dedb97a16a90bfe630a6a76bef380759d00000000
Disposable local test coins only. This chain and wallet were removed. No signing, broadcast, or public-network checks occur here. Never fund example addresses.

Recorded Node Results

Evidence JSON

Bitcoin Core daemon version v29.0.0. 2026-09-11T23:41:31.038Z. Network disabled, fresh regtest chain, temporary wallet removed.

ScenarioOutcomeMeasured fee (sats)Measured vBNode evidence
Original parentaccepted284141Accepted and inserted in the isolated mempool.
RBF: insufficient increaserejected297141insufficient fee
RBF: adequate feeaccepted1128141Replacement accepted; original removed from the isolated mempool.
CPFP: parent and childaccepted2008251Both transactions inserted; ancestor fees and vsize match the measured package.
After parent confirmationrejected1128141missing-inputs

A passing acceptance check is not a confirmation guarantee. The measured CPFP row includes both transactions; RBF totals include the replacement only. Edited targets do not inherit these recorded outcomes.

RBF pays for replacement

The original and replacement spend the same input. Recipient value stays fixed; the additional fee comes from change. Core 29 does not require opt-in signaling, though these examples use sequence 0xfffffffd.

Core 29 replacement policy

CPFP pays for ancestry

The child spends the parent's change. Its fee covers the selected target across both transactions. The two fees are added, and both signed virtual sizes belong in the denominator.

Core 29 package submission

Confirmation ends RBF

Once the parent confirms, its funding input is spent in the chain. A competing replacement cannot spend that input again. The local node records this as missing-inputs.

Core 29 acceptance checks