XRP Ledger Data: Index Payments, DEX Offers, and Ledger State
Index XRP Ledger payments, DEX offers, trust lines, and ledger object changes in one pipeline, delivered to your own database. Real-time and complete historical data, no node to run.
The XRP Ledger describes itself as a decentralized public Layer 1 blockchain for creating, transferring, and exchanging digital assets with a focus on compliance. It has run for more than a decade with a native decentralized exchange, issued tokens on trust lines, and automated market makers built into the protocol rather than deployed as contracts. You can read how the project frames it at xrpl.org.
That built-in feature set is the data problem. XRPL transactions are typed (Payment, OfferCreate, TrustSet, and many more), and what actually happened lives in the transaction metadata: the result code, the ledger objects each transaction touched, and the amount that was really delivered. Indexing Co covers the XRP Ledger in a single pipeline, hands you each closed ledger with its transactions, metadata, and object changes, and delivers the rows you shape to your own PostgreSQL, warehouse, or webhook. Real-time and full history, with no node to operate.
Why XRP Ledger data is hard
What Indexing Co delivers for the XRP Ledger
Stand up and maintain the XRPL stack yourself.
- Run a rippled server with full history, or depend on a public one.
- Fetch every closed ledger with transactions and metadata.
- Handle each transaction type and the delivered_amount rule by hand.
- Build backfill and real-time delivery from scratch.
One pipeline sources and delivers XRP Ledger data to your store.
- Every transaction with its metadata, result code, and delivered amount.
- Ledger object changes alongside the transactions that caused them.
- Shaped by your JavaScript transform into your PostgreSQL, BigQuery, warehouse, or webhook.
- Real-time delivery plus complete backfilled history. No rippled to run.
What you can index
| XRP Ledger data type | For example |
|---|---|
| Payments | XRP and issued-currency payments, requested vs delivered amount |
| DEX activity | OfferCreate and OfferCancel against the native order book |
| Trust lines and accounts | TrustSet, AccountSet, and TicketCreate transactions |
| Ledger object changes | AccountRoot, RippleState, and Offer objects per ledger |
A transform, not a subgraph
You write the transform in JavaScript, not AssemblyScript, and change it without re-indexing from ledger zero. Indexing Co runs your function over each closed ledger server-side: pick the transaction types you care about and return rows for your destination.
// Indexing Co transform: one row per XRPL payment, requested vs delivered
function transform(block) {
const results = [];
const fmt = (a) => (typeof a === 'string'
? { currency: 'XRP', issuer: null, value: a } // XRP in drops
: a || {});
for (const tx of block.transactions || []) {
if (tx.TransactionType !== 'Payment') continue;
const requested = fmt(tx.Amount);
const delivered = fmt(tx.metaData?.delivered_amount);
results.push({
chain: block._network,
ledger_index: Number(block.ledger_index),
close_time: block.close_time_iso,
tx_hash: tx.hash,
result: tx.metaData?.TransactionResult,
from: tx.Account,
to: tx.Destination,
currency: delivered.currency,
issuer: delivered.issuer,
amount_requested: requested.value,
amount_delivered: delivered.value,
});
}
return results;
}
XRP Ledger with Indexing Co
You want full control of XRPL infrastructure and have the team to operate a full-history rippled server, per-type transaction parsing, and your own backfill and delivery.
You want XRP Ledger payments, DEX offers, and ledger object changes delivered to your own database, with delivered amounts handled correctly and no infrastructure to run.
Related Reading
- Payments Data Infrastructure
- DeFi Data Infrastructure
- Wallet Tracking Data Infrastructure
- Indexing Co vs Building In-House
FAQ
Do I need to run a rippled server?
No. Indexing Co sources XRP Ledger ledgers for you, including full history, so you never operate a rippled server or rely on a rate-limited public one.
How does Indexing Co handle partial payments?
Each Payment comes with its transaction metadata, including delivered_amount. Your transform reads that field, as in the example above, so your dataset records what actually arrived rather than what the sender requested.
Can I index XRPL DEX activity?
Yes. OfferCreate and OfferCancel transactions come through with their fields and metadata, and the Offer objects they create or remove appear in the ledger's object changes.
Are issued currencies supported, not just XRP?
Yes. Issued-currency amounts arrive with their currency code, issuer, and value, and XRP amounts arrive in drops. Your transform can normalize both into the columns you want.
Where does the XRP Ledger data go?
Into your own destination: PostgreSQL, BigQuery, a warehouse, or a webhook. You define the output schema and own the storage.
Get Started
Index the XRP Ledger in minutes. Set up your first payments or DEX pipeline without running a node.