POST
/
6df1a1b3061097e66349993a96b8e535
curl --request POST \
  --url https://aurora-mainnet.core.chainstack.com/6df1a1b3061097e66349993a96b8e535 \
  --header 'Content-Type: application/json' \
  --data '{
  "method": "eth_newFilter",
  "params": [
    {
      "fromBlock": "latest",
      "address": "0xC9BdeEd33CD01541e1eeD10f90519d2C06Fe3feB",
      "topics": [
        "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
      ]
    }
  ],
  "id": 1,
  "jsonrpc": "2.0"
}'
{
  "jsonrpc": "<string>",
  "id": 123,
  "result": "<string>"
}

Aurora API method that generates a filter object based on the filter parameters. It returns a filter ID, which can be used to retrieve the filter results using the eth_getFilterChanges method. By creating a filter for specific events, developers can receive notifications when those events occur and use them to trigger actions in their applications.

Get you own node endpoint today

Start 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

  • object — the filter parameters:
    • fromBlock — (optional, default: latest) integer that specifies the starting block number from which the logs should be fetched.
    • toBlock — (optional, default: latest) integer that specifies the ending block number until which the logs should be fetched.
    • address — (optional) the contract address from which the logs should be fetched. It can be a single address or an array of addresses.
    • topics — (optional) an array of DATA topics. The event topics for which the logs should be fetched. It can be a single topic or an array of topics.
    • blockhash — (optional) the hash of the specific block. Limits logs to a specific block with a 32-byte hash value. It takes precedence over fromBlock and toBlock.

Possible tags forfromBlockandtoBlock

  • latest — the most recent block in the blockchain and the current state of the blockchain at the most recent block.
  • safe — the block that received justification from the beacon chain. Although this block could be involved in a chain reorganization, it would necessitate either a coordinated attack by the majority of validators or an instance of severe propagation latency.
  • finalized — the block accepted as canonical by more than 2/3 of the validators. A chain reorganization is extremely unlikely, and it would require at least 1/3 of the staked ETH to be burned.
  • earliest — the earliest available or genesis block.
  • pending — the pending state and transactions block. The current state of transactions that have been broadcast to the network but have not yet been included in a block.

See the default block parameter and How The Merge Impacts Ethereum’s Application Layer.

Response

  • result — a hexadecimal string representing the ID of the newly created filter

The filters created are stored on the blockchain client instance. The filter is automatically deleted if not polled within a certain time (5 minutes by default).

Use the following methods with the filter ID:

eth_newFilter code examples

Note that the web3.eth.filter methods have been deprecated and replaced with the web3.eth.subscribe in web3.js. See web3.js subscriptions.

const ethers = require('ethers');

const NODE_URL = "CHAINSTACK_NODE_URL";

const provider = new ethers.JsonRpcProvider(NODE_URL);



const filter = {

  toBlock: 'latest',

  address: '0xC9BdeEd33CD01541e1eeD10f90519d2C06Fe3feB',

  topics: ['0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef']

};



const createFilter = async () => {

  try {

    const filterId = await provider.send('eth_newFilter', [filter]);

    console.log(filterId); // the filter ID returned by eth_newFilter

    return filterId

  } catch (error) {

    console.log(error);

  }

};



createFilter();

Use case

You can use eth_newFilter to create a filter for a specific action on a smart contract, for example, to monitor the transfer transactions from the Wrapped ETH token.

The idea is to create a filter using the eth_newFilter method to monitor an ERC-20 smart contract, WCRO in this case.

Body

application/json
method
string
default:eth_newFilter
params
object[]
id
integer
default:1
jsonrpc
string
default:2.0

Response

200 - application/json
The filter ID.
jsonrpc
string
id
integer
result
string