> ## 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 hold, and only the ones that apply to that kind are filled in. Everything a transaction changed lands in `affected_nodes`.

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 their daily prices. Tokenized funds, stablecoins and tokenized commodities make up the asset side.

The market pages go deeper on each of these. [Stablecoins](https://tokenterminal.com/docs/catalog/stablecoins/index.md) and [Real-world assets](https://tokenterminal.com/docs/catalog/real-world-assets/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="160">Table</th>
      <th width="90">Since</th>
      <th>Description</th>
    </tr>
  </thead>

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

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

    <tr>
      <td>`affected_nodes`</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 has `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

**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
```

**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
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 = 'ripple'
order by daily.market_cap_circulating desc
limit 20
```

**Priced tokens**

**List the XRP Ledger 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 = '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
```


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