Token Metadata

ERC-20 contract registry mapping addresses to symbols, names, and decimals across 5 chains.

5 tables — one per chain.

TableChain
agent.ethereum_erc20Ethereum
agent.base_erc20Base
agent.arbitrum_erc20Arbitrum
agent.bsc_erc20BSC
agent.robinhood_token_metadataRobinhood Chain (adds metadata_source, see below)

Schema

The four *_erc20 tables share this schema.

Engine: MergeTree | ORDER BY: contract_address

ColumnTypeDescription
blockchainStringChain name
contract_addressStringLowercase hex. Primary key for joins.
symbolNullable(String)Token ticker (e.g., USDC, WETH). Not unique — multiple contracts can share a symbol.
nameNullable(String)Full token name
decimalsNullable(Int64)Typically 18 (ETH-like) or 6 (USDC/USDT)

Good to Know

  • Small dimension tables — safe to use in subqueries or JOINs without filtering.
  • Always join on contract_address, never on symbol (symbols are not unique).
  • EVM chains only — Tron, HyperEVM, and Tempo don't have a separate token metadata table.
  • Reflects deployment-time metadata — tokens that rebrand won't show new names.

Robinhood Chain Token Metadata Schema

agent.robinhood_token_metadata has the same five columns plus metadata_source.

ColumnTypeDescription
blockchainStringChain name
contract_addressStringToken contract
symbolNullable(String)Token symbol
nameNullable(String)Token name
decimalsNullable(Int64)Token decimals
metadata_sourceStringWhere the metadata came from (e.g., quicknode_eth_call, native_weth_proxy)
AskSurf (Surf AI) — Market Intelligence for AI Agents