BitqueryBitqueryData Store
Ripple (XRP) logoRipple (XRP)TransactionsTransfersTradesBalances

XRP Ledger

The whole XRP Ledger as flat Parquet: transactions, transfers, payments, DEX and NFT offers, trust lines, escrows, checks and balance changes, at ledger resolution.

Coverage
Full historyto Sep 27, 2026 · yesterday
Tables
10Parquet, one prefix each
Columns
256across 10 tables
Coverage ends yesterday, UTC

Overview

Every indexed XRP Ledger topic, as ten flat Parquet tables at ledger resolution: transactions, transfers, payments, DEX offers, NFT offers, trust lines (ripple states), escrows, checks, account roots and balance changes.

Each table is one row per ledger object change, carrying the transaction hash, the ledger index, the account and the currency involved. Every table joins to every other on tx_hash, so a payment can be tied to the balance changes, trust-line movements and offer fills it caused in the same transaction.

XRPL has settlement semantics that differ from account-based chains, and the schema exposes them rather than hiding them: partial payments, signed trust-line balances, drops-versus-XRP units and the Ripple epoch all appear as they are on the ledger. The FAQ below documents each one, because getting them wrong silently corrupts a volume number.

Use cases

  • Cross-border payment flow analysis on the ledger built for settlement
  • Issued-token and stablecoin tracking across trust lines and issuers
  • XRPL DEX order-book research from offer creation to fill
  • Compliance and forensics: tracing funds between accounts with destination tags

10 tables

256 columns · free sample for each table

transactions_tx

18 columns

One row per XRP Ledger transaction, successful or failed, with type, fee, sequence and engine result.

ripple/transactions_tx<start_ledger>_<end_ledger>.parquet50 ledgers per file

payments_tx

40 columns

One row per Payment transaction, with the requested, delivered, maximum-send and minimum-deliver amounts and their currencies.

ripple/payments_tx<start_ledger>_<end_ledger>.parquet50 ledgers per file

transfers_tx

25 columns

One row per value movement, with the from and to currency and amount. A single transaction produces several rows, classified by direction.

ripple/transfers_tx<start_ledger>_<end_ledger>.parquet50 ledgers per file

offers_tx

31 columns

One row per XRPL DEX offer object change, with taker-gets and taker-pays sides before and after the change.

ripple/offers_tx<start_ledger>_<end_ledger>.parquet50 ledgers per file

nftoken_offers_tx

32 columns

One row per NFT offer object change, with the NFT, the price currency and which side of the offer is set.

ripple/nftoken_offers_tx<start_ledger>_<end_ledger>.parquet200 ledgers per file

ripple_states_tx

21 columns

One row per trust-line change, with the two counterparties and the signed balance between them.

ripple/ripple_states_tx<start_ledger>_<end_ledger>.parquet50 ledgers per file

escrows_tx

25 columns

One row per escrow object change, with the amount held, the release conditions and the Ripple-epoch timestamps.

ripple/escrows_tx<start_ledger>_<end_ledger>.parquet200 ledgers per file

checks_tx

25 columns

One row per check object change, with the maximum amount, expiry and tags. Checks are rare on XRPL.

ripple/checks_tx<start_ledger>_<end_ledger>.parquet200 ledgers per file

account_roots_tx

19 columns

One row per account-root change: the XRP balance, owner count and account settings after each transaction that touched the account.

ripple/account_roots_tx<start_ledger>_<end_ledger>.parquet50 ledgers per file

balances

20 columns

One row per balance change, for native XRP and issued currencies alike, with the value before and after in XRP units.

ripple/balances<start_ledger>_<end_ledger>.parquet50 ledgers per file

Schema reference

