> ## Documentation Index
> Fetch the complete documentation index at: https://tokenterminal.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> To query the Token Terminal data catalog, read https://tokenterminal.com/docs/catalog/agents-manual.md first. It is the whole catalog as one page: table naming grammar, key columns, partition and cluster rules, units, additivity, and the tables that are documented but not served yet.
> Never query a catalog table on a time bound alone. Also filter its cluster key, which you read from INFORMATION_SCHEMA.COLUMNS; an empty result means the object is a view, whose pruning contract is on its page. Compute is billed to the caller's own Google Cloud project.

# EVM ecosystem

> Standardized blocks, transactions, logs and traces for every EVM chain.

EVM stands for Ethereum Virtual Machine, the engine that runs contracts on Ethereum. Every chain in this family runs that same engine, so they all keep the same kind of records and get the same four core tables: `blocks`, `transactions`, `logs` and `traces`.

The [Tables](#tables) section below lists the columns once for the whole family.

## Chains

<table>
  <thead>
    <tr>
      <th width="200">Chain</th>
      <th width="180">`chain_id`</th>
      <th width="90">blocks</th>
      <th width="120">transactions</th>
      <th width="90">logs</th>
      <th width="90">traces</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>Anime</td>
      <td>`anime`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>ApeChain</td>
      <td>`apechain`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Arbitrum</td>
      <td>`arbitrum`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Arc</td>
      <td>`arc`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Avalanche</td>
      <td>`avalanche`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Base</td>
      <td>`base`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Berachain</td>
      <td>`berachain`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Blast</td>
      <td>`blast`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>BNB Smart Chain</td>
      <td>`bsc`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>BOB</td>
      <td>`bob`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Boba Network</td>
      <td>`bobanetwork`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Celo</td>
      <td>`celo`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Ethereum</td>
      <td>`ethereum`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Flow EVM</td>
      <td>`flowevm`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Fraxtal</td>
      <td>`fraxtal`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Galactica</td>
      <td>`galactica`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Gnosis</td>
      <td>`gnosis`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Gravity Alpha</td>
      <td>`gravityalpha`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Hedera EVM</td>
      <td>`hederaevm`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✗</td>
    </tr>

    <tr>
      <td>Humanity</td>
      <td>`humanity`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>HyperEVM</td>
      <td>`hyperevm`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✗</td>
    </tr>

    <tr>
      <td>Immutable zkEVM</td>
      <td>`immutablezkevm`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Injective EVM</td>
      <td>`injectiveevm`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✗</td>
    </tr>

    <tr>
      <td>Ink</td>
      <td>`ink`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>IoTeX</td>
      <td>`iotex`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✗</td>
    </tr>

    <tr>
      <td>Katana</td>
      <td>`katananetwork`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Linea</td>
      <td>`linea`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Manta</td>
      <td>`manta`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>MegaETH</td>
      <td>`megaeth`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✗</td>
    </tr>

    <tr>
      <td>Metis</td>
      <td>`metis`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Mode</td>
      <td>`mode`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Monad</td>
      <td>`monad`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>opBNB</td>
      <td>`opbnb`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Optimism</td>
      <td>`optimism`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Plasma</td>
      <td>`plasma`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Polygon</td>
      <td>`polygon`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Robinhood Chain</td>
      <td>`robinhoodchain`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Rootstock</td>
      <td>`rootstock`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Scroll</td>
      <td>`scroll`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Sei EVM</td>
      <td>`seievm`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Settlus</td>
      <td>`settlus`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Shape</td>
      <td>`shape`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Soneium</td>
      <td>`soneium`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Sonic</td>
      <td>`sonic`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Story</td>
      <td>`story`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Superseed</td>
      <td>`superseed`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Tempo</td>
      <td>`tempo`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Unichain</td>
      <td>`unichain`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>Viction</td>
      <td>`viction`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>World Chain</td>
      <td>`worldchain`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>World Mobile Chain</td>
      <td>`worldmobilechain`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>XDC</td>
      <td>`xdc`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✗</td>
    </tr>

    <tr>
      <td>X Layer</td>
      <td>`xlayer`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>

    <tr>
      <td>ZKsync Era</td>
      <td>`zksyncera`</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
      <td>✓</td>
    </tr>
  </tbody>
</table>

## Tables

Every chain in the EVM family runs the Ethereum Virtual Machine, the same engine Ethereum runs, so every one of their datasets has the same four core tables with the same columns. The schemas apply to every chain listed in the [chain matrix](#chains).

A receipt is the chain's record of what a transaction cost and whether it worked. Those fields sit on the transaction's own row, named `receipt_*`.

> [!WARNING]
>
> Every table splits by day: `blocks` on `timestamp`, the rest on `block_timestamp`. Bound that column in every query; without a bound the query reads the whole table.

**blocks**

A block is a batch of transactions that the network agreed on and added to the chain as one unit. `blocks` contains one row per block, keyed on the block number.

<table>
  <thead>
    <tr>
      <th width="280">Column</th>
      <th width="130">Type</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`timestamp`</td>
      <td>TIMESTAMP</td>
      <td>The time the block was produced. Partition column.</td>
    </tr>

    <tr>
      <td>`number`</td>
      <td>INT64</td>
      <td>The block number.</td>
    </tr>

    <tr>
      <td>`block_hash`</td>
      <td>STRING</td>
      <td>The hash of the block.</td>
    </tr>

    <tr>
      <td>`transaction_count`</td>
      <td>INT64</td>
      <td>The number of transactions in the block.</td>
    </tr>

    <tr>
      <td>`gas_limit`</td>
      <td>INT64</td>
      <td>The maximum gas the block allows.</td>
    </tr>

    <tr>
      <td>`gas_used`</td>
      <td>INT64</td>
      <td>The gas consumed by all transactions in the block.</td>
    </tr>

    <tr>
      <td>`blob_gas_used`</td>
      <td>INT64</td>
      <td>The blob gas consumed by the block.</td>
    </tr>

    <tr>
      <td>`excess_blob_gas`</td>
      <td>INT64</td>
      <td>The running excess of blob gas above the target.</td>
    </tr>

    <tr>
      <td>`base_fee_per_gas`</td>
      <td>INT64</td>
      <td>The base fee per gas unit, in wei.</td>
    </tr>

    <tr>
      <td>`miner`</td>
      <td>STRING</td>
      <td>The address credited with producing the block.</td>
    </tr>

    <tr>
      <td>`parent_hash`</td>
      <td>STRING</td>
      <td>The hash of the parent block.</td>
    </tr>

    <tr>
      <td>`nonce`</td>
      <td>STRING</td>
      <td>The proof-of-work nonce.</td>
    </tr>

    <tr>
      <td>`sha3_uncles`</td>
      <td>STRING</td>
      <td>The hash of the block's uncle list.</td>
    </tr>

    <tr>
      <td>`logs_bloom`</td>
      <td>STRING</td>
      <td>The bloom filter over the block's logs.</td>
    </tr>

    <tr>
      <td>`transactions_root`</td>
      <td>STRING</td>
      <td>The root hash of the transaction trie.</td>
    </tr>

    <tr>
      <td>`state_root`</td>
      <td>STRING</td>
      <td>The root hash of the state trie.</td>
    </tr>

    <tr>
      <td>`receipts_root`</td>
      <td>STRING</td>
      <td>The root hash of the receipt trie.</td>
    </tr>

    <tr>
      <td>`difficulty`</td>
      <td>INT64</td>
      <td>The proof-of-work difficulty.</td>
    </tr>

    <tr>
      <td>`total_difficulty`</td>
      <td>NUMERIC</td>
      <td>The cumulative difficulty up to this block.</td>
    </tr>

    <tr>
      <td>`size`</td>
      <td>INT64</td>
      <td>The block size in bytes.</td>
    </tr>

    <tr>
      <td>`extra_data`</td>
      <td>STRING</td>
      <td>Arbitrary data included by the block producer.</td>
    </tr>

    <tr>
      <td>`parent_beacon_block_root`</td>
      <td>STRING</td>
      <td>The root of the parent beacon block.</td>
    </tr>

    <tr>
      <td>`mix_hash`</td>
      <td>STRING</td>
      <td>The mix hash from block sealing.</td>
    </tr>

    <tr>
      <td>`uncles`</td>
      <td>ARRAY\<STRING></td>
      <td>The hashes of the block's uncles.</td>
    </tr>

    <tr>
      <td>`withdrawals`</td>
      <td>ARRAY\<STRUCT></td>
      <td>Validator withdrawals credited in the block: address, amount, index and validator index.</td>
    </tr>

    <tr>
      <td>`withdrawals_root`</td>
      <td>STRING</td>
      <td>The root hash of the withdrawal list.</td>
    </tr>
  </tbody>
</table>

**Daily blocks and gas**

**Count blocks and gas used per day.** `blocks` splits on `timestamp`, not `block_timestamp`.

```sql theme={null}
select
    timestamp_trunc(timestamp, day) as day,
    count(*) as blocks,
    sum(gas_used) as gas_used
from `ethereum.blocks`
where timestamp >= timestamp('2026-08-16')
  and timestamp < timestamp('2026-08-23')
group by day
order by day
```

**transactions**

A transaction is one signed instruction an account sent to the chain: a payment, or a call into a contract. `transactions` contains one row per transaction, with its receipt fields on the same row.

<table>
  <thead>
    <tr>
      <th width="280">Column</th>
      <th width="130">Type</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`block_timestamp`</td>
      <td>TIMESTAMP</td>
      <td>The time of the block containing the transaction. Partition column.</td>
    </tr>

    <tr>
      <td>`block_number`</td>
      <td>INT64</td>
      <td>The number of the block containing the transaction.</td>
    </tr>

    <tr>
      <td>`transaction_hash`</td>
      <td>STRING</td>
      <td>The hash of the transaction.</td>
    </tr>

    <tr>
      <td>`transaction_index`</td>
      <td>INT64</td>
      <td>The position of the transaction within the block.</td>
    </tr>

    <tr>
      <td>`from_address`</td>
      <td>STRING</td>
      <td>The sending address.</td>
    </tr>

    <tr>
      <td>`to_address`</td>
      <td>STRING</td>
      <td>The receiving address. Null for contract creations.</td>
    </tr>

    <tr>
      <td>`value`</td>
      <td>NUMERIC</td>
      <td>The native value transferred, in wei.</td>
    </tr>

    <tr>
      <td>`gas`</td>
      <td>INT64</td>
      <td>The gas limit set by the sender.</td>
    </tr>

    <tr>
      <td>`gas_price`</td>
      <td>INT64</td>
      <td>The gas price, in wei.</td>
    </tr>

    <tr>
      <td>`nonce`</td>
      <td>INT64</td>
      <td>The sender's transaction count at submission.</td>
    </tr>

    <tr>
      <td>`input`</td>
      <td>STRING</td>
      <td>The data sent with the transaction, saying which contract function to run and with what arguments.</td>
    </tr>

    <tr>
      <td>`block_hash`</td>
      <td>STRING</td>
      <td>The hash of the containing block.</td>
    </tr>

    <tr>
      <td>`max_fee_per_gas`</td>
      <td>INT64</td>
      <td>The EIP-1559 fee cap per gas unit.</td>
    </tr>

    <tr>
      <td>`max_priority_fee_per_gas`</td>
      <td>INT64</td>
      <td>The EIP-1559 priority fee per gas unit.</td>
    </tr>

    <tr>
      <td>`transaction_type`</td>
      <td>INT64</td>
      <td>The transaction type identifier.</td>
    </tr>

    <tr>
      <td>`receipt_type`</td>
      <td>INT64</td>
      <td>The type identifier recorded on the receipt.</td>
    </tr>

    <tr>
      <td>`receipt_effective_gas_price`</td>
      <td>INT64</td>
      <td>The gas price paid, in wei.</td>
    </tr>

    <tr>
      <td>`receipt_blob_gas_price`</td>
      <td>INT64</td>
      <td>The blob gas price paid.</td>
    </tr>

    <tr>
      <td>`receipt_cumulative_gas_used`</td>
      <td>INT64</td>
      <td>The gas used in the block up to and including this transaction.</td>
    </tr>

    <tr>
      <td>`receipt_gas_used`</td>
      <td>INT64</td>
      <td>The gas used by this transaction.</td>
    </tr>

    <tr>
      <td>`receipt_blob_gas_used`</td>
      <td>INT64</td>
      <td>The blob gas used by this transaction.</td>
    </tr>

    <tr>
      <td>`receipt_contract_address`</td>
      <td>STRING</td>
      <td>The address of the contract created, when the transaction deploys one.</td>
    </tr>

    <tr>
      <td>`receipt_status`</td>
      <td>BOOL</td>
      <td>Whether the transaction succeeded.</td>
    </tr>

    <tr>
      <td>`receipt_logs_bloom`</td>
      <td>STRING</td>
      <td>The bloom filter over the transaction's logs.</td>
    </tr>

    <tr>
      <td>`receipt_transaction_index`</td>
      <td>INT64</td>
      <td>The transaction index recorded on the receipt.</td>
    </tr>

    <tr>
      <td>`v`</td>
      <td>STRING</td>
      <td>The signature recovery value.</td>
    </tr>

    <tr>
      <td>`r`</td>
      <td>STRING</td>
      <td>The signature r value.</td>
    </tr>

    <tr>
      <td>`s`</td>
      <td>STRING</td>
      <td>The signature s value.</td>
    </tr>

    <tr>
      <td>`chain_id`</td>
      <td>INT64</td>
      <td>The chain id the transaction was signed for.</td>
    </tr>

    <tr>
      <td>`blob_versioned_hashes`</td>
      <td>ARRAY\<STRING></td>
      <td>The versioned hashes of attached blobs.</td>
    </tr>

    <tr>
      <td>`max_fee_per_blob_gas`</td>
      <td>INT64</td>
      <td>The blob gas fee cap.</td>
    </tr>

    <tr>
      <td>`access_list`</td>
      <td>ARRAY\<STRUCT></td>
      <td>The declared access list: address and storage keys.</td>
    </tr>
  </tbody>
</table>

**Daily success rate**

**Count daily transactions and their success rate over one week.**

```sql theme={null}
select
    timestamp_trunc(block_timestamp, day) as day,
    count(*) as transactions,
    countif(receipt_status) as successful
from `ethereum.transactions`
where block_timestamp >= timestamp('2026-08-16')
  and block_timestamp < timestamp('2026-08-23')
group by day
order by day
```

**logs**

A log is a note a contract writes when something happens inside it: a transfer, a swap, a deposit. Each contract decides what it announces this way, so logs are the main record of what apps did. `logs` contains one row per log.

<table>
  <thead>
    <tr>
      <th width="280">Column</th>
      <th width="130">Type</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`block_timestamp`</td>
      <td>TIMESTAMP</td>
      <td>The time of the block containing the log. Partition column.</td>
    </tr>

    <tr>
      <td>`block_number`</td>
      <td>INT64</td>
      <td>The number of the block containing the log.</td>
    </tr>

    <tr>
      <td>`transaction_hash`</td>
      <td>STRING</td>
      <td>The hash of the transaction that emitted the log.</td>
    </tr>

    <tr>
      <td>`log_index`</td>
      <td>INT64</td>
      <td>The position of the log within the block.</td>
    </tr>

    <tr>
      <td>`address`</td>
      <td>STRING</td>
      <td>The contract that emitted the log.</td>
    </tr>

    <tr>
      <td>`data`</td>
      <td>STRING</td>
      <td>The rest of the log's contents, the part that is not searchable.</td>
    </tr>

    <tr>
      <td>`topics`</td>
      <td>ARRAY\<STRING></td>
      <td>The searchable fields of the log. The first one identifies which event this is.</td>
    </tr>

    <tr>
      <td>`removed`</td>
      <td>BOOL</td>
      <td>Whether the log was removed by a reorganization.</td>
    </tr>

    <tr>
      <td>`block_hash`</td>
      <td>STRING</td>
      <td>The hash of the containing block.</td>
    </tr>

    <tr>
      <td>`transaction_index`</td>
      <td>INT64</td>
      <td>The position of the emitting transaction within the block.</td>
    </tr>
  </tbody>
</table>

**One contract's logs**

**Count the logs one contract emitted on a single day.** `address` is the contract that wrote the log.

```sql theme={null}
select
    count(*) as logs,
    count(distinct transaction_hash) as transactions
from `ethereum.logs`
where block_timestamp >= timestamp('2026-08-20')
  and block_timestamp < timestamp('2026-08-21')
  and address = '0xdac17f958d2ee523a2206206994597c13d831ec7'
```

**traces**

A trace is a record of one internal step a transaction took, including the calls a contract makes to other contracts. A single transaction usually produces many of them. `traces` contains one row per step: a call, a contract creation, a contract self-destruct, or a reward.

<table>
  <thead>
    <tr>
      <th width="280">Column</th>
      <th width="130">Type</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`from_address`</td>
      <td>STRING</td>
      <td>The calling address.</td>
    </tr>

    <tr>
      <td>`gas`</td>
      <td>INT64</td>
      <td>The gas available to the call.</td>
    </tr>

    <tr>
      <td>`gas_used`</td>
      <td>INT64</td>
      <td>The gas used by the call.</td>
    </tr>

    <tr>
      <td>`to_address`</td>
      <td>STRING</td>
      <td>The called address.</td>
    </tr>

    <tr>
      <td>`input`</td>
      <td>STRING</td>
      <td>The call data.</td>
    </tr>

    <tr>
      <td>`value`</td>
      <td>FLOAT64</td>
      <td>The native value transferred by the call, in wei.</td>
    </tr>

    <tr>
      <td>`trace_type`</td>
      <td>STRING</td>
      <td>The trace type: call, create, suicide or reward.</td>
    </tr>

    <tr>
      <td>`transaction_hash`</td>
      <td>STRING</td>
      <td>The hash of the containing transaction.</td>
    </tr>

    <tr>
      <td>`block_timestamp`</td>
      <td>TIMESTAMP</td>
      <td>The time of the block containing the trace. Partition column.</td>
    </tr>

    <tr>
      <td>`block_number`</td>
      <td>INT64</td>
      <td>The number of the containing block.</td>
    </tr>

    <tr>
      <td>`trace_address`</td>
      <td>STRING</td>
      <td>The position of the call in the call tree.</td>
    </tr>

    <tr>
      <td>`output`</td>
      <td>STRING</td>
      <td>The return data of the call.</td>
    </tr>

    <tr>
      <td>`error`</td>
      <td>STRING</td>
      <td>The error raised by the call, when it failed.</td>
    </tr>

    <tr>
      <td>`revert_reason`</td>
      <td>STRING</td>
      <td>The revert reason string, when one was returned.</td>
    </tr>

    <tr>
      <td>`transaction_index`</td>
      <td>INT64</td>
      <td>The position of the containing transaction within the block.</td>
    </tr>

    <tr>
      <td>`trace_id`</td>
      <td>STRING</td>
      <td>The unique identifier of the trace.</td>
    </tr>

    <tr>
      <td>`status`</td>
      <td>BOOL</td>
      <td>Whether the call succeeded.</td>
    </tr>
  </tbody>
</table>

The chains marked ✓ for `traces` in the [chain matrix](#chains) have this table.

**Calls into one contract**

**Count the internal calls into one contract on a single day.** `to_address` is the contract being called, whether directly or from another contract.

```sql theme={null}
select
    count(*) as calls,
    count(distinct transaction_hash) as transactions
from `ethereum.traces`
where block_timestamp >= timestamp('2026-08-20')
  and block_timestamp < timestamp('2026-08-21')
  and to_address = '0xdac17f958d2ee523a2206206994597c13d831ec7'
```

## Exceptions

* Ethereum adds two tables to the four, `beacon_validators` and `uncle_blocks`, documented on its [Raw](https://tokenterminal.com/docs/catalog/chain-verticals/evm/ethereum/raw.md) page.
* HyperEVM publishes its receipt fields as a separate `receipts` table; every other chain keeps them on the transaction row.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.