Stuck Crypto Transactions: How Replace-by-Fee and Speed-Ups Work
A stuck crypto transaction usually means the fee was too low. See how Bitcoin replace-by-fee, CPFP and Ethereum speed-ups work, with the math for each fix.
Key takeaways
- A pending transaction is usually stuck because its fee is below what blocks currently need. Your funds are not lost.
- Bitcoin RBF re-spends the same coins at a higher fee rate, and you pay only the fee of the version that confirms.
- CPFP lets a recipient pull a stuck payment through, but it costs more because you also pay for the child's bytes.
- An Ethereum speed-up reuses the stuck nonce with higher fees. Geth rejects replacements that raise fees by less than 10%.
- Size any bump from current network conditions, and never give your recovery phrase to a site offering to speed things up.
On this page
Why do crypto transactions get stuck?
Every blockchain has limited block space, and block producers fill it with the transactions that pay the most per unit of space. After you hit Send, your transaction waits in a pool of pending transactions (the mempool) until a block includes it. If demand jumps in the meantime, your fee can fall below the level blocks are clearing at, and the transaction just sits there.
On Bitcoin, the number that matters is the fee rate in satoshis per virtual byte (sat/vB), not the total fee. A large transaction with a big total fee can still be cheap per byte. Our guide to how Bitcoin fees are calculated in sat/vB covers the sizing.
On Ethereum, two things cause most stuck transactions. First, the network’s base fee can rise above the max fee per gas you allowed, so your transaction can’t be included until the base fee falls again. Our guide to base fee, priority fee and gas limit explains that mechanism. Second, each account’s transactions carry a nonce, a counter that must be used in order. If nonce 41 is stuck, nonces 42 and 43 wait behind it.
Tip: A pending transaction has not lost your funds. It will confirm, get replaced by a newer version, or eventually drop out of node memory. What you control is which of those happens first.
How does replace-by-fee work on Bitcoin?
Replace-by-fee (RBF) means broadcasting a new version of your transaction that spends at least one of the same coins (inputs) but pays a higher fee. Because a coin can only be spent once, the two versions conflict, and nodes keep the one that pays more. Only one version can ever confirm, so you pay only one fee.
The rules started with BIP-125 and now live in each node’s relay policy. Under Bitcoin Core’s policy as of September 2026, a replacement must pay a higher total fee than everything it replaces, plus an extra amount for its own size at the incremental relay rate, which recent versions set at 0.1 sat/vB by default. BIP-125 originally required the first transaction to signal that it could be replaced. Bitcoin Core has accepted replacements without that signal by default since version 28.0, but your wallet still decides whether it shows a “Bump fee” option, so check before you need it.
Worked example: an RBF bump
Example: Suppose you sent a typical 141 vB transaction at 2 sat/vB, a fee of 282 sats (141 × 2). Blocks are now clearing at about 12 sat/vB (a hypothetical figure).
- Replacement fee: 141 vB × 12 sat/vB = 1,692 sats.
- Rule check 1: 1,692 is more than the original 282, so the replacement pays a higher total fee.
- Rule check 2: the extra 1,410 sats (1,692 − 282) easily covers the relay charge for its own size, 141 × 0.1 = 14.1 sats.
- What you pay: 1,692 sats in total, not 282 + 1,692 = 1,974. At a hypothetical $60,000 per BTC, that is about $1.02.
CPFP: the fix when you can’t replace
Child pays for parent (CPFP) works from the other end. Instead of replacing the stuck transaction (the parent), you spend one of its outputs in a new transaction (the child) that pays a high fee. A child can only confirm if its parent does, and miners evaluate the pair as a package, so a generous child pulls the parent into a block.
Recipients rely on CPFP because they control the output they received, while only the sender can sign a replacement. A sender can also use it by spending their own change output. The fee you need follows one formula: child fee = target rate × (parent size + child size) − parent fee.
Example: Take the same stuck 141 vB parent that paid 282 sats. Your child transaction is 110 vB, and you want the pair to average 12 sat/vB.
- Package fee needed: 12 × (141 + 110) = 3,012 sats.
- Child fee: 3,012 − 282 = 2,730 sats, which is about 24.8 sat/vB on the child alone.
- Total cost: 3,012 sats, or 1,320 sats (78%) more than the RBF route, because you are also paying for the child’s 110 vB.
That gives a simple rule: if you sent the transaction and your wallet can replace it, RBF is cheaper. If you are the recipient, or replacement isn’t available, CPFP is your lever.
How do speed-up and cancel work on Ethereum?
Ethereum has no coins to re-spend. A replacement is a new transaction from the same account with the same nonce and a higher fee, and nodes keep only one pending transaction per nonce. The Geth client, for example, rejects a replacement unless its fees are at least 10% higher than the original’s, by default. Wallet “Speed up” buttons build this replacement for you.
A cancel uses the same trick with a different payload: you send 0 ETH to your own address, using the stuck nonce and a higher fee. If the cancel confirms first, the original can never confirm, because its nonce is used up. If the original wins the race, the cancel is dropped and costs nothing.
Worked example: speeding up an ETH transfer
Example: You sent ETH with a max fee of 12 gwei and a priority fee (tip) of 1 gwei. The base fee has since climbed to 25 gwei (hypothetical), so your transaction can’t be included.
- Minimum bump: 10% gives a 13.2 gwei max fee and a 1.1 gwei tip. That passes the node rule but still sits below the 25 gwei base fee, so it would stay stuck.
- Workable replacement: a 52 gwei max fee (2 × 25 + 2) with a 2 gwei tip.
- Likely cost: 21,000 gas × (25 + 2) gwei = 567,000 gwei = 0.000567 ETH, about $1.42 at a hypothetical $2,500 per ETH.
- Worst case at the cap: 21,000 × 52 = 1,092,000 gwei = 0.001092 ETH, about $2.73. You pay the base fee plus tip at inclusion, never more than the cap.
You can rerun this with live numbers in our gas fee calculator, and our explainer on converting gwei to ETH and USD walks through the unit math. If several transactions are pending, fix the lowest nonce first; speeding up nonce 43 does nothing while nonce 41 is stuck.
| Bitcoin (RBF) | Ethereum (speed-up) | |
|---|---|---|
| What links the versions | Same inputs (coins) | Same account nonce |
| Minimum bump | Higher total fee + relay fee | At least +10% (Geth default) |
| How to cancel | Replace with a pay-to-self | Send 0 ETH to yourself |
| Plan B | CPFP from an output | Wait for the base fee to fall |
| Fee you pay | Only the version that confirms | Only the version that confirms |
Which fix should you use?
| Situation | First move | Why |
|---|---|---|
| You sent BTC and your wallet offers a fee bump | Replace-by-fee | Cheapest; you pay one fee |
| You received BTC and it’s stuck | CPFP from the output you received | You control that output |
| You sent BTC, no replace option, change output exists | CPFP from your change | Works without replacing |
| ETH pending, max fee below the base fee | Speed up with the same nonce | Max fee must clear the base fee |
| Several ETH transactions queued | Fix the lowest nonce first | Nonces confirm in order |
| Fees are falling and you’re not in a hurry | Wait | Costs nothing extra |
Common mistakes that make it worse
- Sending the payment again. A second transaction with new coins or a new nonce is not a replacement. Both can confirm, and then you have paid twice.
- Bumping by the minimum. A 10% bump satisfies the node rule, but if the base fee or the going sat/vB rate has doubled, the replacement is stuck too.
- Confusing stuck with failed. A stuck transaction hasn’t been included yet. A failed one was included and reverted, which is why a failed transaction still costs gas.
- Expecting to bump an exchange withdrawal. The exchange signed it, so only the exchange can replace it. On Bitcoin, CPFP from the output you received is your only lever; see withdrawal fees vs network fees.
- Trusting an “accelerator” that wants your secrets. A real bump is a transaction you sign in your own wallet. Never share your recovery phrase or type it into a website, whoever is asking.
The bottom line
A stuck transaction is a pricing problem, not a lost-funds problem. On Bitcoin, replace-by-fee is the cheapest fix for senders and CPFP is the recipient’s lever; on Ethereum, reuse the stuck nonce with fees that clear the current base fee. Size the bump from live network conditions, and keep your recovery phrase offline and unshared.
Frequently asked questions
How long can a crypto transaction stay pending?
There is no fixed deadline. A Bitcoin transaction waits until a miner includes it, you replace it, or nodes drop it from their mempools, which can take days. An Ethereum transaction waits until the base fee falls to its max fee or you replace it using the same nonce. Check its status on a block explorer, compare its fee with current conditions, and bump it if you can't wait.
Does replace-by-fee mean I pay two fees?
No. The original and the replacement spend the same coins, so only one of them can ever confirm, and you pay only the fee of the version that does. In the worked example above, a 282-sat transaction bumped to 1,692 sats costs 1,692 sats in total. CPFP is different: both the parent and the child confirm, so you pay both fees.
Can I cancel a Bitcoin or Ethereum transaction?
Only before it confirms, and only by replacing it. On Bitcoin, you replace it with a version that sends the coins back to your own address at a higher fee. On Ethereum, you send 0 ETH to yourself with the same nonce and a higher fee. Either way it is a race: if the original confirms first, the cancel fails, and a confirmed transaction is final.
Why does my wallet say the replacement fee is too low?
Nodes reject replacements that don't raise the fee enough. On Ethereum, Geth requires at least a 10% increase by default, so a tiny bump is refused outright. On Bitcoin, the replacement must pay more in total than the original plus a small relay fee for its own size. Even an accepted bump can stay stuck if it is still below what blocks are clearing at.
Is a paid transaction accelerator safe to use?
Treat any service that asks for your recovery phrase, private key or remote access to your device as a scam. A legitimate speed-up is a new transaction you sign in your own wallet, so no outside service needs your secrets. Never share your recovery phrase or type it into a website. If your wallet can't bump the fee, CPFP or simply waiting are safer options.
Sources
- BIP 125: Opt-in Full Replace-by-Fee Signaling — Bitcoin BIPs repository (GitHub)
- Mempool Replacements (policy documentation) — Bitcoin Core (GitHub)
- Child Pays For Parent (CPFP) — Bitcoin Optech
- Command-line Options (txpool.pricebump) — Go Ethereum (Geth) documentation
- Transactions — ethereum.org
This content is for education only and is not financial, investment, tax or legal advice. Crypto assets are volatile and you can lose money. Examples use hypothetical numbers. See our disclaimer and editorial policy.