Cronos API polling method used to retrieve updates from a filter. A filter is an object used to track changes to the state of the blockchain.
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.
Filters can be created using one of the following methods:
After creating a filter using one of the available methods, the resulting filter ID can be used to fetch changes by calling the eth_getFilterChanges method.
Disclaimer
Note that the default interactive example in this page will not work as the filter will be expired.
To test
eth_getFilterChangesin this page, first create a new filter using one of the following:Then use the fresh filter ID as the parameter for
eth_getFilterChanges.
Parameters
- string— the filter ID of the filter for which you want to retrieve the changes
Response
- array— an array that represents the changes that have occurred on the blockchain since the last time the filter was polled:- For filters created with eth_newBlockFilter:- blockHash— the hashes of the new blocks since the last time the filter was polled.
 
- For filters created with eth_newPendingTransactionFilter:- transactionHash— the hashes identifying new pending transactions since the last time the filter was polled.
 
- For filters created with eth_newFilter, the following event logs:- address— the contract address from which the event originated.
- topics— an array of 32-byte data fields containing indexed event parameters.
- data— the non-indexed data that was emitted along with the event.
- blocknumber— the block number in which the event was included.- nullif it is pending.
- transactionhash— the hash of the transaction that triggered the event.- nullif pending.
- transactionindex— the integer index of the transaction within the block's list of transactions.- nullif it is pending.
- blockhash— the hash of the block in which the event was included.- nullif it is pending.
- logindex— the integer identifying the index of the event within the block's list of events.- nullif pending.
- removed— the boolean value indicating if the event was removed from the blockchain due to a chain reorganization.- Trueif the log was removed.- Falseif it is a valid log.
 
 
- For filters created with 
eth_getFilterChanges code examples
eth_getFilterChanges code examplesNote that the
web3.eth.filtermethods have been deprecated and replaced with theweb3.eth.subscribein web3.js. See web3.js subscriptions.
const ethers = require('ethers');
const NODE_URL = "CHAINSTACK_NODE_URL";
const provider = new ethers.JsonRpcProvider(NODE_URL);
async function getFilterChanges(filter) {
  try {
    const changes = await provider.send('eth_getFilterChanges', [filter]);
    console.log(changes); // Log the with the new data
  } catch (err) {
    console.error(err); // Handle errors that may occur
  }
}
const filterId =  '0x4e7ef166cd43f188b0f8f9e218966a8f' //'YOUR_FILTER_iD'
getFilterChanges(filterId)
from web3 import Web3  
node_url = "CHAINSTACK_NODE_URL" 
web3 = Web3(Web3.HTTPProvider(node_url))
def get_filtered_events(filter_id):
    try:
        filter_changes = web3.eth.get_filter_changes(filter_id)
        print(filter_changes) # the array of events that match the filter
    except Exception as e:
        print(e)
filter_id = '0x0'
get_filtered_events(filter_id)       
Use case
The eth_getFilterChanges method can poll a filter to periodically retrieve new data. You can, for example, create a blocks filter using eth_newBlockFilter  and periodically poll it to get new blocks.
Try the eth_getFilterChanges RPC method yourself
eth_getFilterChanges RPC method yourself