[{"data":1,"prerenderedAt":19},["ShallowReactive",2],{"blog-content-es-crypto-wallet-error-messages-explained":3},{"slug":4,"title":5,"excerpt":6,"description":7,"bodyHtml":8,"faqItems":9},"crypto-wallet-error-messages-explained","Mensajes de error de wallets de cripto explicados: Execution Reverted, Nonce Too Low, Blockhash Not Found (EVM, Solana, TON)","Busca \"execution reverted\", \"nonce too low\", \"Blockhash not found\", AA21 y el código de salida 37 de TON: qué significa cada error de EVM, Solana y TON, si el intento gastó una comisión de red y cómo solucionarlo.","Mensajes de error de wallets de cripto explicados: qué significan execution reverted, nonce too low, Blockhash not found y AA21, si se gastó comisión y cómo arreglarlos.","\u003Cblockquote>A fecha de octubre de 2026, la mayoría de los errores de wallet caen en dos grupos. Los errores que se producen antes de que una transacción se incluya en un bloque, como \"nonce too low\", \"replacement transaction underpriced\", \"insufficient funds for gas * price + value\" o el \"Transaction simulation failed: Blockhash not found\" de Solana, significan que no se registró nada onchain y no se gastó ninguna comisión de red. Los fallos posteriores a la inclusión, como una transacción EVM que se revirtió o se quedó sin gas, una transacción de Solana que se registró con un error, o un fallo en la fase de cómputo de TON, siguen consumiendo la comisión por el trabajo realizado. Busca tu texto de error exacto en las tablas de abajo para ver su significado y la solución.\u003C\u002Fblockquote>\n\n\u003Ch2>¿Te costó una comisión una transacción fallida? La regla que debes comprobar primero\u003C\u002Fh2>\n\n\u003Cp>Una transacción fallida cuesta una comisión de red solo si se incluyó en un bloque antes de fallar.\u003C\u002Fp>\n\n\u003Cp>Una transacción puede fallar en dos momentos:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Antes de la inclusión:\u003C\u002Fstrong> la simulación de la wallet, el nodo RPC o la \u003Ca href=\"\u002Fblog\u002Fwhat-is-a-mempool\">mempool\u003C\u002Fa> la rechaza. No llega a ningún bloque, así que no se gasta ninguna comisión de red.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Después de la inclusión:\u003C\u002Fstrong> la transacción llega a un bloque, su código se ejecuta y falla. Se gasta la comisión por el trabajo realizado. Etherscan dice que el gas se descuenta igualmente en las transacciones fallidas por el cómputo utilizado, y la documentación de comisiones de Solana dice que, si la transacción falla, la comisión se cobra de todos modos.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Cp>Para saber en qué caso estás, busca el hash o la firma de la transacción en un explorador de bloques. Si pasados unos minutos no hay ningún registro, normalmente nunca se registró y no costó nada; un estado Pending significa que aún no se ha incluido. Un registro marcado como Failed o Reverted, o con un código de salida distinto de cero, significa que se registró y la comisión se gastó.\u003C\u002Fp>\n\n\u003Ch2>¿Qué errores de EVM significan \"nonce too low\", \"underpriced\" u \"out of gas\"?\u003C\u002Fh2>\n\n\u003Cp>Estos son los textos exactos del código fuente del cliente go-ethereum, y la mayoría significa que la transacción fue rechazada antes de llegar a un bloque.\u003C\u002Fp>\n\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\u003Cth>Error exacto\u003C\u002Fth>\u003Cth>Qué significa\u003C\u002Fth>\u003Cth>¿Se gastó comisión de red?\u003C\u002Fth>\u003Cth>Qué hacer\u003C\u002Fth>\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>\"nonce too low\"\u003C\u002Ftd>\u003Ctd>Ya se confirmó una transacción con este número; el estado de la wallet está desactualizado\u003C\u002Ftd>\u003Ctd>No\u003C\u002Ftd>\u003Ctd>Resincroniza la wallet y revisa el explorador; reenvía solo si la acción que querías no se realizó ya\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\"replacement transaction underpriced\"\u003C\u002Ftd>\u003Ctd>La aceleración o cancelación usó un aumento de comisión demasiado pequeño\u003C\u002Ftd>\u003Ctd>No\u003C\u002Ftd>\u003Ctd>Sube más la comisión; el valor predeterminado de Geth exige un 10%\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\"max fee per gas less than block base fee\"\u003C\u002Ftd>\u003Ctd>Tu comisión máxima está por debajo de la comisión base actual\u003C\u002Ftd>\u003Ctd>No\u003C\u002Ftd>\u003Ctd>Sube la comisión máxima\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\"insufficient funds for gas * price + value\"\u003C\u002Ftd>\u003Ctd>La moneda nativa no cubre el importe más el gas máximo\u003C\u002Ftd>\u003Ctd>No\u003C\u002Ftd>\u003Ctd>Recarga la moneda nativa; consulta \u003Ca href=\"\u002Fblog\u002Fstuck-tokens-no-gas-token-how-to-fix\">tokens pero sin token de gas\u003C\u002Fa>\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\"already known\"\u003C\u002Ftd>\u003Ctd>La misma transacción ya está en la mempool\u003C\u002Ftd>\u003Ctd>No\u003C\u002Ftd>\u003Ctd>Espera; es inofensivo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\"out of gas\"\u003C\u002Ftd>\u003Ctd>La ejecución superó su límite de gas; los cambios se deshacen\u003C\u002Ftd>\u003Ctd>Sí\u003C\u002Ftd>\u003Ctd>Reintenta con un límite de gas más alto\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\u003Ch2>¿Qué significa \"execution reverted\"?\u003C\u002Fh2>\n\n\u003Cp>\"Execution reverted\" significa que un smart contract rechazó la acción y deshizo todos los cambios que había hecho. Aparece en dos momentos, y la comisión es distinta en cada uno.\u003C\u002Fp>\n\n\u003Cp>Si aparece en la estimación previa al envío de la wallet, no se envió nada y no se gastó ninguna comisión. Si la transacción se registró, Etherscan la muestra como Fail o Reverted y, según Alchemy, el remitente paga igualmente el gas usado. El texto después de los dos puntos es el motivo real. Algunos de los más comunes:\u003C\u002Fp>\n\n\u003Cul>\n\u003Cli>\"UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT\": el precio se movió más allá de tu límite de slippage entre la firma y la inclusión.\u003C\u002Fli>\n\u003Cli>\"ERC20: insufficient allowance\": la aprobación del token es menor que el importe que se gasta. Su par, \"ERC20: transfer amount exceeds balance\", significa que tienes menos de ese token del que intentaste mover.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Cp>Los dos textos de ERC-20 provienen de contratos de OpenZeppelin v4; las versiones más recientes usan errores personalizados con nombres distintos.\u003C\u002Fp>\n\n\u003Ch2>¿Qué significan los códigos AA de ERC-4337 y los errores de EIP-7702?\u003C\u002Fh2>\n\n\u003Cp>Las cuentas de smart contract envían una UserOperation a través de un \u003Ca href=\"\u002Fblog\u002Fbundler-and-useroperation-explained\">bundler\u003C\u002Fa> en lugar de una transacción normal, y la especificación EIP-4337 dice que los mensajes de error del EntryPoint empiezan con un código de la forma AA##.\u003C\u002Fp>\n\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\u003Cth>Código\u003C\u002Fth>\u003Cth>Qué significa\u003C\u002Fth>\u003Cth>¿Se gastó comisión de red?\u003C\u002Fth>\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>AA21 didn't pay prefund\u003C\u002Ftd>\u003Ctd>No se usó ningún paymaster y el depósito de la cuenta en el EntryPoint no cubre el gas máximo\u003C\u002Ftd>\u003Ctd>No\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>AA23 reverted\u003C\u002Ftd>\u003Ctd>El código de validación de la cuenta rechazó la operación\u003C\u002Ftd>\u003Ctd>No\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>AA33 reverted\u003C\u002Ftd>\u003Ctd>La validación del paymaster rechazó la operación\u003C\u002Ftd>\u003Ctd>No\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>AA95 out of gas\u003C\u002Ftd>\u003Ctd>El límite de gas del bundle era demasiado bajo para la operación o una subllamada\u003C\u002Ftd>\u003Ctd>Normalmente no; handleOps se revierte\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\u003Cp>La especificación EIP-4337 dice que un bundler debe descartar una operación cuya simulación se revierte, por lo que los fallos de validación (AA2x y AA3x) normalmente no dejan nada onchain. Si una operación se incluye y su llamada principal se revierte, el gas se paga igualmente onchain por la cuenta o por el paymaster que la patrocinó. Alchemy señala que AA95 suele significar que los límites de gas se fijaron demasiado bajos; handleOps se revierte, así que reintenta con límites de gas más altos (un ajuste del bundler o del SDK).\u003C\u002Fp>\n\n\u003Cp>EIP-7702 añade un error que puedes ver desde un nodo: \"in-flight transaction limit reached for delegated accounts\" (el pool de Geth acepta una sola transacción ejecutable pendiente para una cuenta así, así que espera a que termine). Una autorización con el ID de cadena o el nonce incorrectos se omite en silencio, de modo que la transacción puede tener éxito sin que se aplique la delegación. Si no delegaste tu cuenta a sabiendas, \u003Ca href=\"\u002Fblog\u002Fcheck-and-revoke-eip-7702-delegation\">comprueba y revoca la delegación\u003C\u002Fa>: una inesperada es una señal de drainer.\u003C\u002Fp>\n\n\u003Ch2>¿Qué significan \"Blockhash not found\" y \"block height exceeded\" en Solana?\u003C\u002Fh2>\n\n\u003Cp>\"Block height exceeded\" significa que el blockhash expiró, y \"Blockhash not found\" significa que el nodo no reconoció el blockhash (normalmente expiró; a veces es un nodo retrasado). En ambos casos la transacción normalmente no se procesó. Un blockhash sigue siendo válido unos 151 bloques, aproximadamente de 60 a 90 segundos, según la guía de confirmación de Solana, y una transacción expirada ya no puede procesarse.\u003C\u002Fp>\n\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\u003Cth>Error exacto\u003C\u002Fth>\u003Cth>Qué significa\u003C\u002Fth>\u003Cth>¿Se gastó comisión de red?\u003C\u002Fth>\u003Cth>Qué hacer\u003C\u002Fth>\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>\"Transaction simulation failed: Blockhash not found\"\u003C\u002Ftd>\u003Ctd>Blockhash demasiado antiguo, o el nodo que simulaba aún no lo había visto\u003C\u002Ftd>\u003Ctd>No\u003C\u002Ftd>\u003Ctd>Reintenta para obtener un blockhash nuevo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\"block height exceeded\" (el error TransactionExpiredBlockheightExceededError)\u003C\u002Ftd>\u003Ctd>No se registró antes de que el blockhash expirara\u003C\u002Ftd>\u003Ctd>No, salvo que se registrara justo antes de expirar; comprueba la firma\u003C\u002Ftd>\u003Ctd>Comprueba la firma en un explorador y luego reintenta\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\"Transaction simulation failed: Error processing Instruction N: custom program error: 0x...\"\u003C\u002Ftd>\u003Ctd>El programa predijo un fallo, como el slippage de un swap\u003C\u002Ftd>\u003Ctd>No, cuando se detecta en la simulación antes de enviar; si una wallet o app omite la simulación, la transacción puede registrarse como Failed y la comisión se gasta\u003C\u002Ftd>\u003Ctd>Lee el motivo; ajusta el slippage o el importe\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\"Attempt to debit an account but found no record of a prior credit.\"\u003C\u002Ftd>\u003Ctd>La cuenta que paga no tiene nada de SOL\u003C\u002Ftd>\u003Ctd>No\u003C\u002Ftd>\u003Ctd>Añádele SOL\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\"Transaction results in an account (0) with insufficient funds for rent\"\u003C\u002Ftd>\u003Ctd>El envío dejaría una cuenta por debajo del mínimo exento de renta\u003C\u002Ftd>\u003Ctd>No, cuando se detecta en la simulación; si se omite la simulación puede registrarse como Failed y costar la comisión\u003C\u002Ftd>\u003Ctd>Envía un poco menos; consulta \u003Ca href=\"\u002Fblog\u002Fsolana-rent-reclaim-sol-token-accounts\">la renta de Solana\u003C\u002Fa>\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>El explorador muestra \"Failed\"\u003C\u002Ftd>\u003Ctd>Se registró y el programa devolvió un error\u003C\u002Ftd>\u003Ctd>Sí\u003C\u002Ftd>\u003Ctd>Lee el log del explorador, corrige y reenvía\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\u003Cp>Las comisiones de Solana se pagan siempre en SOL, así que \"Insufficient funds for fee\" e \"insufficient funds for rent\" significan que necesitas SOL. Un \"insufficient funds\" a secas o un \"custom program error: 0x1\" en una transferencia de token significa que tienes menos de ese token del que intentaste enviar.\u003C\u002Fp>\n\n\u003Ch2>¿Debes subir la priority fee en Solana?\u003C\u002Fh2>\n\n\u003Cp>Sube la priority fee (comisión de prioridad) solo cuando una transacción siga expirando durante una congestión, no cuando aparezca un error de simulación.\u003C\u002Fp>\n\n\u003Cp>Según la documentación de comisiones de solana.com, una comisión de Solana es una comisión base de 5.000 lamports por firma (50% se quema, 50% va al validador) más una priority fee opcional: el precio por unidad de cómputo (en micro-lamports) por el límite de unidades de cómputo, dividido entre 1.000.000 y redondeado hacia arriba a lamports enteros, y todo ello va al validador. Una priority fee más alta mejora las probabilidades de que un líder ocupado programe tu transacción. No arregla errores de slippage, de renta ni de falta de SOL, y se cobra igualmente si la transacción se registra y falla. Si aparece un error de simulación, corrige la causa.\u003C\u002Fp>\n\n\u003Ch2>¿Qué significan los códigos de salida de TON y los mensajes rebotados?\u003C\u002Fh2>\n\n\u003Cp>Una transacción de TON se ejecuta en fases (almacenamiento, crédito, cómputo, acción, rebote) y, según docs.ton.org, los códigos de salida 0 y 1 significan éxito mientras que cualquier otro significa fallo. Si falla el cómputo, se omite la fase de acción y, para un mensaje entrante con rebote habilitado (bounceable), se forma un mensaje de rebote; las comisiones se descuentan fase por fase, así que las anteriores quedan gastadas. Las comisiones se pagan en GRAM (antes Toncoin; consulta \u003Ca href=\"\u002Fblog\u002Ftoncoin-renamed-gram-what-changed\">qué cambió con el cambio de nombre\u003C\u002Fa>).\u003C\u002Fp>\n\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\u003Cth>Señal\u003C\u002Fth>\u003Cth>Qué significa\u003C\u002Fth>\u003Cth>¿Se gastó comisión de red?\u003C\u002Fth>\u003Cth>Qué hacer\u003C\u002Fth>\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Código de salida 13 o -14\u003C\u002Ftd>\u003Ctd>Sin gas en la fase de cómputo\u003C\u002Ftd>\u003Ctd>Sí, por el gas usado\u003C\u002Ftd>\u003Ctd>Adjunta más GRAM\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Código de salida 9\u003C\u002Ftd>\u003Ctd>Cell underflow: el contrato intentó leer más datos de los que contiene una celda, a menudo porque la carga útil no coincide con lo que el contrato espera\u003C\u002Ftd>\u003Ctd>Sí\u003C\u002Ftd>\u003Ctd>Comprueba que la carga útil o el comentario sean los que espera ese contrato\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Código de salida 37\u003C\u002Ftd>\u003Ctd>Fase de acción: \"Not enough GRAMs\" para enviar el mensaje saliente\u003C\u002Ftd>\u003Ctd>Sí\u003C\u002Ftd>\u003Ctd>Adjunta más GRAM\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Fase de cómputo omitida\u003C\u002Ftd>\u003Ctd>El mensaje llevaba demasiado poco GRAM para pagar la ejecución\u003C\u002Ftd>\u003Ctd>Sin gas; la fase de almacenamiento sí se ejecuta\u003C\u002Ftd>\u003Ctd>Envía con más GRAM adjunto\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Mensaje rebotado\u003C\u002Ftd>\u003Ctd>El destino falló o no existe\u003C\u002Ftd>\u003Ctd>Sí, se descuentan comisiones\u003C\u002Ftd>\u003Ctd>Se devuelve el valor menos las comisiones de mensaje y de gas\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\u003Ch2>Cómo se relaciona WATS Wallet con estos errores\u003C\u002Fh2>\n\n\u003Cp>WATS Wallet, de Alltoscan LLC, es una wallet no custodial (extensión de Chrome y app para iOS\u002FAndroid) para redes EVM, Solana y TON, en la que tú tienes tus propias claves y tu frase de recuperación. Los mensajes de esta guía son errores a nivel de red definidos por esas cadenas, no códigos específicos de WATS.\u003C\u002Fp>\n\n\u003Cp>En Solana las comisiones de red se pagan en SOL, así que la fila de \"insufficient funds\" de Solana se aplica directamente: mantener un pequeño saldo de SOL la evita. Las filas de TON describen errores a nivel de protocolo; en WATS Wallet, las comisiones en TON se pagan en ATS. En redes EVM, WATS Wallet cobra las comisiones de red en ATS mediante un paymaster ERC-4337, desde un solo saldo de ATS en BNB Chain; \u003Ca href=\"\u002Fats-fee\">cómo funciona la comisión en ATS\u003C\u002Fa> se explica aparte.\u003C\u002Fp>",[10,13,16],{"q":11,"a":12},"¿Pierdo dinero cuando falla una transacción de cripto?","Depende de cuándo falló. Si fue rechazada antes de la inclusión (errores de simulación, de nodo o de mempool como \"nonce too low\", \"replacement transaction underpriced\" o \"Blockhash not found\"), no se registró nada y no se gastó ninguna comisión de red. Si se registró y falló (una reversión o un out of gas en EVM, un \"Failed\" en el explorador de Solana, un código de salida distinto de cero en TON), se gastó la comisión por el trabajo realizado, pero el importe que intentaste enviar sigue en tu cuenta, y los rebotes de TON devuelven el valor menos las comisiones. Comprueba el hash o la firma en un explorador para ver qué caso se aplica.",{"q":14,"a":15},"¿Por qué mi wallet dice \"nonce too low\" si no tengo ninguna transacción pendiente?","El nonce es el contador de transacciones de la cuenta, y \"nonce too low\" significa que ya se confirmó una transacción con ese número. Las causas habituales son usar la misma cuenta desde otra app de wallet u otro dispositivo, una transacción \"atascada\" que en realidad se confirmó, o un estado de wallet en caché desactualizado. Comprueba en un explorador si el pago o la acción que querías ya se realizó; si es así, no reenvíes; si no, resincroniza la wallet y envía de nuevo. El intento rechazado en sí no gastó comisión. Si de verdad hay una transacción pendiente, consulta \u003Ca href=\"\u002Fblog\u002Fspeed-up-or-cancel-stuck-transaction\">cómo acelerar o cancelar una transacción pendiente\u003C\u002Fa>.",{"q":17,"a":18},"¿Es seguro reintentar tras \"block height exceeded\" o \"Blockhash not found\" en Solana?","En general sí. \"Block height exceeded\" significa que el blockhash expiró (unos 151 bloques, aproximadamente de 60 a 90 segundos), y \"Blockhash not found\" significa que el nodo no lo reconoció, normalmente porque expiró. Una transacción expirada ya no puede procesarse, así que no puede registrarse más tarde y duplicar la nueva; aun así, busca primero la firma en un explorador de Solana y luego reintenta con un blockhash nuevo. El intento expirado no pagó comisión salvo que se registrara antes de expirar, algo que la búsqueda en el explorador muestra, y una priority fee algo más alta puede ayudar si sigue expirando durante una congestión.",1792535064652]