Balances

Availability

This table is available for the Ethereum, Polygon, Arbitrum and Base.

Points-of-PresenceTables

eu-west-1

token_balances_ethereum_mainnet_v1 token_balances_polygon_mainnet_v1 token_balances_arbitrum_mainnet_v1 token_balances_base_mainnet_v1

Methodology

The table is built by the following process:

  1. Identify all Transfer events (shared by ERC-20 and ERC-721) emitted in a block

  2. Call the balanceOf method for each pair of (token, wallet) extracted from these events

Some smart contracts have very inefficient implementations of the balanceOf method. To ensure the timely execution of our indexer, we decided to put a hard cap of gas usage for every balanceOf call we make. The current value is 2000000 gas.

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

timestamp

datetime

UNIX timestamp for when the block was collated

wallet_address

string

The address of the wallet

token_address

string

The address of the token

value

uint256

The amount of token held

Usage

The below query makes use of the token_balances_ethereum_mainnet_v1 to list all the latest non-zero balances for every ERC-20 and ERC-721 token for the Binance 14 (0x28C6c06298d514Db089934071355E5743bf21d60) wallet.

select 
    token_address,
    argMax(value, block_number) as balance
from token_balances_ethereum_mainnet_v1
where wallet_address = '0x28C6c06298d514Db089934071355E5743bf21d60'
and value > 0
group by token_address
order by balance desc

Last updated