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

# Ripple

> Standardized XRP Ledger tables from January 2013.

`ripple` holds the standardized XRP Ledger tables. The XRP Ledger calls its blocks ledgers, and they land in `blocks`. Transactions land in `transactions`, which is wide: it has a column for every field any kind of transaction can carry, and only the ones that apply to that kind are filled in. Everything a transaction changed lands in `affected_nodes`.

## Tables

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

  <tbody>
    <tr>
      <td><code>blocks</code></td>
      <td>2013-01</td>
      <td>One row per ledger, with close times and total XRP in existence.</td>
    </tr>

    <tr>
      <td><code>transactions</code></td>
      <td>2013-01</td>
      <td>One row per transaction, with the columns its <code>transaction\_type</code> populates.</td>
    </tr>

    <tr>
      <td><code>affected\_nodes</code></td>
      <td>2013-01</td>
      <td>One row per ledger entry a transaction created, modified or deleted.</td>
    </tr>
  </tbody>
</table>

Ledgers are keyed on `number` and transactions on `transaction_hash`. Each `affected_nodes` row carries `new_fields`, `final_fields` and `previous_fields` as JSON, so you can see what a record held before the change and after it.

The columns that hold amounts, `amount`, `deliver_max` and `delivered_amount`, are JSON rather than numbers. An amount on this chain is one of two things: a plain count of drops if it is XRP, one drop being a millionth of an XRP, or a small record naming the currency, its issuer and the value if it is anything else. For payments, read `delivered_amount`: it says what arrived, which is not always what was asked for, because the chain allows a payment to deliver less than its stated amount.

## Sample queries

<Tabs>
  <Tab title="Transaction success rate">
    **Count transactions by type and their success rate on one day.** `tesSUCCESS` is the result code of a successful transaction.

    ```sql theme={null}
    select
        transaction_type,
        count(*) as transactions,
        countif(transaction_result = 'tesSUCCESS') as successful
    from `ripple.transactions`
    where block_timestamp >= timestamp('2026-08-20')
      and block_timestamp < timestamp('2026-08-21')
    group by transaction_type
    order by transactions desc
    ```
  </Tab>

  <Tab title="Tokenized assets ranked">
    **Rank the tokenized assets issued on the XRP Ledger by circulating market cap.**

    ```sql theme={null}
    select
        assets.symbol,
        assets.asset_type,
        daily.market_cap_circulating_total
    from `metrics_asset_tokens.market_cap_circulating_total_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 = 'ripple'
    order by daily.market_cap_circulating_total desc
    limit 20
    ```
  </Tab>

  <Tab title="Priced tokens">
    **List the XRP Ledger tokens that carried 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 = 'ripple'
        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
    ```
  </Tab>
</Tabs>

## Notes

Above the raw tables sits the rest of the catalog, and the XRP Ledger shows up in two parts of it: the tokenized assets issued on it, and the list of tokens we know about with the daily prices they carry. Tokenized funds, stablecoins and tokenized commodities make up the asset side. No app or trading-pool table covers the chain.

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