> ## 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.

# Stellar

> Standardized Stellar tables from September 2015.

`stellar` holds the standardized Stellar tables. Stellar calls its blocks ledgers, and they land in `blocks`. A transaction here is a wrapper: what it does sits in a list of operations. So transactions land in `transactions`, the operations inside them in `operations`, and what each operation changed in `effects`.

Above the raw tables sits the rest of the catalog, and Stellar shows up in two parts of it: the tokenized assets issued on it, and the list of tokens we know about with their daily prices. Tokenized funds and stablecoins make up most of the asset side.

The market pages go deeper on each of these. [Real-world assets](https://tokenterminal.com/docs/catalog/real-world-assets/index.md) and [Stablecoins](https://tokenterminal.com/docs/catalog/stablecoins/index.md) cover the tokenized assets and their daily tables. [Tokens](https://tokenterminal.com/docs/catalog/tokens/index.md) covers the token list and the daily price table.

## Tables

<table>
  <thead>
    <tr>
      <th width="150">Table</th>
      <th width="90">Since</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`blocks`</td>
      <td>2015-09</td>
      <td>One row per ledger, with transaction counts, fee pool and total lumens.</td>
    </tr>

    <tr>
      <td>`transactions`</td>
      <td>2015-09</td>
      <td>One row per transaction, with its fees, the account that sent it, and the original encoded form.</td>
    </tr>

    <tr>
      <td>`operations`</td>
      <td>2015-09</td>
      <td>One row per operation, typed by `operation_type`.</td>
    </tr>

    <tr>
      <td>`effects`</td>
      <td>2015-09</td>
      <td>One row per state change an operation produced.</td>
    </tr>
  </tbody>
</table>

Ledgers are keyed on `number`, transactions on `transaction_hash`, operations on `operation_id` and effects on `effect_id`.

The tables get finer as you go down: a transaction holds one or more operations, and an operation produces any number of effects, including none. For payments and trades, start from `operations` and filter on `operation_type`. Use `effects` when the question is who was credited and who was debited.

## Sample queries

**Operations by type**

**Count operations by type on one day.**

```sql theme={null}
select
    operation_type,
    count(*) as operations
from `stellar.operations`
where block_timestamp >= timestamp('2026-08-20')
  and block_timestamp < timestamp('2026-08-21')
group by operation_type
order by operations desc
limit 20
```

**Tokenized assets ranked**

**Rank the tokenized assets issued on Stellar by circulating market cap.**

```sql theme={null}
select
    assets.symbol,
    assets.asset_type,
    daily.market_cap_circulating
from `metrics_asset_tokens.market_cap_circulating_daily` as daily
join `dimensions.asset_tokens` as deployments
    using (asset_token_id)
join `dimensions.assets` as assets
    using (asset_id)
where daily.timestamp >= timestamp('2026-08-22')
  and daily.timestamp < timestamp('2026-08-23')
  and deployments.chain_id = 'stellar'
order by daily.market_cap_circulating desc
limit 20
```

**Priced tokens**

**List the Stellar tokens that had a daily price over one week.**

```sql theme={null}
with priced as (
    select
        token_id,
        avg(price) as avg_price,
        count(*) as price_days
    from `metrics_tokens.price_daily`
    where timestamp >= timestamp('2026-08-16')
      and timestamp < timestamp('2026-08-23')
      and chain_id = 'stellar'
    group by token_id
)

select
    tokens.symbol,
    tokens.name,
    priced.avg_price,
    priced.price_days
from priced
join `dimensions.tokens` as tokens using (token_id)
order by priced.avg_price desc
limit 20
```


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