EVM Events

The core EVM blockchain data collection

Availability

This collection is available for Ethereum, Polygon, Arbitrum, Base and BSC.

Points-of-PresenceTables

eu-west-1

evm_events_ethereum_mainnet_v1 evm_events_arbitrum_mainnet_v1 evm_events_polygon_mainnet_v1 evm_events_base_mainnet_v1 evm_events_bsc_mainnet_v1

Mapping rules

The table is wide and sparse. Each event's input is stored in a column named after its index in the input list and its derived type.

The column's name for a given input is derived as such: input_index_value_type

We support events with up to 12 inputs.

The mapping rules used to derive an input type from an ABI type are specified in the table below.

ABI TypeDerived Type

address

address

string

string

bytes

string

bytes<M> where 0 < M <= 32

string

bool

uint8

uint8

uint8

uintX where 8 < X <= 32

uint32

uintX where 32 < X <= 64

uint64

uintX where 64 < X <= 256

uint256

int8

int8

intX where 8 < X <= 32

int32

intX where 32 < X <= 64

int64

intX where 64 < X <= 256

int256

address[]

address_array

string[]

string_array

bool[]

uint8_array

uint8[]

uint8_array

uintX[] where 8 < X <= 32

uint32_array

uintX[] where 32 < M <= 64

uint64_array

uintX[] where 64 < M <= 256

uint256_array

int8[]

int8_array

intX[] where 8 < X <= 32

int32_array

intX[] where 32 < X <= 64

int64_array

intX[] where 64 < X <= 256

int256_array

Here is how we store the various inputs of Transfer event:

Transfer(to address, from address, amount uint256))

  • to value is stored in the column input_0_value_address

  • from value is stored in the column input_1_value_address

  • amount is stored in the column input_2_value_uint256

Table Schema

Column NameColumn TypeDescription

chain_name

string

Name of the chain (ethereum, arbitrum, polygon, ...).

chain_network_name

string

name of the network (mainnet).

block_hash

string

Block hash encoded as binary string

block_number

uint64

Block height

block_index

uint32

Index of the event in the block

transaction_index

uint32

Index of the transaction in the block

transaction_status

uint32

Status of the transaction

timestamp

datetime

UNIX timestamp for when the block was collated

signature

string

Signature of the event as defined per the ABI spec (Deposit(address,uint256))

fullsig

string

Signature of the event as defined per the ABI spec with the addition of the indexed modifier (Transfer(address indexed,address indexed,uint256))

address

string

Address of the contract that emitted the event

removed

uint8

Removed field of the log

log_index

uint32

Index of the log in the block

input_index_type

string

ABI type of the input at index

input_index_value_type

Content if the input at index

Usage

The query below make use of the evm_events_ethereum_mainnet_v1 table to retrieve the number of transfers and the amount transferred for each day since the beginning of the year, for USDC (0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48).

select 
    date_trunc('day', timestamp) as t, 
    count(*) as count, 
    sum(input_2_value_uint256) as amount 
from evm_events_ethereum_mainnet_v1 
where 
    address = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' 
    and signature = 'Transfer(address,address,uint256)' 
    and timestamp >= '2023-01-01' 
group by t 
order by t desc

Last updated