eth_getLogs
Returns an array of all logs matching a given filter object. This is one of the most commonly used methods for indexing and monitoring smart contract events.
Parameters
Section titled “Parameters”Object— Filter options:Field Type Description fromBlock QUANTITY|TAG Start block (default: "latest")toBlock QUANTITY|TAG End block (default: "latest")address DATA|Array Contract address(es) to filter topics Array Topic filters (indexed event params) blockHash DATA Restricts to a single block
Returns
Section titled “Returns”Array — Array of log objects:
| Field | Type | Description |
|---|---|---|
| address | DATA | Contract that emitted the log |
| topics | Array<DATA> | Indexed event parameters |
| data | DATA | Non-indexed event parameters |
| blockNumber | QUANTITY | Block number |
| transactionHash | DATA | Transaction hash |
| logIndex | QUANTITY | Log index in block |
Request
Section titled “Request”# Get recent USDC Transfer eventscurl -X POST https://eth-mainnet.blockreq.com/v1/rpc/public \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "eth_getLogs", "params": [{ "fromBlock": "0x134E800", "toBlock": "0x134E810", "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"] }], "id": 1 }'The topic
0xddf252ad...is the keccak-256 hash ofTransfer(address,address,uint256).
Code Examples
Section titled “Code Examples”JavaScript (ethers.js v6)
Section titled “JavaScript (ethers.js v6)”import { JsonRpcProvider } from "ethers";const provider = new JsonRpcProvider("https://eth-mainnet.blockreq.com/v1/rpc/YOUR_API_KEY");const logs = await provider.getLogs({ address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", topics: ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"], fromBlock: "latest",});console.log(`Found ${logs.length} Transfer events`);Python (web3.py)
Section titled “Python (web3.py)”from web3 import Web3w3 = Web3(Web3.HTTPProvider("https://eth-mainnet.blockreq.com/v1/rpc/YOUR_API_KEY"))logs = w3.eth.get_logs({ "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"], "fromBlock": "latest"})print(f"Found {len(logs)} Transfer events")RU Cost
Section titled “RU Cost”| Method | Cost |
|---|---|
| eth_getLogs | 50 RU |
Large block ranges may consume additional RU based on response size.