Stuck Ethereum Transaction? How to Speed Up, Cancel, or Replace It in 2026
A stuck Ethereum transaction is almost always the result of a gas price too low for current network demand or a nonce gap blocking newer transactions. You have three ways out: speed up by resubmitting the same nonce with a higher priority fee, cancel by broadcasting a 0 ETH self-transfer at the same nonce with a higher fee, or wait for the mempool to drop it (typically 3 to 24 hours). MetaMask exposes speed up and cancel in the UI; for more control, build the replacement transaction manually.
This article is for educational and informational purposes only and does not constitute financial, investment, or trading advice. Cryptocurrency and DeFi investments carry significant risk, including the potential loss of all invested capital. Always conduct your own research (DYOR) and consult a qualified financial advisor before making any investment decisions. Past performance does not guarantee future results.
Key Insight
A stuck Ethereum transaction is almost always the result of a gas price too low for current network demand or a nonce gap blocking newer transactions. You have three ways out: speed up by resubmitting the same nonce with a higher priority fee, cancel by broadcasting a 0 ETH self-transfer at the same nonce with a higher fee, or wait for the mempool to drop it (typically 3 to 24 hours). MetaMask exposes speed up and cancel in the UI; for more control, build the replacement transaction manually.
The Twelve-Hour Panic
You submitted a swap. An hour passes. The transaction is still pending. Your wallet shows three more queued behind it that cannot confirm either. You refresh Etherscan every thirty seconds hoping it moves.
I have been there. Everyone who uses Ethereum long enough has been there. The good news is that in 2026 this is a solved problem — the tools are mature, the fee mechanics are well-understood, and you can almost always get unstuck within minutes once you know where to push.
This guide walks through every scenario: why transactions get stuck, how to diagnose yours in under five minutes, how to speed up or cancel through MetaMask, when to drop to raw nonce replacement, and how to prevent the whole mess next time.
If you are new to gas mechanics entirely, read our explainer on what gas fees are and how they work first — this guide assumes you know the basics.
Why Transactions Get Stuck: The Three Real Causes
Cause 1: Max fee below current base fee
Under EIP-1559, every transaction specifies two values:
- maxFeePerGas: the absolute cap you will pay per unit of gas.
- maxPriorityFeePerGas: the tip paid directly to the validator on top of base fee.
The network's base fee floats from block to block, rising when blocks are full and falling when they are empty. If the base fee rises above your maxFeePerGas after you submitted, the transaction becomes ineligible for inclusion and just sits in the mempool.
This is the single most common stuck-transaction cause in 2026. During NFT mints, airdrop claims, or sudden market moves, base fee can spike from 5 gwei to 100 gwei in minutes. Any wallet that guessed 20 gwei as its max is stranded.
Cause 2: Priority fee too low to be attractive
Even with maxFeePerGas high enough, validators still pick the transactions with the highest effective priority fee first. If every recent block included transactions at 2 gwei tip and you set 0.5 gwei, builders simply skip yours.
Cause 3: Nonce blocked by an earlier stuck transaction
Nonces are strict. If your account has stuck nonce 42, then nonce 43, 44, and 45 cannot mine regardless of their fees. You have to fix 42 before anything else moves.
This cascade is especially bad on trading accounts that submit many transactions per hour: a single laggy approval can stall a whole position.
Step 1: Confirm the Transaction Is Actually Stuck
Open Etherscan and paste your transaction hash. The statuses you will see:
- Pending: still in the mempool, can be replaced.
- Success: already mined. Nothing to do.
- Failed: mined but reverted. Not stuck; the transaction executed but hit an error in the contract.
- Dropped: removed from the mempool due to time or resource pressure. The nonce is free; you can submit a new transaction at the same nonce.
If it is pending and has been for more than ~15 minutes under normal network conditions (or ~1 hour during congestion), it is stuck. Proceed to Step 2.
If your wallet shows pending but Etherscan cannot find the hash at all, your node never propagated it. Check your wallet is connected to the right RPC — this happens to people running their own nodes more than they realize.
Step 2: Compare Your Fees to Current Mempool Conditions
Open the Etherscan gas tracker or ultrasound.money. Note:
- Current base fee
- Suggested priority fee (usually 1-3 gwei in normal conditions)
- Recent confirmed transaction tips
Now compare to your stuck transaction. On Etherscan, the transaction detail page shows Max Fee, Max Priority Fee, and Base Fee Per Gas in the advanced details.
If maxFeePerGas < current base fee: the transaction cannot mine until base fee drops. Replace with a higher cap.
If maxFeePerGas >= current base fee but maxPriorityFeePerGas is very low: validators are deprioritizing you. Replace with a higher tip.
If both numbers look fine: check for a lower-nonce stuck transaction on the same account (see Cause 3).
Step 3: The MetaMask Fast Path
For 95 percent of stuck transactions, MetaMask's built-in UI is all you need.
- Open MetaMask and select the correct account and network.
- Click the Activity tab.
- Click the pending transaction.
- You will see Speed Up and Cancel buttons at the top.
Speed Up opens a fee editor pre-filled with a 10 percent bump (the geth minimum for mempool replacement). You can choose Market, Aggressive, or Custom. Custom lets you set maxFeePerGas and maxPriorityFeePerGas directly.
Cancel does the same thing but submits a 0 ETH self-transfer at the same nonce. If the cancel replacement wins the race, the original is effectively voided. If the original mines first, the cancel fails and you have paid a small amount of gas.
How much to bump
The mempool replacement rule requires both gas fee fields to be at least 10 percent higher than the original. This is a floor, not a recipe.
In practice:
- Gentle bump (+15-25%): use when network is calm and you just want a nudge.
- Aggressive bump (+50-100%): use during congestion; guarantees inclusion in the next few blocks.
- Nuclear bump (2-5x): use when you absolutely need it in the next block (airdrop claim, liquidation).
Every bump is a new max fee — if it still does not mine, you can bump again from there.
Step 4: Manual Nonce Replacement for Power Users
MetaMask's UI handles the common case. For edge cases — custom nonces, wallet disagreement about nonce, batched transactions — you need to do it manually.
Find the nonce
On Etherscan, click the transaction and look at the Nonce field in the advanced details. Or in MetaMask, the transaction detail shows the nonce in the bottom section.
Build a replacement in MetaMask
- Settings > Advanced > Customize transaction nonce > ON.
- Start a new transaction (any send, swap, or contract interaction).
- At the confirmation screen, edit the nonce to match the stuck transaction's nonce.
- Set fees well above current base fee and tip.
- Confirm.
Ethereum will process whichever transaction mines first at that nonce; the other becomes invalid and drops out of the mempool.
Build a replacement with ethers.js
For scripted or high-frequency operations:
import { ethers } from "ethers";
const provider = new ethers.JsonRpcProvider(process.env.RPC_URL);
const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);
const stuckNonce = 42; // whichever nonce is stuck
// Cancel: 0 ETH self-transfer at the same nonce
const tx = await wallet.sendTransaction({
to: wallet.address,
value: 0n,
nonce: stuckNonce,
maxFeePerGas: ethers.parseUnits("150", "gwei"),
maxPriorityFeePerGas: ethers.parseUnits("5", "gwei"),
});
console.log("Cancel submitted:", tx.hash);
await tx.wait();
console.log("Cancel confirmed");The same pattern speeds up a transaction — just rebuild the original transaction (to, value, data) at the same nonce with higher fees.
Step 5: When to Use Flashbots Instead
Public mempool replacement races are themselves subject to MEV. If your transaction is large or profitable to front-run (big swap, NFT mint, arbitrage), searchers will detect your speed-up and sandwich it.
Flashbots Protect gives you a private RPC endpoint. Transactions submitted there go directly to block builders, bypassing the public mempool entirely. To use it:
- Add the Flashbots Protect RPC as a custom network in MetaMask (or point your wallet there).
- Submit the speed-up or replacement through that RPC.
- The transaction becomes visible on-chain only when mined.
This is also the right tool if you suspect your public transaction has been picked up by a sandwicher who will crowd out any replacement you attempt.
For background on Ethereum's transaction model, see our explainer on what Ethereum is.
Step 6: Account Abstraction Sidesteps Most of This
ERC-4337 account abstraction wallets do not have the same nonce cascade problem. UserOperations use a flexible nonce space with "keys" and "sequences", so you can have multiple parallel nonce streams from the same account. A stuck operation in one key does not block another key.
Smart wallets like Safe, Argent, and Coinbase Smart Wallet also offer built-in replacement and cancellation UIs that handle fee bumping for you. If you find yourself regularly stuck, migrating off a standard EOA is the right long-term answer.
Real Scenarios I Have Debugged
Scenario A: NFT mint disaster
User set maxFeePerGas to 30 gwei for an anticipated mint. At mint time, base fee spiked to 400 gwei from coordinated mint activity. Transaction stranded for 6 hours, along with 4 queued approvals behind it.
Fix: cancelled the mint with a replacement at 500 gwei max, 10 gwei priority. Cancel confirmed within 2 blocks. The 4 queued approvals then processed in order normally.
Scenario B: Wallet says confirmed, Etherscan says pending
User's wallet showed the transaction as mined. Etherscan showed pending. Wallet was connected to a cached RPC that had forked briefly. Cleared wallet cache, reconnected to a fresh RPC (Alchemy or Infura), and the real status surfaced.
Scenario C: Nonce disagreement
User submitted transactions from two devices simultaneously. Both used nonce 17. One confirmed; the other stayed pending forever because nonce 17 was already used. The "stuck" transaction was actually invalid.
Fix: submit a new transaction at nonce 18 to resync the wallet's nonce counter. The old pending will eventually drop.
Scenario D: Revoke.cash revoke stuck
User revoking a token approval after seeing their wallet on revoke.cash. Revoke transaction stuck at low gas. Meanwhile a scam contract had already been called — the revoke needed to win the race.
Fix: re-submitted the revoke via Flashbots Protect at 3x normal fees. Landed in the next block. This is a case where gas price truly matters in real time.
Prevention Playbook
- Set realistic defaults. Configure MetaMask Advanced > Default gas limit and fee settings. Do not leave it on "low" for anything time-sensitive.
- Watch base fee before submitting. Thirty seconds on Etherscan gas tracker saves hours of waiting.
- Avoid back-to-back submissions. If you submit 5 transactions in rapid succession, each at the same fee, and base fee rises between them, you will strand the last ones. Space them out or bump later ones proactively.
- Use L2s for casual activity. Arbitrum, Optimism, and Base gas is so low that stuck transactions are effectively impossible. Save mainnet for operations that require it.
- Switch to a smart wallet for trading. Account abstraction eliminates nonce cascades entirely.
When Nothing Works, Just Wait
Stuck transactions eventually drop out of the mempool — typically 3 hours on well-run nodes, up to 24 hours across the broader network. If the transaction is not time-sensitive and the fee is only slightly low, waiting is free and risk-free. You have not spent any gas until the transaction mines.
Once dropped, your nonce is free again and you can submit normally. Verify via an Etherscan check that the pending status has gone to dropped before assuming the nonce is clear.
What to Read Next
- What Are Gas Fees? Ethereum Fees Explained
- What is Ethereum? A Beginner's Guide
- ERC-4337 Account Abstraction Developer Guide
External references:
- Etherscan Gas Tracker
- EIP-1559 Specification
- Flashbots Protect RPC
- MetaMask Support: Speed Up / Cancel
- Ultra Sound Money (Base Fee dashboard)
This post is part of our Ethereum and DeFi coverage. For the broader picture, see our [complete guide to Ethereum](/blog/what-is-ethereum-explained).
Key Takeaways
- A transaction is stuck only if its nonce has not been mined — check [Etherscan](https://etherscan.io) and confirm it is still in the pending state, not dropped
- Replacement transactions must reuse the exact same nonce and bump both maxFeePerGas and maxPriorityFeePerGas by at least 10 percent (geth default)
- Cancelling is really just a replacement that sends 0 ETH to yourself — the network has no native cancel
- A low-nonce stuck transaction blocks every higher-nonce transaction from the same account until it mines or drops
- EIP-1559 splits gas into base fee (burned) and priority fee (tip) — only bumping the tip is often not enough during demand spikes
- Flashbots and private mempools can rescue transactions that cannot win a public gas auction (e.g., sandwich-attack-prone trades)
- Prevention: set a sane default max fee in MetaMask, watch base fee on [ultrasound.money](https://ultrasound.money), and never submit many transactions in rapid succession without tracking nonces
Frequently Asked Questions
Why is my Ethereum transaction stuck pending for hours?
In 2026 there are three usual causes. First, your max fee is below the current base fee — the network will not include the transaction until the base fee drops. Second, your priority fee (tip) is lower than what block builders are accepting right now, so builders skip it for more profitable ones. Third, there is a lower-nonce transaction from the same account that is itself stuck, and Ethereum processes nonces strictly in order. Open [Etherscan](https://etherscan.io), look at the pending state, and compare your fees to current mempool stats on [mempool.space/ethereum](https://mempool.space).
How do I speed up a stuck transaction in MetaMask?
Open MetaMask, click the Activity tab, click the pending transaction. You will see Speed Up and Cancel buttons. Speed Up lets you increase the priority fee (recommended) or enter custom max fee values. MetaMask automatically reuses the same nonce and bumps fees by at least 10 percent. If the new fee is still below current mempool conditions, the replacement will also stick. Check the base fee and priority fee currently being accepted before you choose your bump.
What is the nonce and why does it matter for stuck transactions?
A nonce is a per-account counter that ensures transactions execute in the order you sent them. If you send transactions with nonces 5, 6, and 7, Ethereum will process nonce 5 first, then 6, then 7. If nonce 5 is stuck at low gas, nonces 6 and 7 cannot be mined even if their fees are fine. To unstick the whole queue you must fix (speed up, cancel, or replace) nonce 5. See the [EIP-1559 specification](https://eips.ethereum.org/EIPS/eip-1559) for deeper mechanics.
Can I really cancel an Ethereum transaction after I submitted it?
Not exactly. You cannot delete a pending transaction from the mempool. What you can do is submit a replacement transaction with the same nonce and a higher fee. The convention for a cancel is a 0 ETH transfer to your own address at the same nonce. If the replacement confirms first, the original is effectively cancelled (dropped by the network). If the original mines first, the cancel fails and you have burned a small amount of gas for nothing. MetaMask's Cancel button does this automatically.
My replacement transaction is also stuck. What now?
Your replacement fee is still too low. Check the current base fee on [Etherscan gas tracker](https://etherscan.io/gastracker) and set maxFeePerGas at least 25 percent above that. Set maxPriorityFeePerGas to match what recent blocks actually included (the median priority fee, not the minimum). If you have done this three times and it still sticks, the base fee is likely rising faster than your bumps — wait for a quiet period (weekends, off-US hours) and try once with a much higher cap.
Does EIP-1559 change how I handle stuck transactions?
Yes. Under the pre-1559 model, there was a single gasPrice you bumped. Under EIP-1559 there are two knobs: maxFeePerGas (cap you are willing to pay including base fee) and maxPriorityFeePerGas (tip paid to validators). Stuck transactions happen when maxFeePerGas falls below the current base fee, which can rise block over block. Always set maxFeePerGas with headroom — 2x the current base fee is a reasonable starting point — and bump both values when replacing.
What is Flashbots and when should I use it for stuck transactions?
[Flashbots Protect](https://protect.flashbots.net) is a private transaction relay that routes your transaction directly to block builders instead of the public mempool. Use it when your transaction is sensitive to MEV (large swaps, NFT purchases, arbitrage) because public mempool searchers will front-run or sandwich you. It is less useful for pure "stuck" situations, but it is the right tool if your public transaction is being crowded out by MEV activity.
How do I prevent stuck transactions in the future?
Three habits. First, never use the "low" gas estimate for time-sensitive operations — it optimizes for cost, not inclusion. Second, monitor base fee trends before you submit: use [ultrasound.money](https://ultrasound.money) or the [Etherscan gas tracker](https://etherscan.io/gastracker). Third, if you submit multiple transactions in sequence, track nonces manually and bump later transactions if the earlier ones lag, so you do not end up with a blocked queue. For power users, account abstraction via [ERC-4337](/blog/erc-4337-account-abstraction-developer-guide-2026) sidesteps nonce queuing entirely.
About the Author
Marcus Williams
Blockchain Developer & DeFi Strategist
MS Financial Engineering, Columbia | Former VP at Goldman Sachs
Marcus Williams is a blockchain developer and DeFi strategist with a decade of experience in fintech and decentralized systems. He earned his MS in Financial Engineering from Columbia University and spent five years at Goldman Sachs building quantitative trading platforms before pivoting to blockchain full-time in 2019. Marcus has audited smart contracts for protocols managing over $2 billion in total value locked and has contributed to open-source projects including Uniswap and Aave governance tooling. At Web3AIBlog, he specializes in DeFi protocol analysis, tokenomics deep dives, and blockchain security reviews. His writing bridges the gap between traditional finance and the decentralized economy.