WATS Wallet logoWATS Wallet
Técnico8 min de leitura

Mensagens de Erro da Carteira Cripto Explicadas: Execution Reverted, Nonce Too Low, Blockhash Not Found (EVM, Solana, TON)

Consulte "execution reverted", "nonce too low", "Blockhash not found", AA21 e o exit code 37 da TON: o que significa cada erro de EVM, Solana e TON, se a tentativa gastou uma taxa de rede e como corrigi-lo.

Por Alltoscan LLC, a empresa por trás da WATS Wallet Política editorial

Publicado Atualizado

Em outubro de 2026, a maioria dos erros de carteira divide-se em dois grupos. Os erros levantados antes de uma transação ser incluída num bloco, como "nonce too low", "replacement transaction underpriced", "insufficient funds for gas * price + value" ou o "Transaction simulation failed: Blockhash not found" da Solana, significam que nada ficou registado on-chain e que não foi gasta nenhuma taxa de rede. As falhas depois da inclusão, como uma transação EVM que reverteu ou ficou sem gás, uma transação Solana que foi incluída com um erro, ou uma falha na fase de computação da TON, consomem na mesma a taxa pelo trabalho realizado. Encontre a sua mensagem de erro exata nas tabelas abaixo para ver o significado e a correção.

Uma transação falhada custou-lhe uma taxa? A regra a verificar primeiro

Uma transação falhada só custa uma taxa de rede se tiver sido incluída num bloco antes de falhar.

Uma transação pode falhar em dois momentos:

  • Antes da inclusão: a simulação da carteira, o nó RPC ou a mempool rejeita-a. Nada chega a um bloco, pelo que não é gasta nenhuma taxa de rede.
  • Depois da inclusão: a transação entra num bloco, o seu código é executado e falha. A taxa pelo trabalho realizado é gasta. O Etherscan diz que o gás continua a ser deduzido nas transações falhadas por causa da computação utilizada, e a documentação de taxas da Solana diz que, se a transação falhar, a taxa é cobrada na mesma.

Para saber em que caso está, pesquise o hash ou a assinatura da transação num block explorer. Nenhum registo passados alguns minutos significa normalmente que nunca chegou a um bloco e não custou nada; um estado Pending significa que ainda não foi incluída. Um registo marcado como Failed ou Reverted, ou com um exit code diferente de zero, significa que foi incluída e a taxa foi gasta.

Que erros EVM significam "nonce too low", "underpriced" ou "out of gas"?

Estas são as mensagens exatas do código-fonte do cliente go-ethereum, e a maioria significa que a transação foi recusada antes de chegar a um bloco.

Erro exatoO que significaTaxa de rede gasta?O que fazer
"nonce too low"Uma transação com este número já foi confirmada; o estado da carteira está desatualizadoNãoRessincronize a carteira e consulte o explorer; só volte a enviar se a ação pretendida ainda não tiver acontecido
"replacement transaction underpriced"A aceleração ou o cancelamento usou um aumento de taxa demasiado pequenoNãoAumente mais; o valor predefinido do Geth exige 10%
"max fee per gas less than block base fee"A sua taxa máxima está abaixo da taxa base atualNãoAumente a taxa máxima
"insufficient funds for gas * price + value"A moeda nativa não cobre o montante mais o gás máximoNãoAdicione moeda nativa; veja tokens mas sem token de gás
"already known"A mesma transação já está na mempoolNãoAguarde; é inofensivo
"out of gas"A execução ultrapassou o seu limite de gás; as alterações são desfeitasSimTente de novo com um limite de gás mais alto

O que significa "execution reverted"?

"Execution reverted" significa que um smart contract recusou a ação e desfez todas as alterações que fez. Surge em dois pontos, e a taxa gasta difere.

Se surgir na estimativa pré-envio da carteira, nada foi enviado e não foi gasta nenhuma taxa. Se a transação foi incluída, o Etherscan mostra-a como Fail ou Reverted e, segundo a Alchemy, quem a envia paga na mesma o gás utilizado. O texto depois dos dois pontos é a razão real. Exemplos comuns:

  • "UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT": o preço moveu-se além do seu limite de slippage entre a assinatura e a inclusão.
  • "ERC20: insufficient allowance": a aprovação do token é inferior ao montante que está a ser gasto. A sua congénere, "ERC20: transfer amount exceeds balance", significa que detém menos do token do que tentou movimentar.

As duas mensagens ERC-20 provêm de contratos OpenZeppelin v4; as versões mais recentes usam erros personalizados com nomes diferentes.

O que significam os códigos AA do ERC-4337 e os erros do EIP-7702?

