Ethereum Transaction Pending for Hours? What to Do
If your Ethereum transaction has been pending for hours, what to do depends on one thing: whether the fee you offered is still high enough for the current block. In almost every case the funds have not moved, the transaction is simply waiting in the queue, and you can replace it with a higher fee or cancel it from the same wallet.
This guide explains why a transaction sits in "pending" for hours, how to check what is really happening, and the exact steps to speed it up, cancel it, or clear a blocked queue. Nothing here needs your seed phrase. Anyone who asks for one, or who offers to "release" the transaction for a fee, is not helping you.
Why an Ethereum transaction stays pending for hours
A pending transaction is one that your wallet has broadcast but that no validator has yet included in a block. Ethereum uses a fee market, so the usual causes are:
- Your max fee is below the current base fee. Since EIP-1559, every block has a base fee that rises when the network is busy. If your transaction's max fee is lower than the base fee, it is not eligible for inclusion until the base fee falls. It is not broken, it is waiting.
- Your priority fee (tip) is too low. Even when the max fee is enough, validators order transactions by tip. A very small tip can wait behind thousands of others during a busy period.
- An earlier transaction from the same address is stuck. Ethereum processes transactions from one address strictly in nonce order. If nonce 41 is pending, nonces 42, 43 and 44 cannot confirm, no matter how high their fees.
- The transaction was never fully broadcast. Some wallets show "pending" locally while the network never received the transaction, often after a dropped connection. The explorer then shows nothing at all for that hash.
- It was dropped from the mempool. Nodes do not keep low-fee transactions forever. After a while the transaction may be evicted, and the wallet still shows it as pending until you reset or refresh.
What is not the cause: the ETH or tokens are not frozen, a validator has not "taken" them, and the network does not need you to pay anyone to unstick it.
Step 1: check the real status on a block explorer
Before changing anything, confirm what the chain knows.
- Copy the transaction hash from your wallet's activity list.
- Paste it into a public explorer such as Etherscan or Blockscout.
- Read the status line. You will see one of three things:
- Pending, with the gas fields shown. Compare your "Max Fee Per Gas" with the current base fee shown on the explorer's gas tracker. If yours is lower, that is your answer.
- Success or Fail, with a block number. The transaction is already final. A "Fail" still costs gas but moves no funds; look at the error reason before retrying.
- Not found. The network has no record of it. Either it was never broadcast or it was dropped. Your wallet's view is stale.
- Open your address page and look at the nonce of your last confirmed transaction. If your pending transaction's nonce is more than one above it, there is another pending transaction in front of it that you must deal with first.
If you only have the receiving address and not the hash, a read-only wallet scanner can show what has actually landed. Scan a wallet free shows what is in a public address, what is staked, locked, pending or ready to claim, with on-chain proof. It does not cover bridges or most DeFi positions beyond Aave v3, so a cross-chain transfer still needs the bridge's own explorer.
Step 2: speed it up by replacing the transaction
Ethereum lets you replace an unconfirmed transaction by sending a new one with the same nonce and a higher fee. Nodes keep the better-paid version and drop the old one. Most wallets wrap this in a "Speed up" button.
In MetaMask (and most browser wallets):
- Open Activity and click the pending transaction.
- Choose Speed up.
- Accept the suggested fee, or pick Advanced and set the max fee above the current base fee with a reasonable priority fee. The gas tracker on the explorer shows what is clearing right now.
- Confirm. The wallet signs a copy of the same transaction (same nonce, same recipient, same amount) with the new fee.
Rules to know:
- The replacement must raise the fee meaningfully. Many nodes, including the default Geth configuration, reject a replacement unless both the max fee and the priority fee are at least about 10% higher. Confirm the exact threshold in your client's documentation if you are doing this manually.
- Only one of the two transactions can ever confirm, because they share a nonce. You will not pay twice.
- If the wallet greys out "Speed up", the transaction may already be confirmed or dropped. Refresh the explorer first.
Doing it manually: send a transaction to the same recipient with the same amount and data, set the nonce field to the pending nonce, and use the higher fee. Hardware-wallet software usually exposes a custom-nonce field in advanced settings.
Step 3: cancel it instead
Cancelling works the same way, except the replacement sends 0 ETH to your own address with the same nonce. Once it confirms, the original can never confirm.
- In the wallet's activity view, pick the pending transaction and choose Cancel.
- Accept the fee. You pay for the cancellation transaction, but it is a plain transfer, so the gas is small.
- Wait for the cancellation to confirm. The original then disappears from the explorer's pending list.
Cancel is the right choice when you no longer want the action to happen, for example a swap whose price has moved, or a transfer to the wrong address that has not yet confirmed. If the original confirms before your cancellation, the cancellation simply fails to replace it and you lose only its gas.
Step 4: clear a nonce gap that blocks everything
If every new transaction you send also sits pending, you almost certainly have an older stuck transaction holding the queue.
- On the explorer, find the lowest pending nonce for your address.
- Speed up or cancel that transaction first, using the steps above.
- Once it confirms, the later ones become eligible and usually confirm on their own if their fees are adequate. If they are also underpriced, repeat for the next nonce.
If the explorer shows no pending transactions at all but your wallet still does, the wallet's view is stale. In MetaMask, Settings > Advanced > Clear activity tab data removes the phantom entries without touching your keys or funds. Other wallets have a similar "reset account" or "resync" option. This never requires re-entering a seed phrase; be suspicious of any site that says otherwise.
A worked example (illustration only)
The numbers below are made up to show the arithmetic. They are not BOTLAB results and not a recommendation of any fee level.
- You sent 0.5 ETH at nonce 42 with a max fee of 15 gwei and a priority fee of 1 gwei.
- The network got busy and the base fee rose to 24 gwei. Your transaction is below the base fee, so it has been pending for six hours.
- You open Speed up and set max fee 35 gwei, priority fee 2 gwei, same nonce 42. Both fields are well above 10% higher, so nodes accept the replacement.
- A simple ETH transfer uses 21,000 gas. The worst-case cost is 21,000 × 35 gwei = 0.000735 ETH. The actual charge is lower if the base fee is below 35 gwei when it confirms, because EIP-1559 refunds the difference.
- The replacement confirms in the next block that has room. The original at 15 gwei is discarded. You paid one fee, not two.
Had you instead chosen Cancel, the replacement would be 0 ETH to yourself at nonce 42 with the same 35 gwei max fee. The 0.5 ETH would stay in your wallet.
What to do if nothing above works
- Transaction shows "Not found" for a long time: it was never broadcast or was dropped. Reset the wallet's activity data and send it again as a fresh transaction. There is no duplicate risk because the chain never saw the first one.
- Contract interaction keeps failing on replay: the problem is the contract call, not the queue. Check the revert reason on the explorer before paying more gas.
- Transfer to an exchange still "pending" on the exchange side: the chain may already show Success. Exchanges credit after their own confirmation count. Our guide on a Binance withdrawal still pending explains what to check on the exchange side.
- You used a bridge: the Ethereum leg can be confirmed while the destination leg waits. Track it in the bridge's own explorer; general wallet scanners do not see that stage.
Ethereum's fee mechanism differs from Bitcoin's, where replacement depends on RBF flags. If you also have a stuck BTC transfer, see Bitcoin transaction stuck unconfirmed. And if the "pending" item is actually a staking or unbonding balance rather than a transfer, that is a different situation; Staked vs Locked vs Stuck covers how to tell them apart.
Safety: what nobody legitimate will ask for
A pending transaction is a common and visible problem, which makes it a favourite hook for scams. Keep these rules:
- No support team, validator or "recovery service" needs your seed phrase or private key to help. Anyone asking for it is trying to take the wallet.
- Nobody can charge a fee to "release" or "accelerate" your transaction from outside your wallet. Only a replacement signed by you changes anything.
- Do not connect your wallet to a site you found through a reply on social media offering to fix stuck transactions.
- Read-only tools that take only a public address cannot move funds. Scan a wallet free works that way: no wallet connection, no signing, nothing to approve.
About BOTLAB
BOTLAB is a research lab that publishes paper-trading results of crypto bots. Those results are simulated (virtual money, real market prices), are not predictions, and past results do not predict future results. Crypto trading can lose money, including all capital. You can read how that work is organised at /platform. Not available in restricted jurisdictions (see the Service Agreement). You trade with your own exchange account; BOTLAB never holds funds.
FAQ
Can a pending Ethereum transaction fail and take my ETH?
No. A transaction that is never included in a block costs nothing and moves nothing. A transaction that is included but reverts does cost gas, but the value it was carrying returns to your address. Either way the balance is not lost.
How long can an Ethereum transaction stay pending?
There is no fixed limit set by the protocol. Individual nodes evict low-fee transactions from their mempools after a period that varies by client and configuration, often measured in hours. If the base fee stays above your max fee, it can sit indefinitely until replaced, dropped or the fee market falls. Confirm the behaviour in your node client's docs if you run your own.
Why did "Speed up" cost me gas but not confirm?
Usually because the new fee was still below the current base fee, or because an older pending transaction with a lower nonce is blocking it. Check the lowest pending nonce on the explorer and fix that one first.
Does cancelling cost money?
Yes, a small amount. The cancellation is itself a transaction (0 ETH to your own address) and pays normal gas for a simple transfer. If the original confirms first, the cancellation attempt fails and you lose only its gas.
Key takeaways
- A transaction pending for hours is almost always waiting on fee or nonce order, not broken, and the funds have not left your wallet.
- Check the hash on a block explorer first: pending, confirmed, failed or not found each needs a different action.
- Replace it with a new transaction at the same nonce and a higher fee to speed up, or send 0 ETH to yourself at that nonce to cancel.
- If every new transaction also stalls, clear the lowest pending nonce first.
- Nobody legitimate asks for a seed phrase or a fee to unstick a transaction.
General information, not financial advice. Check the official docs before you move funds. Crypto trading can lose money, including all capital.
Want these checks run on your own strategy? See the strategy and backtest audit.
More guides
- Across Protocol App Warning: What Holders Should Do Now
- Avalanche Staking End Date: When Do Funds Return?
- Staked vs Locked vs Stuck Crypto Explained
- Polkadot Unbonding Period: How to Withdraw Your DOT
Scan a wallet free