Cómo depurar transacciones pendientes de Ethereum
Autor: Alchemy Team
Cuando envías una transacción a la blockchain de Ethereum, ¿a dónde va? ¿Qué es una transacción pendiente y qué sucede antes de que se mine? ¿Qué es un mempool? ¿Por qué algunas de mis transacciones tienen éxito y otras fallan?
Vamos a examinar en profundidad el flujo de una transacción en la red de Ethereum, desde el momento en que presionas "enviar" hasta el punto en que la transacción queda completamente minada. Hablaremos sobre qué puede salir mal y cómo el conjunto de herramientas para desarrolladores de Alchemy puede ayudarte a depurar y obtener visibilidad de este proceso.
Aunque esta guía es específica de Ethereum, los principios fundamentales aplican básicamente a todas las blockchains.
¿Qué es una transacción de Ethereum?
Una transacción de Ethereum, en su forma más simple, es una solicitud de un usuario para codificar nueva información en el estado permanente de la blockchain. El contenido de esta solicitud generalmente toma una de estas formas:
- Una simple transferencia de valor de la cuenta pública del usuario a otra parte (por ejemplo, enviar ETH a un comerciante)
- Codificar un nuevo smart contract en la blockchain pública al que puedan acceder terceros (por ejemplo, iniciar un nuevo smart contract de lotería)
- Enviar información a un smart contract existente para interactuar con él (por ejemplo, ingresar tu nombre y fondos en un smart contract de lotería)
¿Qué es un mempool?
Antes de entender el flujo de transacciones en Ethereum, primero necesitamos entender qué es el mempool. Un mempool es una sala de espera en un nodo de Ethereum para transacciones no confirmadas, configurada específicamente para actuar como un área de preparación. Dependiendo del cliente que uses, también puede llamarse TX-POOL o TX-QUEUE.
Las transacciones enviadas a un nodo primero llegarán al mempool y permanecerán allí hasta que sean confirmadas completamente por la red. El mempool maneja algunos pasos clave del proceso, entre ellos:
- Ejecutar una serie de pruebas de validación para asegurar que la transacción tendrá éxito una vez enviada a un minero. Algunas de las validaciones que el nodo podría realizar incluyen: ¿Hay fondos disponibles para cubrir el costo del gas? ¿Es válida la firma de la transacción? ¿Es el nonce el siguiente en orden para esta dirección de remitente?
- Ordenar la lista de transacciones a procesar según su precio de gas. Un precio de gas más alto significa que la transacción probablemente será priorizada por el minero.
- Compartir las transacciones pendientes con los mempools de nodos vinculados, que a su vez continúan reenviándolas a otros mempools, permitiendo que toda la red vea la lista de transacciones pendientes. Cuando se mina un bloque, las transacciones con los precios de gas más altos en toda la red serán confirmadas.
¿Cómo es el flujo de una transacción de Ethereum?
Ahora que hemos cubierto el mempool, ¿qué pasos intervienen al enviar una transacción de un usuario hasta almacenarla de forma permanente en la blockchain?
- Un usuario genera una nueva transacción, la firma con su clave privada y la envía a un nodo de la blockchain llamando al método eth_sendTransaction o eth_sendRawTransaction, expuesto típicamente a través de un servicio como la Node API de Alchemy.
- La transacción se envía al mempool de un nodo.
- El mempool ejecuta una serie de pruebas de validación. Si la transacción pasa estas validaciones, entrará en un estado pendiente.
- El nodo transmitirá la transacción a los demás nodos de la blockchain, donde terminará en sus mempools correspondientes.
- Una vez que un nodo de la blockchain mina un nuevo bloque, las aproximadamente 200 transacciones pendientes con los precios de gas más altos se incluirán en el siguiente bloque de la blockchain. Estas transacciones se eliminarán del mempool, y el nuevo bloque y el estado del mempool se propagarán por la red.
- Después de que se confirmen entre 5 y 7 bloques más, las probabilidades de que la blockchain se reorganice para seguir otra bifurcación de bloques (con un conjunto diferente de transacciones confirmadas) se vuelven extremadamente pequeñas. En este punto, es seguro asumir que la transacción está permanentemente en la blockchain.

