eth_getUserOperationByHash
Return a UserOperation based on a userOpHash.
This method retrieves and decodes userOperations from the logs of mined transactions by querying the node. The number of blocks scanned in a single request is limited. Use blockOption to position a bounded lookup window when searching historical blocks.
The maximum number of blocks a single request may scan for the operation's UserOperationEvent depends on the chain and your plan tier. This limits the width of the scan, not the age of the operation. A blockOption may position the scan at historical blocks, provided the resulting range does not exceed this width:
| Chain | Free | Pay As You Go | Enterprise |
|---|---|---|---|
| Arbitrum Mainnet, Arbitrum Sepolia, Arc Mainnet, Base Mainnet, Base Sepolia, Ethereum Mainnet, Ethereum Sepolia, OP Mainnet, OP Sepolia, Polygon PoS Amoy, Polygon PoS Mainnet, Robinhood Chain Mainnet, World Chain Mainnet, World Chain Sepolia | 150 | unlimited | unlimited |
| BNB Smart Chain Testnet | 50 | 50 | 50 |
| Hyperliquid Mainnet | 150 | 2,000 | 2,000 |
| Monad Mainnet | 150 | 1,000 | 1,000 |
| Robinhood Chain Testnet | 150 | 5,000 | 5,000 |
Chains not listed here use a 150-block limit on every tier.
Path Parameters
docs-demoFor higher throughput, create your own API key
Request
format: "^0x[0-9a-fA-F]*$"requiredThe userOpHash of the UserOperation to retrieve.
Optional block scope for the lookup: a { fromBlock, toBlock } range (block numbers or tags) or a single block hash. Any other value is ignored, as it was before this parameter existed.
Responses
200
The matched UserOperation with inclusion metadata, or null if no operation is found.