A user attempts to send tokens from their Phantom wallet, approves the transaction, and encounters an error message—sometimes cryptic, sometimes specific—that leaves the asset in an uncertain state. The transaction may have failed before broadcast, stalled in the mempool, been rejected by validators, or succeeded on-chain while the interface still showed a failure message. Without understanding what actually happened, retrying can either resolve the issue or duplicate it, potentially locking funds or creating unnecessary gas costs. Phantom Wallet security depends partly on the wallet’s ability to communicate what went wrong and partly on the user’s understanding of which problems require a retry and which demand investigation.
Transaction failures in Phantom span multiple failure modes: gas limit exceeded, network congestion, invalid contract interaction, insufficient balance, wallet connection issues, and timeout scenarios. Each has a different cause and a different correct response. Because Phantom now supports Solana, Ethereum, Base, Polygon, Bitcoin, Robinhood Chain, Sui, and HyperEVM, network differences add another dimension. What works on Solana’s fast-confirming Proof of History may not work on Ethereum’s congested base layer. Understanding the failure message and the network context is the foundation of safe recovery.
Gas limits, gas prices, and why your transaction was rejected
A transaction on Ethereum, Polygon, or Base requires payment in gas—a unit of computational work multiplied by a current price. The gas limit is the maximum amount of computational effort the transaction is permitted to use. The gas price is the payment per unit, denominated in wei on Ethereum or gwei on other networks. If a transaction is complex—swapping tokens through multiple liquidity pools, interacting with a complex smart contract, or moving an NFT with unusual contract logic—it may require more gas than a simple transfer. If the gas limit is set too low, validators reject the transaction and return it to the sender’s wallet without executing it. No funds are deducted because the transaction never reached the blockchain.
Phantom attempts to estimate gas requirements automatically, but estimation is imperfect. An unusual contract, a rare token, or a smart contract that branches logic based on conditions can consume more gas than the estimate predicted. When a user approves a transaction in Phantom, the interface displays the estimated total cost, including the gas limit multiplied by the current network gas price. For simple transactions like sending stablecoins, the estimate is usually accurate. For contract interactions, swaps, or NFT transfers, the estimate may be conservative or may underestimate.
The practical recovery step is to increase the gas limit rather than the gas price. A gas price determines how quickly validators prioritize the transaction; a gas limit determines whether the transaction can execute at all. If a transaction failed with “out of gas” or “gas limit exceeded,” resending the same transaction with the same gas limit will fail again. Phantom allows users to adjust both values before signing. Increasing the gas limit by 20–30 percent above the failed attempt is a reasonable starting point. The additional gas cost is only incurred if the transaction actually executes and consumes the gas; overshooting the limit does not waste money if the actual computation requires less.
Gas price adjustments matter during network congestion. If Ethereum or Polygon is saturated—many users broadcasting transactions simultaneously—validators prioritize transactions with higher gas prices. A transaction submitted during low-demand hours may succeed with a lower price but fail during peak times if the offer is too low relative to competing transactions. Phantom displays current network conditions and suggests appropriate gas prices, but users can override these values. During congestion, a transaction may sit in the mempool for hours without confirmation and eventually expire after a network-specific timeout window, typically 12–24 hours on Ethereum.
Network congestion and the mempool: when to wait and when to cancel
When a user broadcasts a transaction, it enters a temporary holding area called the mempool. Validators see pending transactions in the mempool and select which ones to include in the next block, usually prioritizing higher gas prices. On fast networks like Solana, blocks are produced every few seconds, and the mempool rarely becomes congested. On Ethereum, blocks appear roughly every 12 seconds, but demand can far exceed available block space, creating a queue of unconfirmed transactions.
A transaction stuck in the mempool is not lost, but it is not executed either. Funds remain in the sending wallet. Some users interpret this as a failure and resubmit the transaction with a higher gas price; others wait to see if conditions improve. If the same transaction is broadcast twice with different nonces (the sequence counter that prevents replay), the blockchain will execute whichever reaches a block first, while the second will fail as invalid. If a user intends to cancel an unconfirmed transaction, the correct procedure is to send a zero-value transaction (or a replacement transaction) with the same nonce but a higher gas price. This “front-runs” the original pending transaction and cancels it.
Phantom does not automate this cancel-via-replacement workflow, but the wallet provides tools to enable it manually. On Ethereum-compatible networks, a user can export or note the failed transaction’s nonce, then craft a new transaction using the same nonce and a higher gas price. Advanced users can also use Etherscan or other block explorers to monitor a transaction’s status independently of the Phantom interface. If the mempool is congested but the gas price offered is reasonable relative to other pending transactions, the safest approach is to wait 30 minutes to a few hours before reassessing. If the price is clearly too low relative to current network conditions, or if the funds are needed immediately, a replacement transaction with a higher gas price is justified.
Different networks have different timeout behaviors. Solana transactions typically expire after a few minutes if not included in a block. Ethereum and Polygon transactions can remain valid in the mempool for longer, but network nodes may eventually drop them if they are not confirmed within 12–24 hours. Once dropped, a user can resubmit the transaction with the same or higher gas price, and it will be treated as a fresh broadcast. Phantom’s interface may or may not immediately reflect this status change; users can verify a transaction’s fate by checking a block explorer or by attempting to resend and observing whether the wallet accepts the new submission.
Contract interaction failures and invalid operations
Not all transaction failures involve gas or network issues. A transaction can be rejected because the smart contract being called has a logic error, because the user lacks the required permissions, or because the operation is inherently invalid. Common examples include attempting to swap tokens when the liquidity pool is empty or imbalanced, trying to interact with a contract that has been paused or removed, or approving a spending limit that exceeds the user’s balance.
When a transaction fails due to contract logic, the error message may be generic—”transaction reverted”—or may include specific contract details. Phantom’s transaction preview feature can reveal some of these issues before the user signs, showing the expected outcome of a swap, the recipient of a transfer, or the contract address being called. A preview is not a guarantee; conditions can change between the preview and signing, and complex contracts may behave differently on-chain than the preview suggests. However, a dramatic discrepancy—a swap that shows zero output, a transfer to an unexpected address, or a contract interaction that produces no output—is a red flag warranting cancellation.
Scam warnings are another layer Phantom provides. The wallet maintains lists of known malicious contracts and will alert users if a transaction involves a suspicious address or operation. These warnings are not foolproof and can produce false positives, but they reflect on-chain evidence and community reports. A user should take a scam warning seriously enough to verify the contract address independently, check the official project documentation, and confirm that the counterparty and operation are legitimate before proceeding. Irreversible transfers mean that once a scam transaction is confirmed, recovery is extremely difficult or impossible.
Recovery from a failed contract interaction depends on why it failed. If the contract itself has an issue, no gas price adjustment will help. If the user sent a transaction to a wrong address or malicious contract, the transaction likely succeeded—the problem is not a failure to execute but a failure to verify the destination. This is why Phantom emphasizes transaction previews and address verification as central to security. A failed transaction is frustrating but recoverable; a successful transaction to the wrong place is permanent.
Wallet connection issues and dApp interaction failures
Phantom functions both as a standalone wallet and as a connector to decentralized applications. When a user interacts with a dApp—a token swap interface, an NFT marketplace, a lending protocol—Phantom communicates between the dApp and the blockchain. Connection failures can occur at multiple points: the dApp may fail to detect Phantom, Phantom may disconnect from the dApp, the network connection may be interrupted, or the dApp itself may experience an outage.
If a transaction initiated through a dApp fails to appear in Phantom’s transaction history, the most likely explanation is that Phantom never received or approved the transaction. In this case, there is no on-chain confirmation, and the user can safely attempt the operation again. If the transaction appears in Phantom but not on the blockchain (checked via a block explorer), it is stuck in the mempool and subject to the congestion scenarios described earlier. If the transaction appears on-chain but the dApp shows an error, the transaction likely succeeded, and the dApp interface simply did not update properly.
A more complex failure occurs when Phantom displays a transaction as pending indefinitely. This can happen if the Phantom interface loses sync with the actual blockchain state, especially on networks with slow block confirmation or if the device’s internet connection is intermittent. In this case, checking a block explorer independently is essential. Entering the transaction hash or the Phantom-generated transaction ID into a network-specific block explorer—Etherscan for Ethereum, Polygonscan for Polygon, or the equivalent for other networks—reveals the true status. If the transaction is actually confirmed on-chain, Phantom will eventually update its interface. If it is still pending or never appeared, the mempool status applies, and the user can decide whether to wait or replace it.
Device or browser-level connection issues also matter. If the Phantom extension loses network connectivity, transaction broadcasts will fail even if the wallet itself is functional. Restarting the browser, checking the device’s internet connection, and reopening the extension can resolve these temporary issues. For the Phantom Wallet app, mobile network switching or Wi-Fi reconnection may be necessary. Phantom does not queue transactions during an offline period; users must manually rebroadcast once connectivity is restored.
Insufficient balance and nonce errors
An “insufficient balance” error is straightforward: the wallet does not have enough tokens to cover the transfer amount plus the gas fee. On Ethereum and compatible networks, gas fees are paid in the native token (ETH, MATIC, ETH on Base), separate from the token being sent. If a user intends to send all their USDC but does not hold enough ETH to cover the gas fee, the transaction will fail. Phantom displays available balances clearly, but users sometimes assume that the total balance can be spent without accounting for gas.
The recovery is to either reduce the transfer amount or add more native token to the wallet. If the wallet is completely depleted of native currency, the user must receive a deposit of that currency from another source before any outgoing transactions are possible. This is a common scenario for new users who receive only specific tokens (like USDC) and lack the base currency (ETH, MATIC, etc.) needed for transaction fees.
Nonce errors are less common but more confusing. A nonce is a counter that increments with each transaction sent from an address, preventing the same transaction from being executed twice. If a user sends two transactions rapidly and they are broadcast out of order, the second might be assigned a higher nonce and sit in the mempool waiting for the first to be confirmed. If the first transaction fails, the second will also fail because its nonce is now invalid. Phantom prevents most nonce conflicts by managing the transaction sequence automatically, but users who manually construct transactions or export wallet keys to other applications can create nonce gaps. The solution is to use a reset mechanism specific to the network or account. For Ethereum and Polygon, a simple transfer to the user’s own address using the correct next nonce can restore sequence. Phantom does not provide a built-in nonce reset tool, but block explorers and advanced wallet tools do.
Network-specific differences: Solana, Ethereum, and newer chains
Solana has fundamentally different transaction mechanics from Ethereum. Solana transactions are fast and inexpensive; fees are typically measured in thousands of lamports (less than one cent). The network confirms transactions in seconds or rejects them immediately, so there is no mempool congestion in the traditional sense. If a Solana transaction fails in Phantom, the most common causes are insufficient balance (including rent for new accounts), an invalid program call, or a timeout caused by a node that is lagging behind the network. Retrying a failed Solana transaction immediately is usually safe because the original transaction will not have been included, and the retry will either succeed or fail on its own merits within seconds.
Ethereum prioritizes security and decentralization over speed. Transactions take 12–30 seconds on average but can take hours during congestion. Gas fees are variable and often expensive. Failed Ethereum transactions should not be retried immediately unless the failure was caused by a specific, correctable issue like a low gas price. Broadcasting the same transaction again will not solve congestion; it will only duplicate the transaction in the mempool.
Polygon and Base are Ethereum-compatible chains that offer lower fees and faster confirmation. Their transaction mechanics are similar to Ethereum, but gas prices are usually much lower. A failed transaction on Polygon is often safe to retry with a slightly higher gas price without significant cost penalty. These networks are compatible with the Ethereum ecosystem, so block explorers like Polygonscan and Basescan use the same interface as Etherscan, and dApps often work identically across all three.
Bitcoin transactions in Phantom use different confirmation mechanics. Bitcoin does not have a gas system; instead, fees are per-byte of transaction data. Phantom estimates fees automatically, but users can override the estimation if they prefer a slower confirmation for a lower fee or a faster confirmation for a higher fee. Bitcoin transactions that are submitted cannot be directly cancelled like Ethereum transactions; instead, a replace-by-fee mechanism allows the user to resubmit with a higher fee and have validators prefer the new version. Sui and other newer networks have their own fee structures and confirmation models. Phantom abstracts many of these differences, but users interacting with multiple networks should learn the specific confirmation expectations and fee mechanisms of each.
Retry strategies and how not to make things worse
The temptation to retry a failed transaction is strong, especially if funds appear to be at risk. However, blind retrying can create problems. The safe retry procedure is to verify the failure cause, adjust the relevant parameter, and submit once. On Ethereum and similar networks, never submit the exact same transaction twice expecting a different outcome. If the failure was due to gas limit, increase it. If the failure was due to congestion, increase the gas price. If the failure was due to a contract issue, either cancel and investigate or wait to confirm the contract has been fixed.
If a user is unsure whether a transaction actually failed or is simply pending, check a block explorer before retrying. Submitting a duplicate of a transaction that is still valid in the mempool and waiting to be included will create a second transaction that also competes for block space, doubling the fee cost and potentially doubling the effect if both are included.
For persistent failures across multiple retry attempts, the issue is likely not transient. A contract may be broken, the user’s account may lack permissions, the counterparty may no longer be available, or the operation may be invalid for a reason that will persist. In these cases, further retries waste gas and clarification is needed. Phantom’s scam warnings and transaction preview features are designed to catch these scenarios, but users who bypass or ignore them will not recover by simply trying again.
Documentation is a valuable resource. Official dApp documentation often includes troubleshooting sections describing known issues and transaction failure causes specific to that platform. Phantom’s own help resources and community support channels can assist with wallet-specific problems. The key principle is to understand why a transaction failed before attempting to resolve it, rather than applying generic solutions and hoping for a different result.
Prevention: Best practices for transaction success
The most effective way to handle a failed transaction is to avoid it in the first place. Several practices reduce failure risk. First, always verify that you are on the correct network before confirming a transaction. Phantom displays the active network prominently, but it is easy to accidentally switch networks while managing multiple chains. A transaction initiated on Polygon but broadcast to an Ethereum wallet or application will fail in confusing ways.
Second, review the transaction preview carefully. Phantom’s preview shows the contract being called, the address receiving funds, the amount, and the expected outcome for swaps. If the preview shows zero output, an unexpected address, or an unfamiliar contract, do not proceed. A preview that matches your intention is not a guarantee, but a preview that does not match is a strong warning.
Third, ensure you have sufficient balance of both the token you intend to send and the native currency (ETH, MATIC, SOL, etc.) required for the gas fee. Some wallets allow setting a custom gas limit and price, but Phantom’s defaults are reasonable for most users. If you are unsure, accept Phantom’s estimate.
Fourth, use hardware wallet integration if you hold significant assets. Phantom supports Ledger integration, which isolates signing from the device running the browser or mobile app. This prevents phishing and malware from stealing recovery phrases, though it does not protect against user error or irreversible transfers.
Fifth, test transactions with small amounts before moving large sums, especially when interacting with unfamiliar dApps or on networks you have not used before. A test transaction reveals whether the operation works, whether the receiving address is correct, and whether the dApp correctly reports the transaction status. The cost of a failed test is far lower than the cost of a failed transfer of significant funds.
Frequently asked questions
What does “out of gas” mean, and why does increasing the gas limit fix it?
A “out of gas” error means the transaction executed but ran out of allowed computational steps before completing. The gas limit is the maximum amount of computation permitted. Increasing the gas limit gives the transaction more allowance to execute. The additional gas is only charged if the transaction actually consumes it; overshooting does not increase costs if execution completes early. Increasing the gas price instead of the gas limit will not fix an out-of-gas error because the price only affects transaction prioritization, not the computational budget.
How do I cancel a transaction stuck in the mempool on Ethereum or Polygon?
A stuck transaction can be cancelled by sending a replacement transaction with the same nonce (sequence number) but a higher gas price. Phantom does not provide a direct cancel button, but you can check the original transaction’s nonce via a block explorer, then craft a new zero-value transfer to your own address using the same nonce and a higher gas price. This replacement will be prioritized and will invalidate the original pending transaction. Alternatively, you can simply wait—Ethereum mempool transactions typically expire after 12–24 hours if not confirmed, at which point you can resubmit if needed.
Why does my transaction show as failed in Phantom but succeeded on Etherscan?
This mismatch usually indicates that Phantom’s interface has not synchronized with the actual blockchain state. Check a block explorer like Etherscan or Polygonscan by pasting your transaction hash to verify the true status. If the transaction is confirmed on-chain, Phantom will eventually update its display, though this can take several minutes on congested networks. If the transaction never appeared on-chain, it is stuck in the mempool and may still execute or may eventually expire.