¿Qué podría salir mal con una transacción pendiente de Ethereum?
1. El mempool podría estar lleno
Empecemos por lo simple. Hay límites en el tamaño del mempool (¡a menos que uses una herramienta como Alchemy!), tanto en todo el nodo como por dirección dentro del nodo. Típicamente para Geth, es de 4096 transacciones pendientes, y Geth descartará las transacciones pendientes más antiguas en favor de las más nuevas.
2. Tus parámetros podrían ser inválidos
Al hacer una transacción, necesitas incluir una variedad de parámetros relevantes, tales como:
- ¿Cuál es la dirección de origen y la dirección de destino?
- ¿Cuál es el valor a transferir?
- ¿Cuánto gas estoy dispuesto a usar para la transacción?
- ¿Cuál debería ser el nonce actual para mi transacción?
Si cometiste un error al ingresar estos datos, el nodo generalmente devolverá un código de error explicando el problema. Si no puedes entender el mensaje de error o encontrar la respuesta en Google, visita el centro de soporte de Alchemy.
3. Tu precio de gas podría ser demasiado bajo
Para determinar qué transacciones priorizar, las transacciones de Ethereum deben enviarse con un precio de gas. Igual que en una subasta común, un precio de gas más alto significa que tu transacción tiene más probabilidades de ser incluida en el siguiente bloque, y un precio de gas demasiado bajo significa que podrías nunca llegar a la blockchain.
Debido a que el precio del gas fluctúa rápida e impredeciblemente a lo largo del día según la demanda, es muy importante que configures este campo correctamente. Tienes algunas opciones aquí:
- Si estás enviando una sola transacción manualmente, puedes visitar el sitio web de ETH Gas Station para ver los precios de gas más recientes y establecer tu precio en consecuencia.
- Si estás enviando solicitudes a un proveedor de nodos como Alchemy, la especificación JSON-RPC de Ethereum expone un endpoint llamado eth_estimateGas que te da una estimación de cuánto gas necesitarás para que tu transacción se mine. Puedes usar esto para automatizar la configuración de precios de gas de forma programática.
- Si quieres recibir notificaciones push cuando los precios de gas suban por encima o bajen por debajo de un precio determinado, ofrecemos una herramienta llamada Gas Price Notifications en Alchemy Notify que puede alertarte específicamente en esas situaciones. Al ser un webhook, es bastante simple integrarlo en tu código para enviar transacciones automáticamente cuando los precios de gas estén bajos.
Mira el dashboard de Alchemy en acción
Recorrido guiado de 30 minutos: todas las herramientas del dashboard, mostradas en vivo.
Watch the demo4. Tu nonce podría ser incorrecto
Ah, la pregunta ardiente en la mente de todos: ¿qué diablos es un nonce y por qué lo necesito? Es una pregunta totalmente válida y nos alegra que la hagas.
Dicho de forma simple, el nonce es el número de transacciones enviadas desde una dirección determinada. Si has confirmado exitosamente cinco transacciones (nonces 0-4), el nonce de tu siguiente transacción pendiente será 5.
Los nonces siguen algunas reglas:
- Los nonces deben ocurrir en orden. Una transacción con nonce 4 ocurrirá estrictamente antes que una transacción con nonce 5.
- Los nonces no pueden duplicarse ni omitirse: hay exactamente un nonce por transacción exitosa. Si no tienes una transacción con nonce 5, no puedes enviar una con nonce 6. De forma similar, no puedes enviar dos transacciones con nonce 5; solo una pasará.
¿Por qué los necesitamos? Los nonces son necesarios desde una perspectiva criptográfica para asegurar que las transacciones de una dirección determinada ocurran en el orden en que las enviaste, y que tus transacciones estén protegidas del problema de doble gasto.
En la práctica, el nonce es simplemente un parámetro que debes configurar al crear una transacción. Esto te permite tener un control manual detallado sobre el orden de tus transacciones.
Como ejemplo real, digamos que quieres comprar un NFT en un marketplace y luego enviarle una pequeña "comisión de búsqueda" a Bob por ayudarte a descubrirlo. En este caso, solo querrías pagarle a Bob si compraste exitosamente el NFT. Sin los nonces, no tendrías forma de enviar ambas transacciones Y asegurar que ocurran en un orden particular. Usando nonces, simplemente puedes etiquetar una transacción con el nonce N, y otra con el nonce N + 1.
Sin embargo, este control detallado significa que debes enviar tus transacciones con el nonce correcto cada vez. Si tu transacción está atascada, necesitarás verificar tu nonce para asegurarte de que esté configurado correctamente según las reglas descritas anteriormente.
5. Tu bloque podría bifurcarse (fork)
Te va a encantar esta: incluso si tu transacción se mina exitosamente, todavía no estás fuera de peligro 😡.
Debido a que la blockchain es descentralizada, diferentes conjuntos de nodos en la red podrían tener vistas distintas de la red. En particular, ocasionalmente dos mineros minarán un nuevo bloque casi al mismo tiempo, y los nodos vinculados se subirán a las dos nuevas cadenas al mismo ritmo. En ese caso, las dos nuevas cadenas crecerán en paralelo, pero eventualmente una de ellas ganará un poco más de consenso.
Cuando toda la red cambia a una de las cadenas y abandona la segunda, las transacciones ya "minadas" en la cadena antigua quedan bifurcadas y, por lo tanto, se invalidan. A los bloques bifurcados también se les llama "uncle blocks".
¡Eso significa que incluso después de haber minado tu transacción, todavía podría ser invalidada por una bifurcación de bloque! Puedes ver un historial de bloques bifurcados en Etherscan aquí. Afortunadamente, en Ethereum mainnet no son muy comunes y típicamente tienen una profundidad menor a 5 bloques, pero por eso tu transacción nunca está "completamente" confirmada por un protocolo de trading DeFi hasta después de un mínimo de 5 a 7 confirmaciones de bloque.
¿Qué herramientas puedo usar para gestionar mi mempool y mis transacciones pendientes de Ethereum?
El Alchemy mempool watcher
Supongamos que enviaste una transacción hace cuarenta minutos al mempool de un nodo, pero no la has visto confirmada en la blockchain. Te gustaría tener información sobre su estado actual, el precio de gas con el que la enviaste, y el nonce para verificarlo. ¿Qué haces?
Acceder al estado de tus transacciones en el mempool era (y sigue siendo) un desastre. Debido a que la única interfaz hacia el estado de tu mempool es a través de la API JSON-RPC de Ethereum, los desarrolladores pasaban horas consultando los distintos nodos a los que enviaron transacciones, combinando y filtrando páginas de logs, y tratando de reconstruir a mano el estado completo de su mempool, todo para una sola consulta.
Así es como se ve una llamada típica a un mempool con mucho tráfico:

