ERC20 Transfer Failed – Why Crypto Transfers Fail
An erc20 transfer failed or token transfer reverted message usually comes from one of four causes: gas issues, token contract restrictions, wallet/UI problems, or a pending transaction blocking the nonce. This page is a practical runbook for transfer failed erc20, metamask transfer failed, and crypto transfer pending forever.
What ERC20 Transfer Failed Means
“ERC20 transaction failed” means the EVM did not finalize state changes. The transaction can fail at simulation (gas estimate fails), or it can be mined and then revert due to a requirement failing (balance, allowance, blacklist, paused token, maxTx, etc.).
| What you see | Typical cause | Fast check | Fix direction |
|---|---|---|---|
| token transfer reverted | Contract rule failed (require) | Explorer shows “Reverted” | Identify restriction & retry after fix |
| gas estimation failed | Tx would revert | Wallet cannot estimate | Check token rules; try small transfer |
| crypto transfer pending forever | Nonce stuck / gas too low | Explorer shows pending | Speed up / replace / cancel tx |
| metamask transfer failed | RPC / UI / wrong network | Try another RPC | Switch network, reset account, retry |
Quick sanity checks
- Correct network selected
- Recipient address is valid
- Enough ETH for gas (even when sending tokens)
- No older pending tx blocking your nonce
Red flags
- Repeated reverts even on tiny amounts
- Only some wallets can transfer (whitelist)
- Token contract recently changed / proxy upgrade
Common ERC20 Transaction Errors
ERC20: transfer amount exceeds balance
- Token balance changed (airdrop/fee-on-transfer)
- You’re sending the wrong token contract
- Decimals mismatch in custom token display
execution reverted / reverted
- Token is paused or gated
- MaxTx / maxWallet rules triggered
- Blacklist / anti-bot checks triggered
If a wallet can’t estimate gas, that’s often a hint the call would revert. Don’t “force send” unless you understand the restriction.
Gas Problems in ERC20 Transfers
ERC20 transfers require ETH for gas. Underpriced gas leads to pending transactions, and a pending tx blocks later transfers by nonce.
Pending forever: what to do
- Use wallet “Speed up” (replace with higher fee)
- If available: “Cancel” with same nonce + higher fee
- Check mempool congestion and adjust fee accordingly
Safety note
- Don’t approve unknown spenders while troubleshooting
- Only replace transactions you initiated from the same wallet
- Keep the nonce consistent when replacing/canceling
For a clear, canonical explanation of Ethereum transactions, gas, and nonces, see Ethereum.org transaction docs.
Token Contract Restrictions
Some tokens include transfer restrictions: paused transfers, blacklists, maxTx/maxWallet, whitelists, or fee-on-transfer logic. These can cause erc20 transfer reverted and “execution reverted” errors.
Typical restrictions
- Pause switch (owner can pause transfers)
- Blacklist mapping (reject specific addresses)
- Max transaction / max wallet limits
- Transfer fees or special tax logic
How to validate safely
- Read the contract on a block explorer
- Look for inherited patterns (e.g., AccessControl, Pausable)
- Check recent events: pause/unpause, ownership changes
For standard token patterns and what “safe ERC20” typically looks like, reference OpenZeppelin Contracts documentation.
Wallet Errors in MetaMask
“MetaMask transfer failed” can be caused by RPC outages, wrong network, stuck nonce, or corrupted local state.
Fix MetaMask issues
- Switch RPC (use a reputable provider)
- Toggle networks, then re-open MetaMask
- Reset account (clears local nonce tracking)
Official guidance
MetaMask publishes official troubleshooting steps for stuck/pending transactions and resets in MetaMask Support.
How to Fix ERC20 Transfer Failed
Use this workflow to resolve crypto transfer failed, erc20 transaction reverted, and “pending forever” cases without creating duplicates.
Step-by-step runbook
- Check for pending tx: if pending, speed up/replace/cancel first.
- Confirm correct network and token contract.
- Verify gas funds: you need ETH for gas even when sending tokens.
- Try a tiny transfer (tests restrictions cheaply).
- If reverted: inspect token contract restrictions on explorer.
- Retry with proper fee after fixing the blocker.
Paste a tx hash or token address (optional)
This does not call any external service—it just helps normalize what you paste.
Stop conditions
- Repeated reverts on tiny transfers
- Token requires weird approvals/permissions for transfers
- Contract is unverified or recently upgraded suspiciously
Long-tail: erc20 transfer reverted, metamask transfer failed, crypto transfer pending forever, token transfer error, erc20 transaction reverted.
How to Check ERC20 Token Contracts
A transfer can revert because the token contract enforces rules. Check the contract code and events on a reputable explorer. For Ethereum mainnet, that’s typically Etherscan.
What to look for
- Verified source code
- Owner privileges (pause/blacklist)
- Proxy patterns / recent upgrades
- Events: Paused/Unpaused, OwnershipTransferred
Authoritative sources (unique for this page)
Use these references when validating transfer mechanics:
Trust & Update Notes
If gas estimation fails, treat it as a strong signal the call will revert. Investigate token rules before forcing a send.
FAQ – ERC20 Transfer Errors
What does “ERC20 transfer failed” mean?
It means the token transfer call did not complete successfully. It may have reverted due to contract rules, or it may be blocked by a pending transaction/nonce issue.
Why does my ERC20 transfer revert immediately?
The token contract may enforce restrictions (paused, blacklist, maxTx/maxWallet) or the call fails a requirement. Verify the token contract code and events on an explorer like Etherscan.
MetaMask says “transfer failed” — what should I do?
First check for a pending transaction. If pending, speed up/replace/cancel it. Then verify network, RPC, and that you have ETH for gas. MetaMask’s official steps are in MetaMask Support.
Why is my crypto transfer pending forever?
Most often the gas fee is too low or the network is congested. A pending tx blocks newer txs due to nonce ordering. Replace/speed up the pending tx to unblock transfers.
How much gas does an ERC20 transfer need?
Plain transfers often require tens of thousands of gas units, but fee-on-transfer or complex tokens can require more. What matters most is choosing a competitive fee so the tx gets included quickly.
How can I check if a token has transfer restrictions?
Look for standard patterns like Pausable/AccessControl, blacklist mappings, or maxTx logic in verified source code. OpenZeppelin documentation helps identify common mechanisms.
Is it safe to “force send” when gas estimation fails?
Usually no. Gas estimation failing is often a signal that the call will revert. Investigate token restrictions first, or test with a tiny amount before risking more fees.
Primary keywords: transfer failed erc20, erc20 transfer failed, token transfer reverted, crypto transfer failed, erc20 transaction failed.