copies a column name
256 columns
transactions_tx18 columnsOne row per XRP Ledger transaction, successful or failed, with type, fee, sequence and engine result.
ColumnTypeDescription
blockUInt64XRP Ledger ledger index
tx_dateInt64UTC date of the ledger, Unix epoch milliseconds
tx_timeInt64Ledger close time, Unix epoch seconds
tx_indexUInt64Position of the transaction within the ledger
tx_hashStringTransaction hash, hex. Join key across every ripple table
blockchain_idUInt64Internal chain identifier; 12 for XRP Ledger
tx_senderStringAccount that submitted the transaction
tx_typeStringXRPL transaction type, for example Payment, OfferCreate, TrustSet
feeStringFee paid, as a STRING in drops. Divide by 1,000,000 for XRP
memosStringAttached memo field, empty when unused
tx_signersStringMulti-signature signers, empty for single-signed transactions
source_tagUInt64Sender-side tag, commonly used by exchanges to identify a customer
account_txn_idStringHash of a prior transaction this one is chained to, when set
sequenceUInt64Sender account sequence number
last_ledger_sequenceUInt64Last ledger index at which the transaction could be included
flagsUInt64Transaction flags bitfield
resultStringXRPL engine result code, for example tesSUCCESS or tecUNFUNDED_PAYMENT
successUInt81 when result is tesSUCCESS. Filter on this to exclude failed transactions
Sample file
payments_tx40 columnsOne row per Payment transaction, with the requested, delivered, maximum-send and minimum-deliver amounts and their currencies.
ColumnTypeDescription
Other7
blockUInt64XRP Ledger ledger index
senderStringPaying account
receiverStringDestination account
tagUInt64Destination tag, used by exchanges to route to a customer account
invoiceStringInvoice identifier attached to the payment, when set
flagsUInt64Payment flags bitfield; 131072 is tfPartialPayment
partialUInt81 when the payment was a partial payment, where amount_value overstates what moved
tx4
tx_dateInt64UTC date of the ledger, Unix epoch milliseconds
tx_timeInt64Ledger close time, Unix epoch seconds
tx_indexUInt64Position of the transaction within the ledger
tx_hashStringTransaction hash, hex. Join key across every ripple table
blockchain1
blockchain_idUInt64Internal chain identifier; 12 for XRP Ledger
amount7
amount_currency_idUInt64Internal currency id of the requested amount
amount_currency_addressStringCurrency address of the requested amount; '-' for XRPL currencies
amount_currency_nameStringCurrency name of the requested amount; 40-char hex for issued codes over 3 characters
amount_currency_symbolStringCurrency symbol of the requested amount
amount_currency_token_typeStringToken type of the requested amount, for example issued; '-' for native XRP
amount_valueFloat64Requested amount. A CEILING, not what moved — do not sum this for volume, use delivered_value
amount_issuerStringIssuer of the requested currency, empty for native XRP
delivered7
delivered_currency_idUInt64Internal currency id of the delivered amount
delivered_currency_addressStringCurrency address of the delivered amount
delivered_currency_nameStringCurrency name of the delivered amount
delivered_currency_symbolStringCurrency symbol of the delivered amount
delivered_currency_token_typeStringToken type of the delivered amount
delivered_valueFloat64Amount actually delivered. THIS is the column to sum for payment volume
delivered_issuerStringIssuer of the delivered currency, empty for native XRP
send7
send_max_currency_idUInt64Internal currency id of the SendMax limit
send_max_currency_addressStringCurrency address of the SendMax limit
send_max_currency_nameStringCurrency name of the SendMax limit
send_max_currency_symbolStringCurrency symbol of the SendMax limit
send_max_currency_token_typeStringToken type of the SendMax limit
send_max_valueFloat64Maximum the sender was willing to pay, including cross-currency conversion
send_max_issuerStringIssuer of the SendMax currency
deliver7
deliver_min_currency_idUInt64Internal currency id of the DeliverMin floor
deliver_min_currency_addressStringCurrency address of the DeliverMin floor
deliver_min_currency_nameStringCurrency name of the DeliverMin floor
deliver_min_currency_symbolStringCurrency symbol of the DeliverMin floor
deliver_min_currency_token_typeStringToken type of the DeliverMin floor
deliver_min_valueFloat64Minimum the sender would accept delivering, on a partial payment
deliver_min_issuerStringIssuer of the DeliverMin currency
Sample file
transfers_tx25 columnsOne row per value movement, with the from and to currency and amount. A single transaction produces several rows, classified by direction.
ColumnTypeDescription
Other4
blockUInt64XRP Ledger ledger index
senderStringAccount value moved from, for this row
receiverStringAccount value moved to; empty on burns and fee rows
directionStringRow classification: payment, fee, trade, nft_trade, mint or other. Filter on this before aggregating
currency10
currency_from_addressStringSource currency address; '-' for XRPL currencies
currency_from_idUInt64Internal id of the source currency
currency_from_nameStringSource currency name; 40-char hex for issued codes over 3 characters
currency_from_symbolStringSource currency symbol
currency_from_tokenTypeStringSource token type, for example issued or nft; '-' for native XRP
currency_to_addressStringDestination currency address
currency_to_idUInt64Internal id of the destination currency
currency_to_nameStringDestination currency name
currency_to_symbolStringDestination currency symbol
currency_to_tokenTypeStringDestination token type
tx7
tx_dateInt64UTC date of the ledger, Unix epoch milliseconds
tx_hashStringTransaction hash, hex. Join key across every ripple table
tx_hash_binStringBinary form of the transaction hash
tx_indexUInt64Position of the transaction within the ledger
tx_sender_rawStringAccount that submitted the transaction, as recorded on the transaction
tx_type_rawStringXRPL transaction type, as recorded on the transaction
tx_timeInt64Ledger close time, Unix epoch seconds
transaction2
transaction_typeStringNormalised transaction type
transaction_senderStringNormalised submitting account
amount2
amount_fromFloat64Amount leaving, in source currency units
amount_toFloat64Amount arriving, in destination currency units
Sample file
offers_tx31 columnsOne row per XRPL DEX offer object change, with taker-gets and taker-pays sides before and after the change.
ColumnTypeDescription
Other6
blockUInt64XRP Ledger ledger index
operationStringAffectedNodes change type: CreatedNode, ModifiedNode or DeletedNode
accountStringAccount that owns the offer
expirationUInt64Offer expiry, Ripple epoch seconds; add 946684800 for Unix time
sequenceUInt64Sequence number of the transaction that created the offer
flagsUInt64Offer flags bitfield
tx6
tx_dateInt64UTC date of the ledger, Unix epoch milliseconds
tx_timeInt64Ledger close time, Unix epoch seconds
tx_indexUInt64Position of the transaction within the ledger
tx_hashStringTransaction hash, hex. Join key across every ripple table
tx_senderStringAccount that submitted the transaction
tx_typeStringXRPL transaction type, for example OfferCreate or OfferCancel
blockchain1
blockchain_idUInt64Internal chain identifier; 12 for XRP Ledger
taker12
taker_gets_currency_idUInt64Internal currency id of what the taker receives
taker_gets_currency_addressStringCurrency address of what the taker receives
taker_gets_currency_nameStringCurrency name of what the taker receives
taker_gets_currency_symbolStringCurrency symbol of what the taker receives
taker_gets_currency_token_typeStringToken type of what the taker receives
taker_pays_currency_idUInt64Internal currency id of what the taker pays
taker_pays_currency_addressStringCurrency address of what the taker pays
taker_pays_currency_nameStringCurrency name of what the taker pays
taker_pays_currency_symbolStringCurrency symbol of what the taker pays
taker_pays_currency_token_typeStringToken type of what the taker pays
taker_gets_valueFloat64Amount the taker receives, after this change
taker_pays_valueFloat64Amount the taker pays, after this change
pre2
pre_taker_gets_valueFloat64taker_gets before this change. Difference against taker_gets_value sizes the fill
pre_taker_pays_valueFloat64taker_pays before this change
book2
book_directoryStringOrder book directory the offer sits in, encoding the exchange rate
book_nodeStringNode within the order book directory
prev2
prev_txn_idStringHash of the previous transaction to touch this offer object
prev_ledger_seqUInt64Ledger index of the previous change to this offer object
Sample file
nftoken_offers_tx32 columnsOne row per NFT offer object change, with the NFT, the price currency and which side of the offer is set.
ColumnTypeDescription
Other6
blockUInt64XRP Ledger ledger index
operationStringAffectedNodes change type: CreatedNode, ModifiedNode or DeletedNode
valueFloat64Offer price in the pricing currency
expirationUInt64Offer expiry, Ripple epoch seconds; add 946684800 for Unix time
sequenceUInt64Sequence number of the creating transaction
flagsUInt64Offer flags bitfield
tx6
tx_dateInt64UTC date of the ledger, Unix epoch milliseconds
tx_timeInt64Ledger close time, Unix epoch seconds
tx_indexUInt64Position of the transaction within the ledger
tx_hashStringTransaction hash, hex. Join key across every ripple table
tx_senderStringAccount that submitted the transaction
tx_typeStringXRPL transaction type, for example NFTokenCreateOffer or NFTokenAcceptOffer
blockchain1
blockchain_idUInt64Internal chain identifier; 12 for XRP Ledger
from1
from_accountStringAccount that created the offer
destination1
destination_accountStringAccount the offer is directed to, when the offer is private
nftoken8
nftoken_sell_offerStringSell-offer identifier. Check which of this and nftoken_buy_offer is set to tell the sides apart
nftoken_buy_offerStringBuy-offer identifier
nftoken_currency_idUInt64Internal currency id of the NFT
nftoken_currency_addressStringNFT currency address
nftoken_currency_nameStringNFTokenID, the 64-character hex identifier of the token
nftoken_currency_symbolStringNFT symbol, the same NFTokenID
nftoken_currency_token_typeStringToken type; nft
nftoken_valueFloat64Quantity of the NFT, normally 1
currency5
currency_idUInt64Internal currency id the offer is priced in
currency_addressStringAddress of the pricing currency
currency_nameStringName of the pricing currency
currency_symbolStringSymbol of the pricing currency
currency_token_typeStringToken type of the pricing currency
book2
book_directoryStringOffer book directory
book_nodeStringNode within the offer book directory
prev2
prev_txn_idStringHash of the previous transaction to touch this offer object
prev_ledger_seqUInt64Ledger index of the previous change to this offer object
Sample file
ripple_states_tx21 columnsOne row per trust-line change, with the two counterparties and the signed balance between them.
ColumnTypeDescription
Other4
blockUInt64XRP Ledger ledger index
operationStringAffectedNodes change type: CreatedNode, ModifiedNode or DeletedNode
balanceFloat64Trust-line balance after the change, SIGNED from low_account's perspective: positive means low_account holds the asset
flagsUInt64Trust-line flags bitfield, including no-ripple and freeze settings
tx6
tx_dateInt64UTC date of the ledger, Unix epoch milliseconds
tx_timeInt64Ledger close time, Unix epoch seconds
tx_indexUInt64Position of the transaction within the ledger
tx_hashStringTransaction hash, hex. Join key across every ripple table
tx_senderStringAccount that submitted the transaction
tx_typeStringXRPL transaction type that changed the trust line
blockchain1
blockchain_idUInt64Internal chain identifier; 12 for XRP Ledger
low1
low_accountStringNumerically lower of the two accounts on the trust line
high1
high_accountStringNumerically higher of the two accounts on the trust line
currency5
currency_idUInt64Internal currency id of the issued asset
currency_addressStringCurrency address of the issued asset
currency_nameStringCurrency name; 40-char hex for issued codes over 3 characters
currency_symbolStringCurrency symbol of the issued asset
currency_token_typeStringToken type; issued
pre1
pre_balanceFloat64Trust-line balance before the change, same sign convention
prev2
prev_txn_idStringHash of the previous transaction to touch this trust line
prev_ledger_seqUInt64Ledger index of the previous change to this trust line
Sample file
escrows_tx25 columnsOne row per escrow object change, with the amount held, the release conditions and the Ripple-epoch timestamps.
ColumnTypeDescription
Other7
blockUInt64XRP Ledger ledger index
operationStringAffectedNodes change type: CreatedNode, ModifiedNode or DeletedNode
accountStringAccount that created the escrow
destinationStringAccount the escrowed funds are released to
amountFloat64Amount held in escrow
conditionStringPREIMAGE-SHA-256 crypto-condition that must be fulfilled to release, when set
flagsUInt64Escrow flags bitfield
tx6
tx_dateInt64UTC date of the ledger, Unix epoch milliseconds
tx_timeInt64Ledger close time, Unix epoch seconds
tx_indexUInt64Position of the transaction within the ledger
tx_hashStringTransaction hash, hex. Join key across every ripple table
tx_senderStringAccount that submitted the transaction
tx_typeStringXRPL transaction type: EscrowCreate, EscrowFinish or EscrowCancel
blockchain1
blockchain_idUInt64Internal chain identifier; 12 for XRP Ledger
currency5
currency_idUInt64Internal currency id of the escrowed asset
currency_addressStringCurrency address of the escrowed asset
currency_nameStringCurrency name of the escrowed asset
currency_symbolStringCurrency symbol of the escrowed asset
currency_token_typeStringToken type of the escrowed asset
cancel1
cancel_afterUInt64Cancellable after this time, RIPPLE EPOCH seconds; add 946684800 for Unix time
finish1
finish_afterUInt64Releasable after this time, RIPPLE EPOCH seconds; add 946684800 for Unix time
source1
source_tagUInt64Sender-side tag
destination1
destination_tagUInt64Destination-side tag
prev2
prev_txn_idStringHash of the previous transaction to touch this escrow object
prev_ledger_seqUInt64Ledger index of the previous change to this escrow object
Sample file
checks_tx25 columnsOne row per check object change, with the maximum amount, expiry and tags. Checks are rare on XRPL.
ColumnTypeDescription
Other7
blockUInt64XRP Ledger ledger index
operationStringAffectedNodes change type: CreatedNode, ModifiedNode or DeletedNode
accountStringAccount that wrote the check
destinationStringAccount the check is payable to
expirationUInt64Check expiry, Ripple epoch seconds; add 946684800 for Unix time
sequenceUInt64Sequence number of the creating transaction
flagsUInt64Check flags bitfield
tx6
tx_dateInt64UTC date of the ledger, Unix epoch milliseconds
tx_timeInt64Ledger close time, Unix epoch seconds
tx_indexUInt64Position of the transaction within the ledger
tx_hashStringTransaction hash, hex. Join key across every ripple table
tx_senderStringAccount that submitted the transaction
tx_typeStringXRPL transaction type: CheckCreate, CheckCash or CheckCancel
blockchain1
blockchain_idUInt64Internal chain identifier; 12 for XRP Ledger
currency5
currency_idUInt64Internal currency id of the check amount
currency_addressStringCurrency address of the check amount
currency_nameStringCurrency name of the check amount
currency_symbolStringCurrency symbol of the check amount
currency_token_typeStringToken type of the check amount
send1
send_maxFloat64Maximum amount the check can be cashed for
invoice1
invoice_idStringInvoice identifier attached to the check, when set
source1
source_tagUInt64Sender-side tag
destination1
destination_tagUInt64Destination-side tag
prev2
prev_txn_idStringHash of the previous transaction to touch this check object
prev_ledger_seqUInt64Ledger index of the previous change to this check object
Sample file
account_roots_tx19 columnsOne row per account-root change: the XRP balance, owner count and account settings after each transaction that touched the account.
ColumnTypeDescription
blockUInt64XRP Ledger ledger index
tx_dateInt64UTC date of the ledger, Unix epoch milliseconds
tx_timeInt64Ledger close time, Unix epoch seconds
tx_indexUInt64Position of the transaction within the ledger
tx_hashStringTransaction hash, hex. Join key across every ripple table
blockchain_idUInt64Internal chain identifier; 12 for XRP Ledger
tx_senderStringAccount that submitted the transaction
tx_typeStringXRPL transaction type that changed the account root
operationStringAffectedNodes change type: CreatedNode, ModifiedNode or DeletedNode
accountStringThe account whose root object changed
prev_balanceStringXRP balance before the change, as a STRING in drops. Divide by 1,000,000 for XRP
balanceStringXRP balance after the change, as a STRING in drops. Divide by 1,000,000 for XRP
domainStringDomain set on the account, hex-encoded when present
owner_countUInt64Number of ledger objects the account owns, which sets its reserve requirement
transfer_rateUInt64Fee an issuer charges on transfers of its tokens; 0 when unset
sequenceUInt64Account sequence number
prev_txn_idStringHash of the previous transaction to touch this account root
prev_ledger_seqUInt64Ledger index of the previous change to this account root
flagsUInt64Account flags bitfield, including RequireDest, DisallowXRP and DefaultRipple
Sample file
balances20 columnsOne row per balance change, for native XRP and issued currencies alike, with the value before and after in XRP units.
ColumnTypeDescription
blockUInt64XRP Ledger ledger index
tx_dateInt64UTC date of the ledger, Unix epoch milliseconds
tx_timeInt64Ledger close time, Unix epoch seconds
tx_indexUInt64Position of the transaction within the ledger
tx_hashStringTransaction hash, hex. Join key across every ripple table
blockchain_idUInt64Internal chain identifier; 12 for XRP Ledger
tx_senderStringAccount that submitted the transaction
tx_typeStringXRPL transaction type that caused the balance change
operationStringAffectedNodes change type: CreatedNode, ModifiedNode or DeletedNode
accountStringAccount whose balance changed
currency_idUInt64Internal currency id
currency_addressStringCurrency address; '-' for XRPL currencies
currency_nameStringCurrency name; 'XRP Ledger Native Token' for XRP
currency_symbolStringCurrency symbol; 40-char hex for issued codes over 3 characters
currency_token_typeStringToken type; issued, or '-' for native XRP
issuerStringIssuing account for an issued currency, empty for native XRP
prev_balanceFloat64Balance before the change, in XRP units (not drops)
balanceFloat64Balance after the change, in XRP units (not drops)
prev_ledger_seqUInt64Ledger index of the previous change to this balance
flagsUInt64Flags bitfield on the underlying ledger object
Sample file

