How to fix nonce too low error on Ethereum RPC
You're about to send a transaction. MetaMask spins. Nothing happens. Then you see it: "nonce too low." The error stops you dead. It means your wallet and the nodes/geth-vs-erigon-execution-client/">Ethereum node disagree about what number comes next.
Every Ethereum address has a nonce, a counter that starts at zero. Each transaction you send increments it by one. The network uses this to order transactions and prevent double-spends. When you get "nonce too low," the node already has a transaction with that nonce - or a higher one - pending from your address. Your wallet tried to reuse a number that's already taken.
The fix starts with checking what nonce the network actually expects. Call eth_getTransactionCount with the pending block parameter. This returns the total number of transactions the node knows about for your address, including those not yet confirmed. Compare that to what your wallet thinks the nonce is. They will differ.
In MetaMask, the fix is straightforward. Open the advanced gas controls. There is a "nonce" field. Uncheck "Use default." Enter the correct nonce - the one the node returned - and send the transaction. This overrides the wallet's automated counting.
Sometimes the problem is a stuck transaction. A transaction you sent hours ago is still pending. Your wallet has incremented its nonce count, but the network hasn't processed that transaction yet. Every subsequent transaction you try will fail with "nonce too low" because they all use numbers higher than the stuck one.
You have two options. Speed up the stuck transaction by resending it with a higher gas price; this replaces the original, and once it confirms, the nonce counter advances. Or cancel it: send a new transaction with the same nonce, a value of zero, and no data, setting the gas price high enough that miners pick it first. The cancellation replaces the stuck transaction, and then you can send normally again.
The "replacement transaction underpriced" error often follows. It means you tried to replace a pending transaction, but your new gas price isn't high enough. Ethereum requires a 10% gas price increase to replace a transaction, and some wallets enforce stricter minimums. If you see this, bump the gas price further. For MetaMask, the advanced gas controls let you set a custom priority fee and base fee. Raise both.
One more nuance. If you use multiple wallets or dApps that manage nonces independently, they can conflict. One app increments the counter; another doesn't know. The nonce the network sees diverges from what any single wallet tracks. The only fix is to check eth_getTransactionCount directly and manually set the nonce.
This error is not a network problem. It is a counting problem. The node knows what it knows; your wallet lost track. The tools to fix it are simple: check the pending count, override the nonce, and resend.
If you are stuck repeatedly, look at your workflow. Are you sending transactions from multiple devices? Are you importing the same seed into different wallets? Are you using a hardware wallet that shares its nonce state inconsistently? Any of these can cause the counter to drift.
The nonce is a ledger. Every transaction writes one entry. You cannot skip a page. You cannot go back. You can only fill the missing page and move forward.
Not financial advice. starname.me publishes market data and general information about digital assets. Crypto assets are volatile and you can lose everything you put in. Nothing here is a recommendation to buy, sell or hold, and we make no price predictions.
Prices are sourced from third parties and may be delayed or wrong. Verify anything you intend to act on against a primary source.