Skip to main content

Overview

PendingTransactionFilter represents a filter created by eth_newPendingTransactionFilter that notifies of new pending transaction hashes. Used for monitoring mempool activity, MEV detection, and transaction tracking.

Type Definition

Creating PendingTransactionFilter

from

Parameters:
  • filterId: FilterIdType - Filter identifier from eth_newPendingTransactionFilter
Returns: PendingTransactionFilterType

JSON-RPC Usage

Create Filter

Poll for Changes

Uninstall Filter

Example: Mempool Monitor

Example: High-Value Transaction Alert

Example: DEX Frontrun Detector

Comparison with eth_subscribe

PendingTransactionFilter (eth_newPendingTransactionFilter)

Pros:
  • HTTP compatible (no WebSocket required)
  • Simple request-response pattern
  • Works with all RPC providers
Cons:
  • Polling-based (less efficient)
  • Delayed notifications (poll interval)
  • Filter expiration if not polled
  • High volume (mainnet ~150 tx/s)

eth_subscribe

Pros:
  • Real-time push notifications
  • More efficient (no polling)
  • No filter expiration
Cons:
  • Requires WebSocket connection
  • Not supported by all providers
  • Still high volume

Performance Considerations

High Volume

Mainnet mempool produces ~150 transactions/second during busy periods:

Filtering Strategies

Don’t fetch all transaction details - filter by criteria:

Batch Requests

Use JSON-RPC batching to fetch multiple transactions:

Node Resource Limits

Some nodes limit or disable pending transaction filters:
  • Infura: Disabled (use WebSocket subscriptions)
  • Alchemy: Limited rate
  • Local node: Configurable
Check provider documentation before using.

Filter Expiration

Pending transaction filters expire after inactivity (typically 5 minutes):

Use Cases

MEV Bot Detection

Transaction Broadcaster

Gas Price Oracle

Security Considerations

Privacy

Pending transactions are publicly visible before mining:
  • Transaction details (from, to, value, data)
  • Gas prices (reveals urgency)
  • Nonce (reveals transaction ordering)

MEV Risks

Monitoring the mempool exposes transactions to:
  • Frontrunning: Higher gas price to execute first
  • Backrunning: Execute after target transaction
  • Sandwich attacks: Frontrun + backrun
Mitigation:
  • Use private mempools (Flashbots, Eden, etc.)
  • Encrypt transaction data
  • Use commit-reveal schemes

JSON-RPC Methods

  • eth_newPendingTransactionFilter - Create pending tx filter
  • eth_getFilterChanges - Poll for new pending txs
  • eth_uninstallFilter - Remove filter
  • eth_getTransactionByHash - Fetch transaction details
  • eth_sendRawTransaction - Broadcast transaction

See Also