Ask an AI about this data

Send this dataset’s full schema to an assistant and ask it anything. It reads the plain-text brief first, so the answer comes from the real column list rather than a guess.

Start with

Opens a new chat with the question filled in. Nothing about you is sent to Bitquery, and the assistant sees only the public brief.

Delivery

Parquet files, delivered as signed download links by email after payment, in this layout:

# transactions_tx: 50 ledgers per file
ripple/transactions_tx<start_ledger>_<end_ledger>.parquet

# payments_tx: 50 ledgers per file
ripple/payments_tx<start_ledger>_<end_ledger>.parquet

# transfers_tx: 50 ledgers per file
ripple/transfers_tx<start_ledger>_<end_ledger>.parquet

# offers_tx: 50 ledgers per file
ripple/offers_tx<start_ledger>_<end_ledger>.parquet

# nftoken_offers_tx: 200 ledgers per file
ripple/nftoken_offers_tx<start_ledger>_<end_ledger>.parquet

# ripple_states_tx: 50 ledgers per file
ripple/ripple_states_tx<start_ledger>_<end_ledger>.parquet

# escrows_tx: 200 ledgers per file
ripple/escrows_tx<start_ledger>_<end_ledger>.parquet

# checks_tx: 200 ledgers per file
ripple/checks_tx<start_ledger>_<end_ledger>.parquet

