Xrp Transfers In
xrp_transfers_inINCOMING XRP Ledger (xrp, XRP, ripple, XRPL) transfers to an r-address — where this account received XRP and issued tokens from, newest first: sender, amount, currency, Destination_Tag, record Type and transaction type per row. Use it to trace the source of funds backwards, and with destination_tag to list the deposits of ONE customer of an exchange account. Page back through older history with cursor: pass the Cursor value of the LAST row of a page — unlike before_time it never skips rows that share a ledger. Same record types and amount rules as xrp_transfers_out; for the aggregated view use xrp_address_flow_summary. AMOUNTS: Amount / Currency is what this account actually received (the delivered amount, never the inflated face value of a partial payment); Sent_Amount / Sent_Currency is what the sender actually spent. They differ on a cross-currency payment, and can also differ on a payment of an issued token (for example by the issuer's transfer fee). XRP is in XRP (not drops). TYPE: payment = a Payment from another account (Sender = this account means a currency conversion); trade = a standing exchange offer of this account was filled; other = one leg of an account deletion, check, escrow release, payment-channel claim, AMM or NFT sale, or path-payment rounding, so Sender is EMPTY here. Rounding remainders of that kind below 0.000001 (floating-point leftovers of token payments and offer fills, no real value; a token issuer receives hundreds of thousands) are hidden unless include_dust=1. For an account deletion, cashed check, AMM or NFT sale the paying leg is a separate record of the same transaction: open the Tx with xrp_tx_transfers to see who paid. An escrow release or payment-channel claim pays out what was locked in an EARLIER transaction, so its payer is not in that transaction. nft_trade / mint / burn = NFTs (Currency is the NFT id). Fees never appear here (the fees an account paid are listed by xrp_transfers_out with include_fees=1), and neither do failed transactions — except a failed (expired) NFT offer acceptance, which still shows its nft_trade record although the NFT did not move; xrp_tx_transfers shows Success. Pass type='payment' for payments only. CURRENCY: native XRP is always Currency_Id 413663; any other currency is an issued token, and its Currency_Id identifies only the CODE — look-alike issuers airdrop counterfeit "RLUSD", "USD" and similar tokens under the same code. Pin the real token with currency_id plus issuer (keeps payments that delivered that issuer's token). USD: Price_Usd is the hourly USD price of Currency at the time of the transfer and Value_Usd = Amount x Price_Usd - for XRP only (Price_Status ok). An issued token has no price here (Price_Status no_price, both columns null): never assume one, a currency code says nothing about the token's value. The newest hour may not be priced yet. Amounts and their filters stay in TOKEN UNITS (there is no usd filter), and amounts of different currencies must not be compared or added together: pin ONE currency with currency_id, or bound the range with min_amount / max_amount. Destination_Tag: "0" = no tag. An account whose incoming payments nearly all carry different tags is a shared (exchange / custodial) deposit account. Rows carry no labels: identify senders with labels_for_addresses(chain='ripple') — coverage is sparse, mostly exchange reserve wallets. Covers the LAST 90 DAYS by default; raise days to reach older history (a short or empty page can just mean the window ended, not that the history did). Records arrive a few minutes after the ledger closes. Returns limit transfers per page (default 20, at most 1000), newest first, plus any records identical in every field to the last one (so a page can exceed limit); a sort='amount' page is a top-N and carries no Cursor. Each row: Time, Sender, Currency, Currency_Id, Amount, Sent_Currency, Sent_Currency_Id, Sent_Amount, Destination_Tag, Type, Tx_Type, Ledger, Tx, Price_Usd, Value_Usd, Price_Status, Cursor.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"address": "<address>"
},
"name": "xrp_transfers_in"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How far back to search, in days (default 90, max 20000). The window ends at the newest bound in play (cursor or before_time, else today) and reaches `days` back from it; an explicit after_time overrides the lower edge. An empty or short page can simply mean the window ran out - raise days to search deeper. | |
| sort | No | "recent" (default) = newest first; "amount" = largest Amount first. Ranking by amount returns a TOP-N, not the head of a page-walk: such a page carries no Cursor, so start a walk with sort='recent'. | recent |
| type | No | Record type: "payment", "trade", "other", "nft_trade", "mint" or "burn" (see the tool description). Empty (default) = every type except fees. Any other value is rejected. | |
| limit | No | Max transfers per page (1-1000); a page can exceed it by a few rows when identical records share the last position. | |
| cursor | No | Exact paging cursor: pass the Cursor value of the LAST row of the previous page to get the next page. When set, before_time is ignored and rows come back newest-first whatever sort says. Empty = first page. Records identical in every field (several equal offers filled, or a batch of NFT mints, in one transaction) always come back together, so a page can hold a few rows more than limit. | |
| format | No | Shape of the returned data. "rows" (the default) returns one item per row. "columnar" returns a single item, {"columns":[...],"rows":[[value,...],...]}, naming the columns once and listing each row's values in that order; it is more compact for large results and carries the same values. | rows |
| issuer | No | Keep only PAYMENTS that delivered a token issued by this r-address (e.g. the real RLUSD issuer rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De) — the way to separate a real token from look-alike issuers of the same code. The issuer is matched on what this account RECEIVED (Delivered_Issuer in xrp_tx_transfers). Other record types and XRP carry no issuer, so they are dropped when this is set. Empty (default) = no issuer filter. | |
| address | Yes | Classic XRP Ledger account address (starts with "r", 25-35 base58 characters), case-sensitive. An X-address (starts with "X") is not accepted: split it into its classic address and destination tag first. | |
| currency | No | Restrict to one received currency by its code as shown in Currency ("XRP", "RLUSD", "USD" or the 40-character hex code, in any letter case). A code is NOT a token identifier — several issuers use the same code — so pin the real one with issuer. Empty = all. No backslashes. | |
| after_time | No | Only transfers at/after this UTC time, "YYYY-MM-DD", "YYYY-MM-DD HH:MM:SS" or ISO "2026-09-20T00:00:00Z" (the form Time comes back in). Overrides the lower edge of the days window. Empty = no lower bound. | |
| max_amount | No | Maximum received amount in the currency's own units. 0 (default) = no upper bound. Amounts are NOT comparable across currencies, so with sort="amount" a token with a huge supply can push real transfers off the page - cap it here, or pin one currency with currency_id. | |
| min_amount | No | Minimum received amount in the currency's own units (XRP, not drops). 0 = no lower bound. Rounding remainders without a sender are already hidden (see include_dust); set this to drop small real transfers as well. | |
| before_time | No | Only transfers strictly before this UTC time ("YYYY-MM-DD", "YYYY-MM-DD HH:MM:SS" or ISO "2026-09-20T00:00:00Z" (the form Time comes back in)) — a coarse upper bound, NOT a paging cursor: it skips every row that shares the last row's timestamp, so page with cursor instead; before_time is ignored when cursor is set. Empty = now. | |
| currency_id | No | Restrict to one received Currency_Id (413663 = native XRP). Faster than currency. It identifies a currency CODE shared by every issuer of that code; add issuer to pin one token. 0 (default) = all. | |
| include_dust | No | 0 (default) hides rounding remainders: records of Type "other" with no counterparty and an Amount below 0.000001 - floating-point leftovers of payments and offer fills that carry no value (a token issuer collects hundreds of thousands of them, and they would fill every page). 1 = show them too. | |
| destination_tag | No | Only transfers carrying this destination tag (digits) — on an exchange deposit account, the deposits of one customer. Empty (default) = any. |