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
filterId:FilterIdType- Filter identifier frometh_newPendingTransactionFilter
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
- 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
- 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
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
- Use private mempools (Flashbots, Eden, etc.)
- Encrypt transaction data
- Use commit-reveal schemes
Related Types
- FilterId - Filter identifier
- LogFilter - Event log filter
- BlockFilter - Block hash filter
- TransactionHash - Transaction hash type
JSON-RPC Methods
eth_newPendingTransactionFilter- Create pending tx filtereth_getFilterChanges- Poll for new pending txseth_uninstallFilter- Remove filtereth_getTransactionByHash- Fetch transaction detailseth_sendRawTransaction- Broadcast transaction