# account_roots_tx: 50 ledgers per file
ripple/account_roots_tx<start_ledger>_<end_ledger>.parquet

# balances: 50 ledgers per file
ripple/balances<start_ledger>_<end_ledger>.parquet
  1. Download a free sampleNo email needed.
  2. Pay nowName, work email and licence check.
  3. Pay the invoiceBy card or bank transfer.
  4. Get signed linksThe team prepares the export and emails the links.

Time windows

Every window includes all 10 tables and 256 columns. Only the time range changes.

31 days
Latest month
Aug 27, 2026 → Sep 27, 2026
$600
Pay now
365 days
Last 12 months
Sep 27, 2025 → Sep 27, 2026
$6,000
Pay now
730 days
Last 24 months
Sep 27, 2024 → Sep 27, 2026
$8,000
Pay now
Since launch
Full history
Genesis → Sep 27, 2026
$10,000
Pay now
In every window
  • All 10 tables, 256 columns
  • Parquet files in the layout under Delivery
  • Signed download links by email
  • Licensed under the Data License

FAQ

12 questions
What is included in the XRP Ledger dataset?

Ten Parquet tables with 256 documented columns in total: transactions_tx, transfers_tx, payments_tx, offers_tx, nftoken_offers_tx, ripple_states_tx, escrows_tx, checks_tx, account_roots_tx and balances. Covering the most recent month to yesterday, refreshed daily.

