eth_getLogs
Returns an array of all logs matching a given filter object.

Parameters

Params - a string array containing (required):
  • Object - The filter options:
    • fromBlock(string, optional). QUANTITY|TAG - (optional, default: "latest") integer block number, or "latest" for the last mined block or "pending", "earliest" for not yet mined transactions.
    • toBlock(string, optional). QUANTITY|TAG - (optional, default: "latest") integer block number, or "latest" for the last mined block or "pending", "earliest" for not yet mined transactions.
    • address(array of hex string, optional). DATA|Array, 20 Bytes - (optional) contract address or a list of addresses from which logs should originate.
    • topics(array of hex string, optional). Array of DATA, - (optional) array of 32 Bytes DATA topics. Topics are order-dependent. Each topic can also be an array of DATA with “or” options.
    • blockhash(hex string, optional). DATA, 32 Bytes - (optional, future) with the addition of EIP-234, blockHash will be a new filter option which restricts the logs returned to the single block with the 32-byte hash blockHash. Using blockHash is equivalent to fromBlock = toBlock = the block number with hash blockHash. If blockHash is present in in the filter criteria, then neither fromBlock nor toBlock are allowed.

Returns

Array - Array of log objects, or an empty array if nothing has changed since last poll.
  • For filters created with eth_newBlockFilter the return are block hashes (DATA(hex string), 32 Bytes), e.g. ["0x3454645634534..."].
  • For filters created with eth_newPendingTransactionFilter the return are transaction hashes (DATA(hex string), 32 Bytes), e.g. ["0x6345343454645..."].
  • For filters created with eth_newFilter logs are objects with following params:
    • removed(boolean). TAG - true when the log was removed, due to a chain reorganization. false if its a valid log.
    • logIndex(hex string). QUANTITY - integer of the log index position in the block. null when its pending log.
    • transactionIndex(hex string). QUANTITY - integer of the transactions index position log was created from. null when its pending log.
    • transactionHash(hex string). DATA, 32 Bytes - hash of the transactions this log was created from. null when its pending log.
    • blockHash(hex string). DATA, 32 Bytes - hash of the block where this log was in. null when its pending. null when its pending log.
    • blockNumber(hex string). QUANTITY - the block number where this log was in. null when its pending. null when its pending log.
    • address(hex string). DATA, 20 Bytes - address from which this log originated.
    • data(hex string). DATA - contains one or more 32 Bytes non-indexed arguments of the log.
    • topics(array of (hex string)). Array of DATA - Array of 0 to 4 32 Bytes DATA of indexed log arguments. (In solidity: The first topic is the hash of the signature of the event (e.g. Deposit(address,bytes32,uint256)), except you declared the event with the anonymous specifier).

Example

Request

curl https://api.blockvision.org/v1/<api key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getLogs",
"params": [
{
"topics": [
"0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b"
]
}
],
"id": 1
}'

Result

{
"id": 1,
"jsonrpc": "2.0",
"result": [
{
"logIndex": "0x1",
// 1
"blockNumber": "0x1b4",
// 436
"blockHash": "0x8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcfdf829c5a142f1fccd7d",
"transactionHash": "0xdf829c5a142f1fccd7d8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcf",
"transactionIndex": "0x0",
// 0
"address": "0x16c5785ac562ff41e2dcfdf829c5a142f1fccd7d",
"data": "0x0000000000000000000000000000000000000000000000000000000000000000",
"topics": [
"0x59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a5"
]
},
{
...
}
]
}