Skip to main content

Total ERC-20 Accounts

Total ERC-20 Accounts represents the cumulative number of unique EVM addresses that have received an ERC-20 token on Hedera, as of the end of each period.

Hedera Data Access

To access this Hedera network statistic (and others) via Hgraph's GraphQL & REST APIs, create a free account at app.hgraph.com.

Hedera Stat Name: total_erc20_accounts

Methodology

Qualifying Receipts

An address is counted once it has received an ERC-20 token. A transfer row qualifies when all of the following hold:

  • Contract Type: The token is classified as ERC-20 by the indexer (contract_type = 'ERC_20').
  • Transfer Type: The event is a transfer or a mint. Burns are not receipts and are excluded.
  • Recipient Present: receiver_evm_address is not null.
  • Not the Zero Address: The recipient is not 0x0000000000000000000000000000000000000000, which represents a burn.

Recipients are counted by EVM address rather than Hedera account ID, because the majority of ERC-20 recipients on Hedera are EVM addresses with no associated Hedera account. Counting by account ID would silently discard them.

Processing Logic

  • First Receipt: For each address, the earliest qualifying consensus_timestamp is retained. Computing this across all history — not only within the requested window — is what allows an address that received tokens both before and during the window to be counted exactly once.
  • Baseline: Addresses whose first receipt predates start_timestamp are counted as a single baseline figure.
  • Per-Period Additions: Addresses whose first receipt falls inside the window are grouped by the period containing that first receipt.
  • Rolling Total: Each period's value is the baseline plus the running sum of new addresses up to and including that period, producing a monotonically non-decreasing series.

Interpretation

This is an approximation of holders. An address is counted from its first receipt onward and is never removed, even if it later transfers its entire balance away. The metric therefore answers "how many addresses have ever held an ERC-20 token" rather than "how many hold one right now."

GraphQL API Examples

Test out these queries using our developer playground.

Fetch current total ERC-20 accounts (day)

query TotalErc20AccountsDay {
ecosystem_metric(
order_by: { end_date: desc_nulls_last }
limit: 1
where: { name: { _eq: "total_erc20_accounts" }, period: { _eq: "day" } }
) {
total
end_date
}
}

Fetch monthly total ERC-20 accounts for 1 year (timeseries)

query TotalErc20AccountsMonthly {
ecosystem_metric(
order_by: { end_date: desc_nulls_last }
limit: 12
where: { name: { _eq: "total_erc20_accounts" }, period: { _eq: "month" } }
) {
total
end_date
}
}

Available Time Periods

The period field supports the following values:

  • day
  • week
  • month
  • quarter
  • year

SQL Implementation

Below is a link to the Hedera Stats GitHub repository. The repo contains the SQL function that calculates the Total ERC-20 Accounts statistic outlined in this methodology.

SQL Function: ecosystem.total_erc20_accounts

View GitHub Repository →

Dependencies

  • Hedera mirror node
  • ERC token indexer (erc.token_transfer)