BitcoinMachine
TERM_DEF // TRANSACTION / REPLACE_BY_FEE_RBF
REPLACE-BY-FEE
(RBF)
Replace-by-Fee (RBF). A policy allowing a pending tx to be replaced by another with the same inputs and higher fee (BIP125).

This page sits in the Transaction section — How money moves: inputs, outputs, fees, signatures, sighash flags, and the formats that wrap them. Read on for what it is, why it exists, how it works under the hood, and what to watch out for.
Replace-by-Fee (RBF) — at a glance
TRANSACTION
Replace-by-Fee (RBF) is part of the FEE BUMPING sub-family of transaction-level concepts. Replace-By-Fee (BIP-125): re-broadcast a stuck tx with a higher fee, replacing the original in mempools. A policy allowing a pending tx to be replaced by another with the same inputs and higher fee (BIP125).
Why it exists
DESIGN
The UTXO model is what makes Bitcoin transactions auditable, parallel-verifiable, and resistant to replay attacks. Every input directly references a specific previous output by txid + index. There is no shared state to lock, no "account version" to clash on, no oracle to consult — each input is a self-contained spending proof, and nodes can verify thousands of them in parallel.
Mechanism
HOW IT WORKS
A transaction has one or more inputs (each pointing at a UTXO being spent) and one or more outputs (each creating a new UTXO). Inputs supply the unlocking data; outputs specify the new locks. The fee is the difference between input sum and output sum, paid to the miner who includes the tx in a block. Once mined and buried under enough confirmations, the spend is for all practical purposes irreversible — the UTXOs it consumed are gone, the ones it created are spendable.
1. Wallet selects UTXOs whose total value covers the spend amount + estimated fee (coin selection). 2. Wallet builds the transaction body: version, inputs (each with prev txid + vout + sequence), outputs (each with value + scriptPubKey), locktime. 3. Wallet computes the sighash for each input (which parts of the tx the signature commits to — controlled by the SIGHASH flag). 4. Wallet signs each input with the right private key. Witness/scriptSig is populated with the resulting signatures + pubkeys. 5. Tx is broadcast to peers. Mempool propagation: tens of seconds globally. 6. A miner includes it in a block. Confirmation count grows by 1 per block; after ~6 the tx is effectively final.
Replace-by-Fee (RBF) — FEE BUMPING
EXAMPLE
Signal RBF : set any input's sequence < 0xfffffffe (BIP-125) Replacement rules : must spend at least one of the same inputs : must pay a strictly higher feerate (sat/vB) : must pay more absolute fee than original Full-RBF (2023+) : Bitcoin Core 24+ replaces any tx regardless of opt-in flag
OPT-IN SIGNAL
Set sequence < 0xfffffffe on at least one input to signal BIP-125 RBF. Full-RBF nodes replace anyway.
ATOMIC
A transaction is either fully accepted into a block or fully rejected. There is no partial spend.
IMMUTABLE INPUTS
A UTXO can only ever be spent once. After that, it is permanently consumed.
NO BALANCES
Bitcoin tracks UTXOs, not balances. Your wallet computes a balance by summing the UTXOs it controls.
Things that catch people out
PITFALLS
  • Even with RBF, a 0-confirmation transaction is never "final" — merchants accepting 0-conf should expect occasional reversals.
  • address-reuse/">Address reuse degrades privacy — every reuse links more of your UTXOs together publicly. Modern wallets generate a fresh address per receive.
  • Fee estimation matters: under-pay and your tx sits in the mempool for hours; over-pay and you tip the miner more than necessary. Use a fee estimator.
  • "Change outputs" must go back to a fresh address you control. A missing change output sends the difference to the miner as fee — a known footgun.

TERMINOLOGY
Replace-by-Fee (RBF)
A policy allowing a pending tx to be replaced by another with the same inputs and higher fee (BIP125).
Transaction (Tx)
A signed payload spending one or more UTXOs and creating new ones; every state change in Bitcoin is a tx.
Raw Transaction
The hex-serialized bytes of a transaction, ready to broadcast or analyze.
Transaction ID (TXID)
HASH256 of a transaction's pre-witness serialization; used to reference outputs by (txid, vout).
wTXID (Witness TXID)
HASH256 of the full transaction including witness data; commits to signatures and used in the witness commitment.
Input
A reference to a previous output being spent, plus the data (scriptSig/witness) authorizing the spend.
Output
An (amount, scriptPubKey) pair created by a transaction; spendable later by a tx whose input references it.
UTXO (Unspent Transaction Output)
An output that hasn't been spent yet; your "balance" is the sum of UTXOs you can sign for.