Most of the catalog is queryable for X Layer, from the blocks themselves to the daily activity of the projects that run on it.
The chainβs own record sits in the xlayer dataset: one row per block, transaction, log and internal call. Everything above that sits in the catalog, where the X Layer rows are selected with chain_id = 'xlayer'.
The section mirrors the catalog itself: the core entities, then the market verticals with data on X Layer.
| Layer | Since | What it holds |
|---|
| Raw | 2024-03 | Blocks, transactions, logs and internal calls. |
| Projects | 2025-10 | Daily trading and bridge volume for each tracked app and project, broken out to X Layer. |
| Assets | 2024-03 | Every curated asset issued on X Layer, 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 | 2024-03 | Every stablecoin issued on X Layer: supply, holders and transfers. |
| Bridges | 2025-10 | Cross-chain transfers that left X Layer or arrived on it, matched leg to leg. |
Filtering
chain_id reads xlayer in every catalog table that mentions a chain, so the same filter selects X Layer everywhere. Bridge transfers are the one exception: a transfer has a chain on each end and carries source_chain_id and destination_chain_id instead.
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.