How to Fix a Stuck Bitcoin Transaction: RBF, CPFP & Broadcast Tools
Your Bitcoin transaction is stuck and unconfirmed? Learn exactly how to fix it using Replace-By-Fee (RBF), Child-Pays-for-Parent (CPFP), and re-broadcasting tools. Step-by-step guide with practical solutions.
You sent a Bitcoin transaction, checked the TXID, and now it has been sitting unconfirmed for hours. The mempool is congested, your fee was too low, and the transaction is stuck. This is one of the most common frustrations in Bitcoin — and it is completely fixable.
This guide covers the three methods to unstick a Bitcoin transaction, when to use each one, and the tools that make the process simple.
Why Transactions Get Stuck
A Bitcoin transaction becomes stuck when it enters the mempool but miners consistently skip it in favor of transactions paying higher fees. This happens when:
- You set the fee too low — The fee rate (sat/vB) was below what miners are currently prioritizing
- The mempool suddenly filled up — A fee spike occurred after you broadcast, pushing your transaction down the queue
- Your wallet estimated poorly — Some wallets use outdated fee estimation that does not account for real-time mempool congestion
A stuck transaction is not lost. Your bitcoin has not disappeared. The transaction simply has not been included in a block yet. It will either eventually confirm, or after approximately 14 days (336 hours), nodes will drop it from their mempools and the funds return to your wallet as if the transaction never happened.
But 14 days is a long time to wait. Here are three ways to fix it now.
Method 1: Replace-By-Fee (RBF)
Best for: Transactions you sent yourself, when your wallet supports RBF.
RBF lets you create a replacement transaction that spends the same inputs but with a higher fee. The new transaction invalidates the old one — miners include the higher-fee version instead.
Requirements
- Your original transaction must have RBF signaling enabled (sequence number < 0xfffffffe). Most modern wallets enable this by default.
- You must be the sender — recipients cannot use RBF.
How to Do It
In Bitcoin Core:
bitcoin-cli bumpfee "your-stuck-txid"
Bitcoin Core automatically creates a replacement transaction with an appropriate fee rate based on current mempool conditions.
In wallet apps: Most wallets (Sparrow, Electrum, BlueWallet, Nunchuk) show a “Bump Fee” or “Speed Up” button on unconfirmed transactions. Click it, choose a new fee rate, and confirm.
Choosing the right fee: Check current fee rates at mempool.space or txid.uk. Set your replacement fee at or above the “medium priority” rate to ensure confirmation within a few blocks.
What If RBF Was Not Enabled?
If the original transaction did not signal RBF, some nodes still accept replacements under full RBF (enabled by default since Bitcoin Core 26.0). However, not all miners and nodes support full RBF yet. If RBF is not an option, use CPFP instead.
Method 2: Child-Pays-for-Parent (CPFP)
Best for: When you are the recipient, or when RBF is not available.
CPFP works differently from RBF. Instead of replacing the stuck transaction, you create a new transaction (the “child”) that spends an output from the stuck transaction (the “parent”). The child transaction pays a high enough fee to cover both itself and the parent. Miners see that confirming both together is profitable, so they include the package.
Requirements
- You need a spendable output from the stuck transaction — either a change output (if you are the sender) or the receiving output (if you are the recipient).
- Your wallet must let you spend unconfirmed UTXOs.
How to Do It
In Bitcoin Core:
bitcoin-cli sendtoaddress "your-address" 0.001 \
"" "" false true null "unset" null 25
The last parameter (25 sat/vB) should be set high enough that the combined fee rate of parent + child exceeds the current mempool priority threshold.
In wallet apps: In Sparrow Wallet, right-click the unconfirmed transaction → “Accelerate Transaction (CPFP).” The wallet calculates the required child fee automatically.
Calculating the Required Child Fee
The child must compensate for the parent’s underpayment:
Required child fee rate =
(desired_total_fee - parent_actual_fee) / child_vsize
For example: if your parent TX is 200 vB with a 400 sat fee (2 sat/vB), and you want the package to average 10 sat/vB, the total target is 2,000 sats. The child must pay 1,600 sats. If the child is 150 vB, that is ~10.7 sat/vB for the child alone.
Method 3: Re-broadcast
Best for: Transactions that have been dropped from mempools entirely.
After about 14 days, nodes purge unconfirmed transactions. If your transaction was dropped, you can simply re-broadcast the original raw transaction — or create a new one with a higher fee.
How to Re-broadcast
Using tx.txid.uk:
- Go to tx.txid.uk → Broadcast
- Paste your signed raw transaction hex
- Click broadcast — the transaction is submitted to the Bitcoin network
Using Bitcoin Core:
bitcoin-cli sendrawtransaction "raw-tx-hex"
Using public APIs:
curl -X POST https://mempool.space/api/tx \
-d "raw-tx-hex"
If the original transaction was dropped, you may want to create a new transaction entirely with a current-appropriate fee rate rather than re-broadcasting the old low-fee one.
Which Method Should You Use?
| Situation | Method | Why |
|---|---|---|
| You sent it, wallet supports RBF | RBF | Simplest — one button in most wallets |
| You are the recipient | CPFP | Only option available to recipients |
| RBF not signaled, you are sender | CPFP (via change output) | Spend the change output to bump the package |
| TX was dropped from mempool | Re-broadcast | TX no longer in mempool, needs resubmission |
| Very old stuck TX (14+ days) | New transaction | Create fresh TX with current fee rate |
Checking Transaction Status
Before attempting a fix, verify your transaction’s current state:
- txid.uk — Paste your TXID to see confirmation status, fee rate, and position
- tx.txid.uk — Decode raw transactions and broadcast
- mempool.space — Visual mempool position and ETA
If the transaction shows as confirmed, the problem has resolved itself. If it shows as “not found,” it may have been dropped from mempools — re-broadcast or create a new transaction.
Preventing Stuck Transactions
The best fix is prevention:
- Check fee rates before sending — Use mempool.space or txid.uk to see current rates
- Always enable RBF — Ensure your wallet has RBF signaling on by default
- Use fee estimation wisely — When in doubt, choose “medium” or “high” priority, not “economy”
- Avoid sending during fee spikes — If the mempool is heavily congested, wait for it to clear
- Batch transactions — Combine multiple payments into a single transaction to save on total fees
Further Reading
- What Is the Mempool? — Understanding the transaction waiting room
- Bitcoin Fee Guide — How fees work and how to calculate them
- What Is a TXID? — How transaction IDs are generated and used
- Replace-By-Fee (RBF) — Technical deep-dive into RBF mechanics
- CPFP (Child Pays for Parent) — How CPFP package relay works
- Mempool Congestion — Why fee spikes happen and how to navigate them
- Broadcasting a Transaction — From raw hex to the Bitcoin network