As contas de smart contract enviam uma UserOperation através de um bundler em vez de uma transação normal, e a especificação EIP-4337 diz que as mensagens de erro do EntryPoint começam com um código na forma AA##.

CódigoO que significaTaxa de rede gasta?
AA21 didn't pay prefundNão é usado nenhum paymaster, e o depósito da conta no EntryPoint não cobre o gás máximoNão
AA23 revertedO código de validação da conta rejeitou a operaçãoNão
AA33 revertedA validação do paymaster rejeitou a operaçãoNão
AA95 out of gasO limite de gás do bundle era demasiado baixo para a operação ou para uma subchamadaNormalmente não; o handleOps reverte

A especificação EIP-4337 diz que um bundler tem de descartar uma operação cuja simulação reverta, pelo que as falhas de validação (AA2x e AA3x) normalmente não deixam nada on-chain. Se uma operação for incluída e a sua chamada principal reverter, o gás é ainda assim pago on-chain pela conta ou pelo paymaster que a patrocinou. A Alchemy refere que o AA95 significa normalmente que os limites de gás foram definidos demasiado baixos; o handleOps reverte, pelo que deve tentar de novo com limites de gás mais altos (uma definição do bundler ou do SDK).

O EIP-7702 acrescenta um erro que pode ver num nó: "in-flight transaction limit reached for delegated accounts" (o pool do Geth aceita apenas uma transação executável pendente para uma conta dessas, pelo que deve aguardar por ela). Uma autorização com o chain ID ou o nonce errado é ignorada em silêncio, pelo que a transação pode ter êxito sem que a delegação seja aplicada. Se não delegou a sua conta de forma consciente, verifique e revogue a delegação: uma delegação inesperada é um sinal de drainer.

O que significam "Blockhash not found" e "block height exceeded" na Solana?

"Block height exceeded" significa que o blockhash expirou, e "Blockhash not found" significa que o nó não reconheceu o blockhash (normalmente expirado, por vezes um nó atrasado). Em ambos os casos, a transação normalmente não foi processada. Um blockhash mantém-se válido durante cerca de 151 blocos, aproximadamente 60 a 90 segundos, segundo o guia de confirmação da Solana, e uma transação expirada já não pode ser processada.

Erro exatoO que significaTaxa de rede gasta?O que fazer
"Transaction simulation failed: Blockhash not found"Blockhash demasiado antigo, ou o nó que simulava ainda não o tinha vistoNãoTente de novo para obter um blockhash novo
"block height exceeded" (erro TransactionExpiredBlockheightExceededError)Não chegou a ser incluída antes de o blockhash expirarNão, a menos que tenha sido incluída mesmo antes de expirar; verifique a assinaturaVerifique a assinatura num explorer e depois tente de novo
"Transaction simulation failed: Error processing Instruction N: custom program error: 0x..."O programa previu uma falha, como o slippage de um swapNão, quando detetada na simulação antes do envio; se uma carteira ou aplicação saltar a simulação, a transação pode ser incluída como Failed e a taxa é gastaLeia a razão; ajuste o slippage ou o montante
"Attempt to debit an account but found no record of a prior credit."A conta pagadora não tem qualquer SOLNãoFinancie-a com SOL
"Transaction results in an account (0) with insufficient funds for rent"O envio deixaria uma conta abaixo do mínimo isento de rentNão, quando detetada na simulação; se a simulação for saltada, pode ser incluída como Failed e custar a taxaEnvie ligeiramente menos; veja o rent da Solana
O explorer mostra "Failed"Foi incluída e o programa devolveu um erroSimLeia o registo do explorer, corrija e volte a enviar

As taxas da Solana são sempre pagas em SOL, pelo que "Insufficient funds for fee" e "insufficient funds for rent" significam que precisa de SOL. Um "insufficient funds" isolado ou "custom program error: 0x1" numa transferência de tokens significa que detém menos desse token do que tentou enviar.

Deve aumentar a priority fee na Solana?

Aumente a priority fee apenas quando uma transação continua a expirar durante o congestionamento da rede, não quando surge um erro de simulação.

Segundo a documentação de taxas da solana.com, uma taxa da Solana é uma taxa base de 5.000 lamports por assinatura (50% queimados, 50% para o validador) mais uma priority fee opcional: o preço da unidade de computação (em micro-lamports) multiplicado pelo limite de unidades de computação, dividido por 1.000.000 e arredondado por excesso para lamports inteiros, indo tudo para o validador. Uma priority fee mais alta melhora as probabilidades de um líder ocupado agendar a sua transação. Não corrige erros de slippage, de rent nem de falta de SOL, e continua a ser cobrada se a transação for incluída e falhar. Se surgir um erro de simulação, corrija antes a causa.

