Skip to main content

eth_newFilter

Creates a filter object based on the given filter options, to notify when the state changes (logs). To check if the state has changed, call eth_getFilterChanges.

Valid for fifteen minutes

Filter IDs will be valid for up to fifteen minutes, and can polled by any connection using the same YOUR-API-KEY.

Parameters

A filter object with the fillowing keys and their values:

  • address: [optional] A contract address or a list of addresses from which logs should originate.
  • fromBlock: [optional, default is latest] A hexadecimal block number, or one of the string tags latest, earliest, pending, safe, or finalized. See the default block parameter.
  • toBlock: [optional, default is latest] A hexadecimal block number, or one of the string tags latest, earliest, pending, safe, or finalized. See the default block parameter.
  • topics: [optional] An array of 32 bytes DATA topics. Topics are order-dependent.

Specifying topic filters

Topics are order-dependent. A transaction with a log with topics [A, B] will be matched by the following topic filters:

  • []: Anything.
  • [A]: A in the first position, and anything after.
  • [null, B]: Anything in first position AND B in second position, and anything after.
  • [A, B]: A in the first position AND B in second position, and anything after.
  • [[A, B], [A, B]]: (A OR B) in first position AND (A OR B) in second position, and anything after.

Returns

filter ID: A hexadecimal denoting the newly created filter ID.

Example

Replace YOUR-API-KEY with an API key from your Infura dashboard.

Request

curl https://mainnet.infura.io/v3/YOUR-API-KEY \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_newFilter","params":[{"topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]}],"id":1}'

Response

{
"jsonrpc": "2.0",
"id": 1,
"result": "0x10ff114de54f0bfdbd7855f8a1dd7317e6500495a24f"
}