eth_newFilter
curl --request POST \
--url https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/ \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"method": "eth_newFilter",
"params": [
{
"fromBlock": "latest",
"toBlock": "latest",
"address": "0x20c0000000000000000000000000000000000000",
"topics": []
}
],
"id": 1
}
'import requests
url = "https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/"
payload = {
"jsonrpc": "2.0",
"method": "eth_newFilter",
"params": [
{
"fromBlock": "latest",
"toBlock": "latest",
"address": "0x20c0000000000000000000000000000000000000",
"topics": []
}
],
"id": 1
}
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({
jsonrpc: '2.0',
method: 'eth_newFilter',
params: [
{
fromBlock: 'latest',
toBlock: 'latest',
address: '0x20c0000000000000000000000000000000000000',
topics: []
}
],
id: 1
})
};
fetch('https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/', 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://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/",
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([
'jsonrpc' => '2.0',
'method' => 'eth_newFilter',
'params' => [
[
'fromBlock' => 'latest',
'toBlock' => 'latest',
'address' => '0x20c0000000000000000000000000000000000000',
'topics' => [
]
]
],
'id' => 1
]),
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://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_newFilter\",\n \"params\": [\n {\n \"fromBlock\": \"latest\",\n \"toBlock\": \"latest\",\n \"address\": \"0x20c0000000000000000000000000000000000000\",\n \"topics\": []\n }\n ],\n \"id\": 1\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://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_newFilter\",\n \"params\": [\n {\n \"fromBlock\": \"latest\",\n \"toBlock\": \"latest\",\n \"address\": \"0x20c0000000000000000000000000000000000000\",\n \"topics\": []\n }\n ],\n \"id\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/")
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 \"jsonrpc\": \"2.0\",\n \"method\": \"eth_newFilter\",\n \"params\": [\n {\n \"fromBlock\": \"latest\",\n \"toBlock\": \"latest\",\n \"address\": \"0x20c0000000000000000000000000000000000000\",\n \"topics\": []\n }\n ],\n \"id\": 1\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": "<string>"
}Tempo node API
eth_newFilter | Tempo
Tempo API method that creates a new filter for logs matching specified criteria. The filter can be polled with eth_getFilterChanges.
POST
/
eth_newFilter
curl --request POST \
--url https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/ \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"method": "eth_newFilter",
"params": [
{
"fromBlock": "latest",
"toBlock": "latest",
"address": "0x20c0000000000000000000000000000000000000",
"topics": []
}
],
"id": 1
}
'import requests
url = "https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/"
payload = {
"jsonrpc": "2.0",
"method": "eth_newFilter",
"params": [
{
"fromBlock": "latest",
"toBlock": "latest",
"address": "0x20c0000000000000000000000000000000000000",
"topics": []
}
],
"id": 1
}
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({
jsonrpc: '2.0',
method: 'eth_newFilter',
params: [
{
fromBlock: 'latest',
toBlock: 'latest',
address: '0x20c0000000000000000000000000000000000000',
topics: []
}
],
id: 1
})
};
fetch('https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/', 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://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/",
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([
'jsonrpc' => '2.0',
'method' => 'eth_newFilter',
'params' => [
[
'fromBlock' => 'latest',
'toBlock' => 'latest',
'address' => '0x20c0000000000000000000000000000000000000',
'topics' => [
]
]
],
'id' => 1
]),
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://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_newFilter\",\n \"params\": [\n {\n \"fromBlock\": \"latest\",\n \"toBlock\": \"latest\",\n \"address\": \"0x20c0000000000000000000000000000000000000\",\n \"topics\": []\n }\n ],\n \"id\": 1\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://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_newFilter\",\n \"params\": [\n {\n \"fromBlock\": \"latest\",\n \"toBlock\": \"latest\",\n \"address\": \"0x20c0000000000000000000000000000000000000\",\n \"topics\": []\n }\n ],\n \"id\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tempo-mainnet.core.chainstack.com/c3ce2925b51f1ed18719fe8a23bbdccf/")
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 \"jsonrpc\": \"2.0\",\n \"method\": \"eth_newFilter\",\n \"params\": [\n {\n \"fromBlock\": \"latest\",\n \"toBlock\": \"latest\",\n \"address\": \"0x20c0000000000000000000000000000000000000\",\n \"topics\": []\n }\n ],\n \"id\": 1\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "<string>",
"id": 123,
"result": "<string>"
}Tempo API method that creates a new filter for logs matching specified criteria. The filter can be polled with
eth_getFilterChanges.
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
filterObject— the filter object:fromBlock— (optional) block number (hex) or tag to start fromtoBlock— (optional) block number (hex) or tag to end ataddress— (optional) contract address or array of addressestopics— (optional) array of topic filters
Response
result— the filter ID
eth_newFilter code examples
const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);
const PATHUSD = "0x20c0000000000000000000000000000000000000";
const createFilter = async () => {
const filterId = await provider.send("eth_newFilter", [{
address: PATHUSD,
fromBlock: "latest",
toBlock: "latest"
}]);
console.log(`Filter ID: ${filterId}`);
};
createFilter();
from web3 import Web3
node_url = "CHAINSTACK_NODE_URL"
web3 = Web3(Web3.HTTPProvider(node_url))
PATHUSD = "0x20c0000000000000000000000000000000000000"
filter_id = web3.eth.filter({
'address': PATHUSD,
'fromBlock': 'latest'
})
print(f"Filter ID: {filter_id.filter_id}")
curl -X POST "CHAINSTACK_NODE_URL" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_newFilter",
"params": [{"address": "0x20c0000000000000000000000000000000000000", "fromBlock": "latest"}],
"id": 1
}'
Last modified on June 22, 2026
Was this page helpful?
⌘I