Most of the catalog is queryable for Arc, from the blocks themselves to the daily activity of the projects that run on it.
The chainβs own record sits in the arc dataset: one row per block, transaction, log and internal call. Everything above that sits in the catalog, where the Arc rows are selected with chain_id = 'arc'.
The section mirrors the catalog itself: the core entities, then the market verticals with data on Arc.
| Layer | Since | What it holds |
|---|
| Raw | 2026-05 | Blocks, transactions, logs and internal calls. |
| Projects | 2026-05 | Daily Fees and Revenue for each tracked project, broken out to Arc. |
| Assets | 2026-05 | Every curated asset issued on Arc, with daily supply, holders and transfer activity. |
| Tokens | In progress | Every ERC-20 transfer, both sides of every balance move, holder balances at query time, and daily prices. |
| Accounts | In progress | Wallets and contracts labeled with the projects that own them. |
| Stablecoins | 2026-05 | Every stablecoin issued on Arc: supply, holders and transfers. |
| Real-world assets | 2026-09 | Tokenized stocks, funds and commodities issued on Arc, tracked against their underlying instruments. |
Filtering
chain_id reads arc wherever a catalog table has a chain column, so the same filter selects Arc 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_projects_by_chain and metrics_apps_by_chain. A bridge transfer has a chain on each end, named by 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.