Skip to main content
Most of the catalog is queryable for Optimism, from the blocks themselves to the daily activity of the projects that run on it. The chain’s own record sits in the optimism dataset: one row per block, transaction, log and internal call. Everything above that sits in the catalog, where the Optimism rows are selected with chain_id = 'optimism'. The section mirrors the catalog itself: the core entities, then the market verticals with data on Optimism.

Layers

LayerSinceWhat it holds
Raw2021-11Blocks, transactions, logs and internal calls.
Projects2021-11Daily Fees and Revenue for each tracked project, broken out to Optimism.
Apps2021-11Daily Trading volume, TVL, Fees and Revenue for each tracked app, broken out to Optimism.
Assets2021-11Every curated asset issued on Optimism, with daily supply, holders and transfer activity.
TokensIn progressEvery ERC-20 transfer, both sides of every balance move, holder balances at query time, and daily prices.
AccountsIn progressWallets and contracts labeled with the projects that own them.
Stablecoins2021-11Every stablecoin issued on Optimism: supply, holders and transfers.
Tokenized assets2022-04Tokenized stocks, funds and commodities issued on Optimism, tracked against their underlying instruments.
DEX2021-11Trading pools, their daily volume, value locked and fees.
LendingIn progressThe lending markets deployed on Optimism, the asset each one lends, and the lending facts.
Bridges2022-10Cross-chain transfers that left Optimism or arrived on it, matched leg to leg.

Filtering

chain_id reads optimism wherever a catalog table carries a chain, so the same filter selects Optimism everywhere. Some shapes ask for something else. The asset tables key on the asset or its deployment, so the chain comes from dimensions.asset_tokens, as the query below does. Project and app totals span every chain a project runs on, so one chain’s share reads from metrics_project_chains and metrics_app_chains. A bridge transfer has a chain on each end and carries source_chain_id and destination_chain_id.
Every table splits by day: the raw and event tables on block_timestamp, the daily tables on timestamp. Bound that column in every query; without a bound the query reads the whole table.