O que significam os exit codes da TON e as mensagens bounced?

Uma transação TON decorre em fases (storage, credit, compute, action, bounce), e segundo docs.ton.org os exit codes 0 e 1 significam êxito, enquanto qualquer outro significa falha. Se a fase de compute falhar, a fase de action é ignorada e, para uma mensagem de entrada bounceable, é formada uma mensagem de bounce; as taxas são deduzidas fase a fase, pelo que as taxas anteriores ficam gastas. As taxas são pagas em GRAM (anteriormente Toncoin; veja o que mudou com a mudança de nome).

SinalO que significaTaxa de rede gasta?O que fazer
Exit code 13 ou -14Sem gás na fase de computeSim, pelo gás utilizadoAnexe mais GRAM
Exit code 9Cell underflow: o contrato tentou ler mais dados do que uma cell contém, muitas vezes porque o payload não corresponde ao que o contrato esperaSimVerifique se o payload ou o comentário é adequado a esse contrato
Exit code 37Fase de action: "Not enough GRAMs" para enviar a mensagem de saídaSimAnexe mais GRAM
Fase de compute ignoradaA mensagem transportava pouco GRAM para pagar a execuçãoSem gás; a fase de storage ainda decorreEnvie com mais GRAM anexado
Mensagem bouncedO destino falhou ou não existeSim, taxas deduzidasO valor regressa deduzido das taxas da mensagem e do gás

Como a WATS Wallet se relaciona com estes erros

A WATS Wallet, da Alltoscan LLC, é uma carteira não custodial (extensão de Chrome e aplicação para iOS/Android) para redes EVM, Solana e TON, onde detém as suas próprias chaves e a frase de recuperação. As mensagens deste guia são erros ao nível da rede, definidos por essas redes, não códigos específicos da WATS.

Na Solana, as taxas de rede são pagas em SOL, pelo que a linha de "insufficient funds" da Solana se aplica diretamente: manter um pequeno saldo de SOL evita-a. As linhas da TON descrevem erros ao nível do protocolo; na WATS Wallet, as taxas na TON são pagas em ATS. Em redes EVM, a WATS Wallet cobra as taxas de rede em ATS através de um paymaster ERC-4337, a partir de um só saldo de ATS na BNB Chain; como funciona a taxa em ATS é explicado em separado.

Perguntas frequentes

Perco dinheiro quando uma transação cripto falha?

Depende de quando falhou. Se foi rejeitada antes da inclusão (erros de simulação, de nó ou de mempool como "nonce too low", "replacement transaction underpriced" ou "Blockhash not found"), nada foi registado e não foi gasta nenhuma taxa de rede. Se foi incluída e falhou (uma reversão EVM ou out of gas, um "Failed" no explorer da Solana, um exit code da TON diferente de zero), a taxa pelo trabalho realizado foi gasta, mas o montante que tentou enviar permanece na sua conta, e os bounces da TON devolvem o valor deduzido das taxas. Verifique o hash ou a assinatura num explorer para ver qual dos casos se aplica.

Porque diz a minha carteira "nonce too low" quando não tenho nenhuma transação pendente?

O nonce é o contador de transações da conta, e "nonce too low" significa que uma transação com esse número já foi confirmada. As causas comuns são usar a mesma conta a partir de outra aplicação de carteira ou de outro dispositivo, uma transação "bloqueada" que na verdade foi confirmada, ou um estado da carteira em cache desatualizado. Verifique num explorer se o pagamento ou a ação que pretendia já foi concluído; se foi, não volte a enviar; se não foi, ressincronize a carteira e envie de novo. A tentativa rejeitada em si não gastou nenhuma taxa. Se uma transação estiver realmente pendente, veja <a href="/blog/speed-up-or-cancel-stuck-transaction">como acelerar ou cancelar uma transação pendente</a>.

É seguro tentar de novo depois de "block height exceeded" ou "Blockhash not found" na Solana?

Em geral, sim. "Block height exceeded" significa que o blockhash expirou (cerca de 151 blocos, aproximadamente 60 a 90 segundos), e "Blockhash not found" significa que o nó não o reconheceu, normalmente porque expirou. Uma transação expirada já não pode ser processada, pelo que não pode ser incluída mais tarde e duplicar a nova; ainda assim, consulte primeiro a assinatura num explorer da Solana e depois tente de novo com um blockhash novo. A tentativa expirada não foi cobrada, a menos que tenha sido incluída antes de expirar, o que a consulta no explorer mostra, e uma priority fee ligeiramente mais alta pode ajudar se continuar a expirar durante o congestionamento da rede.