Peor aún, cuando los desarrolladores empiezan a enviar sus solicitudes a múltiples nodos por escalabilidad, surgen serios problemas de consistencia, ya que las transacciones se originan en un solo nodo, las solicitudes para una transacción en particular deben enrutarse de forma persistente (sticky routing) al mismo nodo cada vez que interactúas con ella.
En respuesta a estos desafíos, construimos el Mempool Watcher: una herramienta que simplifica gran parte de esta complejidad. Primero, nosotros manejamos todo el enrutamiento de nodos, de modo que aunque podrías estar utilizando docenas de nodos para escalar, tu mempool siempre aparece como una sola entidad, con las solicitudes de mempool correctamente enrutadas al nodo correcto dentro de nuestra infraestructura.
Segundo, te damos herramientas muy útiles para proporcionar una vista en tiempo real del estado de tus transacciones. Las transacciones se marcan como minadas, pendientes o descartadas. Cada registro de transacción incluye la duración que la transacción pasó pendiente, la cantidad de gas requerida y acceso a detalles adicionales.

El Alchemy explorer
¿Qué pasa si enviaste veinte transacciones diferentes a un nodo simultáneamente mediante un script, pero ves que algunas ni siquiera llegan al nodo? ¿Cómo podrías rastrear las respuestas fallidas y encontrar patrones para determinar la causa?
De forma similar a lo anterior, típicamente como desarrollador tendrías que revisar páginas de logs para determinar un patrón. En respuesta, construimos una herramienta de exploración de solicitudes/respuestas que te permite rastrear el estado de las solicitudes JSON-RPC enviadas a través de nuestra API.

