Owlio
ES
← Blog
Guía paso a pasoPrincipiante

Transacción de Ethereum fallida: por qué se cobró gas

Una acción fallida puede dejar tus tokens intactos y reducir tu ETH. Lee el registro de la transacción antes de pagar otro intento.

Una transacción de Ethereum fallida puede costar ETH porque la ejecución utiliza cómputo de pago, incluso cuando se revierte la acción prevista. Si la transacción se incluyó en un bloque y su estado general es Failed, la transferencia o los cambios del contrato de esa transacción no surten efecto. La comisión de ejecución se cobra igualmente.

Esta guía trata las transacciones normales de Ethereum Mainnet desde una cuenta que paga su propio gas. Las cuentas inteligentes, transacciones patrocinadas, retiradas de exchanges y transferencias entre varias cadenas pueden tener pasos o cargos adicionales. Un paso fallido en una aplicación no basta para demostrar que falló toda la transacción en cadena.

Primero determina qué falló realmente

Abre la transacción desde la actividad de tu wallet y revísala en el explorador de Ethereum Mainnet. Anota el hash completo, el remitente, el número de bloque y el estado general. Puedes consultar esos datos públicos sin firmar nada.

La distinción importa porque los recibos de Ethereum registran el resultado de ejecución del nivel superior: el estado 0 significa fallo y el 1, éxito. Una llamada interna fallida que aparece en una traza no implica necesariamente que falló toda la transacción. Si el estado general es Success, inspecciona el resultado real de la acción en lugar de asumir que todo se revirtió.

Si no hay número de bloque y la transacción sigue pendiente, utiliza la lista de comprobación de transacciones pendientes. Las siguientes comprobaciones empiezan tras la inclusión; aumentar la comisión de una transacción que ya falló no cambia su resultado registrado.

Lee la comisión por separado del importe previsto

En la página de la transacción fallida busca Transaction Fee, Gas Used y el Gas Price efectivo, cuando el explorador los proporcione. Mantén aparte el importe de transferencia previsto. El campo Value puede describir lo enviado para ejecución sin demostrar que esa cantidad llegó al destinatario.

En una transacción normal de Mainnet, la comisión de ejecución cobrada es el gas usado multiplicado por el precio efectivo por unidad. La comisión máxima configurada y el límite de gas son cotas, así que multiplicarlas no demuestra cuánto pagaste realmente. La documentación sobre gas de Ethereum explica estas diferencias.

Este cálculo es ilustrativo, no una transacción real ni una estimación de las comisiones actuales:

Concepto Valor de ejemplo
Transferencia de tokens prevista 100 tokens
Estado general del recibo Failed
Gas usado 60,000 unidades
Precio efectivo del gas 5 gwei por unidad
Comisión de ejecución 300,000 gwei, o 0.0003 ETH

Si no hubo otra actividad, la transferencia fallida deja intacto el saldo de tokens del remitente, mientras su saldo de ETH baja en la cuantía de la comisión. Este ejemplo no establece un límite de gas adecuado ni cotiza tu siguiente transacción.

Si la reducción de ETH supera la comisión registrada, examina otras transacciones de esa cuenta. No uses un gráfico del valor del portafolio en dólares para reconstruir el cargo: los precios de mercado pueden cambiar al mismo tiempo. Si las cantidades siguen sin coincidir entre pantallas, continúa con la lista de comprobación del saldo del portafolio.

Distingue el gas agotado de una reversión del contrato

La guía de fallos de Etherscan distingue entre una ejecución que se queda sin gas y un contrato que revierte. Ambos pueden producir una transacción fallida, pero requieren investigaciones distintas.

Gas agotado durante la ejecución: el cómputo agotó el gas disponible. Los cambios intentados se revierten y el gas suministrado se consume. Compara el gas usado con el límite y lee el error del explorador. Si era una acción legítima que aún quieres realizar, consulta las indicaciones actuales de la wallet o el protocolo para estimarla. No copies un límite antiguo de una transferencia sin relación.

Ejecución revertida: un contrato detuvo la ejecución y deshizo sus cambios. Puede devolver un error que explique una condición incumplida. La especificación REVERT permite conservar gas sin usar, por lo que un recibo fallido no tiene por qué mostrar un consumo del 100% del límite.

Guarda el error exacto y búscalo en la documentación del protocolo que querías usar. Un explorador puede no decodificarlo y un mensaje genérico de reversión puede no identificar la causa. En ese caso, la causa sigue sin resolverse. Un margen de gas mayor no demuestra que haya cambiado la condición del contrato.

El precio y el límite del gas son controles independientes. Pagar más por unidad no hace que un contrato acepte una acción que rechaza. No relajes las protecciones de la transacción ni aumentes límites solo para descartar una advertencia que no entiendes.

Comprueba los pasos anteriores correctos antes de reintentar

El flujo de una aplicación puede incluir varias transacciones. Por ejemplo, una autorización puede completarse en una transacción y un intercambio posterior fallar en otra. El fallo posterior no deshace una transacción anterior. Comprueba cada hash y su estado por separado.

Prepara un breve registro antes de autorizar otro intento:

  1. Acción fallida: hash, bloque, estado general y error exacto.
  2. Coste: comisión de transacción, gas usado y precio efectivo del gas.
  3. Otros pasos: hashes y resultados de autorizaciones, depósitos o reintentos separados.
  4. Estado actual: cantidad de tokens y cualquier posición relevante en el protocolo para esta cuenta en Mainnet.
  5. Motivo para reintentar: causa identificada y qué ha cambiado para corregirla.

Si no puedes completar el último punto, reintentar deja la causa sin resolver y puede generar otra comisión si la nueva transacción se incluye en un bloque. Utiliza la vía oficial de soporte del protocolo con datos públicos de la transacción, manteniendo en privado tu frase semilla y claves privadas.

Una acción fallida no crea un saldo de gas reembolsable

MetaMask explica que no recauda la comisión de gas de la red y no puede devolverla. El margen de gas no usado es distinto de la comisión ya consumida por la ejecución. No necesitas conectarte a una web de reembolsos para reclamar ese margen sin usar.

Un rastreador de portafolio puede ayudar a comparar tenencias, pero su total no explica un error del contrato ni revierte la transacción. Conserva el recibo fallido y su comisión como registro del intento. Antes de continuar, deberías saber qué acción falló, cuánto costó y qué condición cambiaría un nuevo intento.

Preguntas frecuentes

¿Pierdo los tokens que intenté enviar si falla una transacción de Ethereum?

En una transacción normal de Ethereum Mainnet cuyo recibo indica un fallo en el nivel superior, se revierten la transferencia prevista y los cambios de estado de los contratos. El remitente sigue pagando la ejecución. Revisa las transacciones separadas y el contrato exacto del token si los saldos no coinciden con ese resultado.

¿Una transacción fallida siempre consume todo el límite de gas?

No. Un contrato puede revertir deliberadamente antes de usar todo el gas disponible. Si se agota el gas durante la ejecución, se consume el gas suministrado. Consulta el gas usado en el recibo y el motivo del fallo en vez de deducir el resultado a partir del límite.

¿Subir el precio del gas arregla una transacción revertida?

Un precio mayor por unidad de gas no cambia las condiciones del contrato. Identifica primero el error. El límite y el precio del gas son ajustes distintos, y un nuevo intento puede fallar y generar otra comisión.