Which column should I sum for payment volume?

delivered_value, never amount_value. On XRPL a partial payment sets amount_value as a requested ceiling rather than what moved, and delivers less. Summing amount_value overstates native XRP volume by roughly 27,000,000x on real data. The partial column flags those rows. This is the single most common way an XRPL volume figure goes wrong.

Does the data include failed transactions?

Yes, deliberately — failures are signal for fee and congestion analysis. transactions_tx carries result (the XRPL engine code) and success. Filter success = 1, equivalent to result = 'tesSUCCESS', for settled activity only.

Why are some currency symbols 40-character hex strings?

XRPL encodes issued-currency codes longer than three characters as 40-character hex. For example 4D656F7752500000000000000000000000000000 decodes to MeowRP. Three-character codes such as XRP or ELS appear as-is. Decode hex to ASCII and strip trailing nulls to get the display symbol.

Are balances in XRP or drops?

It depends on the table, and the difference matters. account_roots_tx stores balance and prev_balance as strings in drops — divide by 1,000,000 for XRP. The balances table stores them as floats already in XRP. The fee column in transactions_tx is also a string in drops. We kept each table faithful to its source rather than silently converting.

How do I read trust-line balances?

In ripple_states_tx the balance is signed from low_account's perspective: positive means low_account holds the asset, negative means high_account does. Take the absolute value and pick the holder by sign before aggregating issued-token supply.

Why does one transaction produce several rows in transfers_tx?

Because one XRPL transaction can move value several ways. The direction column classifies each row as payment, fee, trade, nft_trade, mint or other. Filter on it rather than assuming one row per transaction, and note that fee rows will double-count if you add them to payment volume.

How do I size a DEX fill?

offers_tx carries both the current and prior state: compare pre_taker_gets_value and pre_taker_pays_value with taker_gets_value and taker_pays_value. DeletedNode rows keep the offer's final state rather than being zeroed, so a consumed offer still tells you what it was worth.

What timestamp format do escrows use?

finish_after and cancel_after use the Ripple epoch, which starts 2000-01-01Z. Add 946684800 to convert to Unix time. Every other time column in the dataset is already Unix: tx_time in seconds, tx_date in milliseconds.

How is the data delivered?

As flat Parquet files under a stable S3 layout, one prefix per table, with a JSON manifest listing every file and its sha256. Signed HTTPS links are emailed to you once the files are prepared.

How current is the data?

Refreshed daily with T+1 latency. A purchase made today includes everything up to yesterday.

Can I try before I buy?

Yes. Every table links to a public sample file with real records, and the sample bucket holds full Parquet files you can load directly. No email address required.