Nuestro Alchemy Explorer te permite buscar entre solicitudes y respuestas históricas enviadas a través de nuestra infraestructura desde hace 1 segundo hasta 7 días atrás. Se acabó la búsqueda manual en logs: tienes tecnología moderna al alcance de la mano.
En estas solicitudes, puedes filtrar las consultas por todo tipo de parámetros, como el tipo de método, las respuestas HTTP o errores específicos del nodo. Puedes ver las solicitudes según sus marcas de tiempo, la duración de la solicitud, y muchas otras opciones.
¿Por qué debería usar Alchemy para gestionar mis transacciones?
Alchemy es un proveedor de nodos, lo que significa que gestionamos toda la infraestructura asociada al envío y recepción de solicitudes hacia la blockchain de Ethereum (¡entre otras!). Aquí hay información sobre por qué necesitas un proveedor de nodos.
Una vez que envías tus solicitudes a través de nuestro sistema, obtienes todos los beneficios que hemos discutido anteriormente para transacciones pendientes: un mempool escalable, herramientas de dashboard, webhooks de precio de gas.
Además de eso, te daremos:
- Acceso a la Node API de Alchemy, respaldada por infraestructura propietaria que resuelve los problemas de escalabilidad y consistencia que afectan a la blockchain.
- Acceso a nuestro Dashboard, que te ayuda a construir y monitorear tus aplicaciones proporcionando herramientas para explorar tus solicitudes como las mencionadas anteriormente.
- Acceso a Alchemy Notify, una herramienta que proporciona notificaciones push (webhooks) para eventos como transacciones que ocurren en la blockchain.
- Acceso a nuestras Enhanced APIs, que te permiten hacer solicitudes a la blockchain que de otra forma serían computacionalmente costosas o imposibles.
- Y mucho más, incluyendo acceso a estas funciones en una variedad de chains como Flow, Crypto.org, y L2s como Polygon, Optimism y Arbitrum!
Empezando con Alchemy
Desbloquear la Node API y las herramientas para desarrolladores de Alchemy es increíblemente simple: de hecho, ¡solo debería ser una línea de código! Si has estado usando web3.js o ethers.js, es tan simple como crear una cuenta de Alchemy gratis, generar una API key, y reemplazar la instanciación con algo como esto:
Si quieres un tutorial completo, lee nuestra guía Getting Started with Alchemy. Si necesitas más ayuda, visita el centro de soporte de Alchemy.
Boletín de Alchemy
Entérate primero de los lanzamientos
Suscríbete a nuestro boletín
Recibe las últimas actualizaciones de productos y recursos de Alchemy
Al ingresar tu correo electrónico, aceptas recibir nuestras comunicaciones de marketing y actualizaciones de productos. Reconoces que Alchemy procesa la información que recibimos de acuerdo con nuestro Aviso de Privacidad. Puedes cancelar tu suscripción en cualquier momento.
Artículos relacionados

Convierte Claude Code en un agente de investigación onchain
Convierte Claude Code en un agente de investigación onchain con el Alchemy CLI. Rastrea lanzamientos de tokens, wallets de deployers y admin keys haciendo las preguntas correctas.

El router Cortex: cómo elegimos el nodo más rápido y saludable para cada solicitud
Llevar una solicitud a una región cercana es lo mínimo esperable. Lo que pasa después, elegir qué nodo responde, es donde Cortex hace su trabajo.

La mejor infraestructura blockchain para agentes de IA (2026)
Compara la mejor infraestructura blockchain para agentes de IA en 2026: frameworks de agentes, proveedores de RPC y datos listos para agentes, y los estándares que los conectan.