Skip to main content

Overview

  • Dataset ID: 0201
  • Table: blockdb_evm.b0201_erc20_tokens_v1
  • Description: Catalog of ERC-20 token contracts (EIP-20).
  • Primary Key: contract_address
  • API: POST /evm/tokens/erc20

How we recognize ERC-20

We treat a contract as ERC-20 when it implements the EIP-20 Token Standard. Detection requires that the contract exposes and returns valid results for the three mandatory EIP-20 functions: totalSupply(), balanceOf(address), and allowance(address, address). We call these at the block where the contract is first seen and only add the address to this catalog if all three calls succeed and return decodable data. The optional EIP-20 metadata — name(), symbol(), and decimals() — are read when present and stored in the table; they may be null for tokens that do not implement them.

Columns

ColumnTypeDescription
contract_addressBYTEAAddress of the ERC-20 token contract (20 bytes).
block_numberBIGINTBlock of the log we attribute as the genesis/recognition point.
block_timeTIMESTAMPTZUTC timestamp of the block.
tx_indexINTEGERTransaction index within the block.
nameTEXTToken name from name() (optional in EIP-20).
symbolTEXTToken symbol from symbol() (optional in EIP-20).
decimalsSMALLINTDecimals from decimals() (optional in EIP-20; e.g. 8 = divide by 10^8).
_tracing_idBYTEATracing ID of this ERC-20 token record.
_parent_tracing_idsBYTEA[]Tracing IDs of the parent records leading to this ERC-20 token record.
_created_atTIMESTAMPTZRecord creation timestamp.
_updated_atTIMESTAMPTZRecord last update timestamp.

Use Cases

  • Token registry to normalize joins for swaps, transfers, pools, and prices
  • Amount scaling via decimals for analytics, PnL, and model features
  • App backends: display names/symbols and validate token addresses