eth_getFilterLogs
curl --request POST \
--url https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "eth_getFilterLogs",
"params": [
"0x1"
]
}
'import requests
url = "https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "eth_getFilterLogs",
"params": ["0x1"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({id: 1, jsonrpc: '2.0', method: 'eth_getFilterLogs', params: ['0x1']})
};
fetch('https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 1,
'jsonrpc' => '2.0',
'method' => 'eth_getFilterLogs',
'params' => [
'0x1'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getFilterLogs\",\n \"params\": [\n \"0x1\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getFilterLogs\",\n \"params\": [\n \"0x1\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getFilterLogs\",\n \"params\": [\n \"0x1\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"address": "0xfffffffffffffffffffffffffffffffffffffffe",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x0000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0",
"0x0000000000000000000000007798f2eb73c1dd8fa8086d780d5cf114a10f528e"
],
"data": "0x000000000000000000000000000000000000000000000000016345785d8a0000",
"blockHash": "0x6dabcf7ed4cf53e05054a4d671b19b7597740bce1042019ff31af68dde9c98a9",
"blockNumber": "0x34808ff",
"blockTimestamp": "0x6a7026be",
"transactionHash": "0x2ed866a63cf1fcc052779d3e3edc6bd6dc2e8378b23c23031f479c5fc0897313",
"transactionIndex": "0x0",
"logIndex": "0x0",
"removed": false
},
{
"address": "0xfffffffffffffffffffffffffffffffffffffffe",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x0000000000000000000000007798f2eb73c1dd8fa8086d780d5cf114a10f528e",
"0x000000000000000000000000ad4c0bf78ce754d5d4d045e37783e95834b900fe"
],
"data": "0x000000000000000000000000000000000000000000000000016345785d8a0000",
"blockHash": "0x6dabcf7ed4cf53e05054a4d671b19b7597740bce1042019ff31af68dde9c98a9",
"blockNumber": "0x34808ff",
"blockTimestamp": "0x6a7026be",
"transactionHash": "0x2ed866a63cf1fcc052779d3e3edc6bd6dc2e8378b23c23031f479c5fc0897313",
"transactionIndex": "0x0",
"logIndex": "0x1",
"removed": false
},
{
"address": "0xad4c0bf78ce754d5d4d045e37783e95834b900fe",
"topics": [
"0x5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f62",
"0x0000000000000000000000007798f2eb73c1dd8fa8086d780d5cf114a10f528e",
"0x0000000000000000000000000a3111263a39fa77d1a931a2aeb028314b73fb7e"
],
"data": "0x000000000000000000000000000000000000000000000000016345785d8a0000",
"blockHash": "0x6dabcf7ed4cf53e05054a4d671b19b7597740bce1042019ff31af68dde9c98a9",
"blockNumber": "0x34808ff",
"blockTimestamp": "0x6a7026be",
"transactionHash": "0x2ed866a63cf1fcc052779d3e3edc6bd6dc2e8378b23c23031f479c5fc0897313",
"transactionIndex": "0x0",
"logIndex": "0x2",
"removed": false
},
{
"address": "0x6c415c8567bf7c2761d623c41f57668ddbad939b",
"topics": [
"0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b",
"0x0000000000000000000000006610cb88385996ca4e121954f07ee3a0c95e5aa8"
],
"data": "0x",
"blockHash": "0x6dabcf7ed4cf53e05054a4d671b19b7597740bce1042019ff31af68dde9c98a9",
"blockNumber": "0x34808ff",
"blockTimestamp": "0x6a7026be",
"transactionHash": "0x2ed866a63cf1fcc052779d3e3edc6bd6dc2e8378b23c23031f479c5fc0897313",
"transactionIndex": "0x0",
"logIndex": "0x3",
"removed": false
}
]
}Arc node API
eth_getFilterLogs | Arc
Arc API method that returns an array of all logs matching the filter with the given ID. eth_getFilterLogs on Arc via Chainstack.
POST
/
eth_getFilterLogs
curl --request POST \
--url https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/ \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "eth_getFilterLogs",
"params": [
"0x1"
]
}
'import requests
url = "https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "eth_getFilterLogs",
"params": ["0x1"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({id: 1, jsonrpc: '2.0', method: 'eth_getFilterLogs', params: ['0x1']})
};
fetch('https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 1,
'jsonrpc' => '2.0',
'method' => 'eth_getFilterLogs',
'params' => [
'0x1'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getFilterLogs\",\n \"params\": [\n \"0x1\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getFilterLogs\",\n \"params\": [\n \"0x1\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_getFilterLogs\",\n \"params\": [\n \"0x1\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": [
{
"address": "0xfffffffffffffffffffffffffffffffffffffffe",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x0000000000000000000000005d20879655df3c1e04ab111af0009ad650e762f0",
"0x0000000000000000000000007798f2eb73c1dd8fa8086d780d5cf114a10f528e"
],
"data": "0x000000000000000000000000000000000000000000000000016345785d8a0000",
"blockHash": "0x6dabcf7ed4cf53e05054a4d671b19b7597740bce1042019ff31af68dde9c98a9",
"blockNumber": "0x34808ff",
"blockTimestamp": "0x6a7026be",
"transactionHash": "0x2ed866a63cf1fcc052779d3e3edc6bd6dc2e8378b23c23031f479c5fc0897313",
"transactionIndex": "0x0",
"logIndex": "0x0",
"removed": false
},
{
"address": "0xfffffffffffffffffffffffffffffffffffffffe",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x0000000000000000000000007798f2eb73c1dd8fa8086d780d5cf114a10f528e",
"0x000000000000000000000000ad4c0bf78ce754d5d4d045e37783e95834b900fe"
],
"data": "0x000000000000000000000000000000000000000000000000016345785d8a0000",
"blockHash": "0x6dabcf7ed4cf53e05054a4d671b19b7597740bce1042019ff31af68dde9c98a9",
"blockNumber": "0x34808ff",
"blockTimestamp": "0x6a7026be",
"transactionHash": "0x2ed866a63cf1fcc052779d3e3edc6bd6dc2e8378b23c23031f479c5fc0897313",
"transactionIndex": "0x0",
"logIndex": "0x1",
"removed": false
},
{
"address": "0xad4c0bf78ce754d5d4d045e37783e95834b900fe",
"topics": [
"0x5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f62",
"0x0000000000000000000000007798f2eb73c1dd8fa8086d780d5cf114a10f528e",
"0x0000000000000000000000000a3111263a39fa77d1a931a2aeb028314b73fb7e"
],
"data": "0x000000000000000000000000000000000000000000000000016345785d8a0000",
"blockHash": "0x6dabcf7ed4cf53e05054a4d671b19b7597740bce1042019ff31af68dde9c98a9",
"blockNumber": "0x34808ff",
"blockTimestamp": "0x6a7026be",
"transactionHash": "0x2ed866a63cf1fcc052779d3e3edc6bd6dc2e8378b23c23031f479c5fc0897313",
"transactionIndex": "0x0",
"logIndex": "0x2",
"removed": false
},
{
"address": "0x6c415c8567bf7c2761d623c41f57668ddbad939b",
"topics": [
"0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b",
"0x0000000000000000000000006610cb88385996ca4e121954f07ee3a0c95e5aa8"
],
"data": "0x",
"blockHash": "0x6dabcf7ed4cf53e05054a4d671b19b7597740bce1042019ff31af68dde9c98a9",
"blockNumber": "0x34808ff",
"blockTimestamp": "0x6a7026be",
"transactionHash": "0x2ed866a63cf1fcc052779d3e3edc6bd6dc2e8378b23c23031f479c5fc0897313",
"transactionIndex": "0x0",
"logIndex": "0x3",
"removed": false
}
]
}Arc API method that returns an array of all logs matching the filter with the given ID. Unlike
eth_getFilterChanges, this returns all matching logs, not just new ones since the last poll.
Get your own node endpoint todayStart for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.
Parameters
filterId— the filter ID returned frometh_newFilter
Response
result— array of log objects matching the filter:address— contract address that emitted the logtopics— array of indexed log parametersdata— non-indexed log parametersblockNumber— block number containing the logblockHash— hash of the blocktransactionHash— hash of the transaction that emitted the logtransactionIndex— index of the transaction in the blocklogIndex— position of the log in the blockremoved—trueif the log was removed due to a chain reorganization
eth_getFilterLogs code examples
const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);
// pathUSD token address
const PATHUSD = "0x20c0000000000000000000000000000000000000";
const TRANSFER_TOPIC = ethers.id("Transfer(address,address,uint256)");
const getFilterLogs = async () => {
// Create a log filter
const filterId = await provider.send("eth_newFilter", [{
address: PATHUSD,
topics: [TRANSFER_TOPIC],
fromBlock: "0x560000"
}]);
console.log(`Created filter: ${filterId}`);
// Get all matching logs
const logs = await provider.send("eth_getFilterLogs", [filterId]);
console.log(`Found ${logs.length} Transfer events`);
for (const log of logs.slice(0, 5)) {
console.log(`\nBlock ${parseInt(log.blockNumber, 16)}:`);
console.log(` Tx: ${log.transactionHash}`);
console.log(` From: 0x${log.topics[1].slice(26)}`);
console.log(` To: 0x${log.topics[2].slice(26)}`);
}
// Clean up
await provider.send("eth_uninstallFilter", [filterId]);
};
getFilterLogs();
from web3 import Web3
node_url = "CHAINSTACK_NODE_URL"
web3 = Web3(Web3.HTTPProvider(node_url))
# pathUSD token address
PATHUSD = "0x20c0000000000000000000000000000000000000"
TRANSFER_TOPIC = web3.keccak(text="Transfer(address,address,uint256)").hex()
# Create a log filter
filter_result = web3.provider.make_request("eth_newFilter", [{
"address": PATHUSD,
"topics": [TRANSFER_TOPIC],
"fromBlock": "0x560000"
}])
filter_id = filter_result['result']
print(f"Created filter: {filter_id}")
# Get all matching logs
logs_result = web3.provider.make_request("eth_getFilterLogs", [filter_id])
logs = logs_result['result']
print(f"Found {len(logs)} Transfer events")
for log in logs[:5]:
print(f"\nBlock {int(log['blockNumber'], 16)}:")
print(f" Tx: {log['transactionHash']}")
print(f" From: 0x{log['topics'][1][26:]}")
print(f" To: 0x{log['topics'][2][26:]}")
# Clean up
web3.provider.make_request("eth_uninstallFilter", [filter_id])
# First create a filter
curl -X POST "CHAINSTACK_NODE_URL" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_newFilter",
"params": [{"address": "0x20c0000000000000000000000000000000000000", "fromBlock": "0x560000"}],
"id": 1
}'
# Then get all logs using the returned filter ID
curl -X POST "CHAINSTACK_NODE_URL" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "eth_getFilterLogs", "params": ["0x1"], "id": 1}'
Last modified on August 3, 2026
Was this page helpful?
⌘I