Skip to main content

Overview

Our balances models are broadly classified the following:

Blockchain Coverage

We support balances data for the following blockchains:

EVM-Compatible Blockchains

We currently support fungible balances for the following evm-compatible blockchains:

Daily Balances

Use Cases:
  • Track the portfolio balance of wallet over time
  • Track the number of holders of an asset over time
  • Identify the distribution of assets across wallets over time

Sample Query: Number of USDC Holders holding >100 USDC daily

Sample Query: Portfolio balance of a wallet over time

Latest Balances

Use Cases:
  • Track the latest balance of a group of addresses across different blockchains
  • Track the distribution of a particular token address currently

Sample Query: Portfolio balance of a wallet currently

Balances at Any Timestamp

The sql_table_<chain>_get_balances_at_timestamp function calculates precise token balances for any list of addresses at a specific point in time. It combines the daily balance snapshot with intraday transaction changes using a Base + Delta approach: Final Balance = EOD Snapshot + Sum(Credits - Debits since snapshot) This is useful when daily snapshots are not granular enough and you need balances at a specific hour or minute.

Usage

Example: Portfolio balance at a specific time

Return Columns

Supported Chains

The function is available for all chains that have both fungible_balances_daily and fungible_credit_debit tables:
For EVM chains, input addresses are automatically lowercased. For non-EVM chains (SUI, Aptos), addresses are used as-is.

Granular Balances

  • In fungible_balances/balances, balances model, each entry corresponds to a specific event/transaction that causes a balance change in a particular asset at the block level.
  • This means a new entry is only created when a transaction alters an asset’s balance at the block level.
  • For example, if a wallet receives 1 ETH in 2015 and experiences no further changes until yesterday, the model will have two entries: one for the initial receipt in 2015 and another for the recent change
Use Cases:
  • Track granular, block-level changes of address and token address pairs whenever there are changes in the balance of assets