Skip to main content
Chainstack plans to deprecate Trader Nodes on December 1, 2026. We recommend moving your workloads to Global Nodes before then, as described in Trader Node deprecation.
TLDR:
  • Pending transactions are in the pool ready to be included in a block.
  • Queued transactions are sitting locally because their account nonce is out of sequence; they don’t propagate until the gap is filled.
  • Inspect the pool with txpool_status / txpool_content; subscribe to new pending transactions with eth_subscribe; fix a queued transaction by filling the nonce gap.
txpool_content and txpool_inspect need a Dedicated Node — Global Nodes and Trader Nodes return -32601 for them. txpool_status depends on the network and mode, and the eth_subscribe part works on every node type. See What gives you mempool access.

Pending vs queued

A transaction submitted through an EVM node has one of two states before it lands in a block:
  • Pending — in the node’s transaction pool and ready to be included in the next block.
  • Queued — held in the local pool because the account nonce is out of sequence.
Each transaction has an account nonce (not the block nonce). The account nonce starts at 0 and must increase by one per transaction from that address. A transaction whose nonce is in sequence goes straight to pending. A transaction with a nonce gap waits in queued until the missing nonces are filled.

Example

Inspect the local pool

Use the txpool JSON-RPC namespace to inspect the mempool of a node you have access to. On Chainstack, reading the pool contents with txpool_inspect or txpool_content requires a Dedicated Node — see What gives you mempool access for which methods each node type serves, and Mempool configurations for protocol-by-protocol availability.
To check the current confirmed nonce for an address:

Subscribe to new pending transactions

For real-time delivery of new pending transactions, subscribe over WebSocket:
Each push notification over WebSocket counts as one request unit. For sustained high-volume pending-transaction subscriptions, consider an Unlimited Node which uses RPS-tiered flat-fee pricing instead of per-request billing.

HTTP-polling alternative

If you can’t use WebSocket, poll an HTTP filter with eth_newPendingTransactionFilter and eth_getFilterChanges:
Filters expire after about five minutes of inactivity — see Fix Ethereum’s filter not found error.

Fix a queued transaction

If you have a queued transaction stuck behind a nonce gap, fill the gap by sending the missing nonces. The simplest path is to send no-op self-transfers at the missing nonces until the queued nonce becomes the next pending one.

Diagnose the gap

  1. Get the confirmed nonce: eth_getTransactionCount("0xYourAddress","latest").
  2. Get the queued transaction’s nonce from txpool_content or from the transaction object: eth_getTransactionByHash.
  3. The gap is everything between them.

Fill the gap

Send a transaction at each missing nonce. A 0-value self-transfer with explicit nonce is enough:
Once the missing nonces confirm, the previously queued transaction moves to pending and is mined.

Alternative: cancel by replacement

If you’d rather drop the queued transaction altogether, send a replacement at the same nonce with a higher gas price — most clients require the new gas price to be at least 10% higher (txpool.pricebump).

See also

Last modified on October 16, 2026