Si has hecho alguna vez una transacción en la red de Ethereum como enviar tokens o aceptar una puja por tu NFT, ha podido ocurrirte que al realizarla, ésta se ha quedado pendiente durante días sin saber exactamente cuándo se llevaría a cabo. En este post te contamos paso a paso cómo solucionarlo.
Cómo funcionan los gas fees y transacciones de Ethereum
Para dar un poco de contexto al post, conviene saber cómo funcionan las gas fees y las transacciones en Ethereum primero.
Por un lado, en Ethereum, por como funciona la blockchain, solo se puede hacer un número determinado de transacciones por minuto. Por otro lado, las gas fees que se pagan por cada transacción funcionan, a fecha de este post, mediante un sistema de subastas en el que el mejor postor consigue que su transacción se realice más rápido.
De esta forma, los mineros van aceptando pujas y realizando transacciones pendientes hasta que va descongestionándose la red y, por ende, bajando el precio de los gas fees. Sin embargo, si hay muchas transacciones pendientes y los usuarios empiezan a subir sus pujas, las gas fees pueden escalar hasta precios desorbitados. En este caso, unas gas fees altas desincentivan que se siga congestionando la red a costa de paralizar el movimiento de ésta.
De ahí a que cada vez que vayas a hacer una transacción en Metamask tengas 3 opciones: lento, estándar y rápido. Esto es debido a que estás pujando por el límite bajo, la media o el límite alto del rango de precios de transacción. Por eso es siempre recomendable usar la opción estándar para no jugártela.
Sin embargo, en días con mucho volumen, es perfectamente posible que aún eligiendo estándar o incluso rápido, justo pegue una subida y tu transacción se quede perdida en el limbo hasta que las gas fees bajen al precio por el que pujaste. El problema es que no sabes cuándo va a pasar esto.
Por otro lado, por cómo funciona Ethereum, no puedes realizar una transacción nueva si no se ha completado la anterior, por lo que si pujaste muy bajo y tu transacción se queda pendiente, no podrás hacer nada más. Pero no pasa nada, porque hay opciones.
Opción A: Agilizar Transacción
La opción más simple de todas para resolver este entramado es la que te da Metamask por defecto: agilizar la transacción. Básicamente lo que hace Metamask es sustituir la transacción pendiente, que tiene un número determinado (por ejemplo, transacción número 33), por otra con el mismo número y una puja mayor.
Si haces esto y se soluciona, ¡Enhorabuena! ¡Lo has conseguido! Si no es así y ya ha pasado un tiempo, tienes la opción B.
Opción B: Cancelar la transacción
En la opción B lo que vamos a hacer es parecido a la opción A, solo que de forma manual y cancelando la transacción definitivamente.
Paso 1: Activa la personalización de nonce
Lo primero que tenemos que hacer es activar la personalización del nonce en la configuración de Metamask. El nonce es el número de posición y que tiene una transacción en nuestra wallet. Así, una transacción con un nonce = 1, será la primera que hagamos en la historia de la wallet. Por defecto, esto se elige automáticamente, pero ahora nos interesa poder modificar este dato.
Así, vamos a nuestro Metamask, clickamos en el círculo de arriba a la derecha y seleccionamos Configuración. Después, vamos a Avanzado y bajamos y activamos Personalizar nonce de la transacción.
Paso 2: Busca la transacción pendiente y su nonce
Después, iremos a la transacción que tenemos pendiente en Metamask bajo Actividad y clickaremos en ella para ver los detalles. Lo que nos interesa aquí es el número que ponga en nonce. En nuestro caso sería el 3. Esto significaría que es nuestra 4ª transacción en la wallet (ya que empieza desde 0).
Paso 3: Envíate ETH en una nueva transacción
Una vez activada la personalización de nonce y que ya sabemos el número de nonce que tiene la transacción que tenemos pendiente, procedemos a darle al botón de Enviar de metamask en ETH.
Lo que vas a hacer ahora es copiar la dirección de tu propia wallet (la que estás usando para hacer la transacción) y enviarte 0 ETH. En este caso marcaremos la opción de Rápido.
Después, en la pantalla de confirmación, pondremos el número de nonce de la transacción pendiente que apuntamos antes en el siguiente apartado, bajo "nonce personalizado" y confirmamos.
Esto hará que se sustituya una con otra y que básicamente se cancele la que quedó colgada. Como apunte, sí, no tendremos otra que pagar los gas fees de esta transacción para cancelar la anterior.
Extra: ¿Qué hacer si no encuentro la transacción pendiente?
En ocasiones, puede que no aparezca en Metamask la transacción o transacciones pendientes. Pero no te preocupes, porque en la blockchain todo se puede encontrar.
Lo que tenemos que hacer es clickar en los 3 puntitos arriba a la derecha en Metamask y seleccionar "Ver en Etherscan", o directamente introducir nuestra dirección de wallet en Etherscan. Ahí encontraremos todas las transacciones de nuestra wallet ordenadas cronológicamente, donde más arriba significa más reciente.
En nuestro caso no tenemos ninguna transacción pendiente, pero solamente tendríamos que buscar la que diga "pending" bajo Method y clickar en el número de Txn Hash.
Después, clickaremos en Click to see More y finalmente podremos ver el número de nonce, que podremos usar siguiendo los pasos anteriores.
¡Y ya está! Esperamos que esta guía te haya servido. ¿Te quedan dudas? ¡Pregunta en los comentarios!
Intente pasar bnb de la red de binance a la de poligon a traves de orbit bridge pero no tenia matics en metamask en la red de poligon para los fees y se quedo pendiente la operacion por falta de fondos para el gas. Como hago para solucionar esto? o perdi todo lo que quise enviar?Desde ya gracias!!
Alex, muchas gracias por el artículo, bueno tutorial..jeje
como estas , realice una transaccion desde la red polygon de usdt a la red ethereum con un numero de adress inexistente , vi que la transferencia que realice esta en nonce 5 , hay alguna posibilidad de recuperar lo depositado en usdt? tengo la transferencia pendiente hace 2 meses
Buenos días.
Ayer domingo realice mi primera transacción entre MetaMask y Gate.io, pero algo debió de salir mal.
Transferí el token AURORA, en gate busqué dicho token (estando logeado) con mi billetera, copié la dirección que marcaba en MetaMask para el envío de dicho token, empiezo a realizar la transacción, todo parece correcto (es la primera que hago y eso pienso) me sale como transacción realizada, pero a la hora de hoy día 22/11 a las 10:08 de la mañana no ha llegado todavía, la red del token Aurora en gate es ERC20 pero en metamaks como fue un token agregado me sale Aurora mainnet, por lo que veo pone en la transacción “gas price 0”, “total ETH 0” cosa…
Hola, me pasó con un gas en bnb en cryptomines, no se me soluciona con el nonce ni cancelando, qué otra opción tengo?