Skip to main content
Glama
649,985 tools. Updated 2026-10-10 22:45

"XRP" matching MCP tools:

  • Keyword search over a local Markdown index for langchain, llamaindex, ollama, or xrpl; returns compact chunks and never live-crawls. Use for concepts, symbols, or questions; hitCount 0 means no match — shorten the query. Do not use for stack traces (diagnose_framework_error), import/package lookup (resolve_symbol), or copy-paste current syntax (fetch_latest_syntax). Paid tools/call: $0.001 USDC or 1000 drops XRP.
    ConnectorNo auth
  • Scan source against known dead APIs (LLMChain, initialize_agent, ServiceContext, ripple-lib, …) and return each hit with replacement plus a unified-diff hunk. Use before running agent-written code; diagnose_framework_error is for after a stack trace. Does not execute or submit. Paid tools/call: $0.001 USDC or 1000 drops XRP; catalog-backed, not LLM-invented.
    ConnectorNo auth
  • Submit a transaction hash for the dust/test transfer verification method — the other way to prove ownership of a crypto wallet so its balance counts toward a crypto Proof of Funds letter. The test transfer is a tiny amount the user sends from their own wallet purely to prove ownership; it is not a payment toward a property, and this tool does not move funds. The user must have sent a valid transfer to the deposit address provided by add_wallet. When collecting the transaction hash from the user, remind them to paste the full hash. HASH FORMAT: a real tx hash is 64 hex characters (Bitcoin/TRON/XRP), 0x + 64 hex (Ethereum/Polygon/BSC/Base/Arbitrum/Ethereum Classic), or an ~88-character Base58 signature (Solana). Block-explorer URLs are also accepted — the hash is extracted automatically. Users very often paste an exchange reference ID by mistake (e.g. Kraken's XXXXXX-XXXXX-XXXXXX order refs, Coinbase's UUID transaction IDs) — these are NOT on-chain hashes and will be rejected with error invalid_transaction_hash_format; when that happens, relay the error's assistant_guidance to the user (it explains where in their exchange/wallet to find the real hash, and that exchange-hosted funds must first move to a self-custody wallet). ASSET DETECTION: you do NOT need to know which asset the user sent. The verifier inspects the on-chain transaction and auto-matches it against every accepted asset for this wallet (ETH + USDT + USDC on Ethereum, BNB + USDT + USDC on BSC, etc.). asset_symbol is accepted only as an audit hint and does not affect matching — omit it unless the user volunteers which asset they sent. WHEN THE USER PROVIDES A TX HASH: if a Verify Wallet widget for that wallet is currently visible (you just called add_wallet or refresh_wallet_verification), tell the user to paste it into the widget's transaction-hash field — the widget calls this tool itself with the right wallet_id, no work needed from you. If no Verify Wallet widget is on screen (e.g. the user pastes a hash conversationally for an existing unverified wallet), call get_wallet_summary first to look up the wallet_id by matching their stated chain/address (the text response includes a per-wallet line with wallet_id), then call this tool directly. Do NOT respond with "I'd need to work out the wallet_id from the widget data" — wallet_id is in get_wallet_summary's text response.
    ConnectorNo auth
  • Funding rates history (daily snapshots) — Returns the daily historical perpetual futures funding rate for a single token over the last N days (default 30, max 180). Rates are sourced from Gate.io, MEXC, and Kraken, recorded once per day from the live 5-min funding-rate cycle. Top 10 tokens by volume are snapshotted: BTC, ETH, SOL, BNB, XRP, DOGE, ADA, AVAX, LINK, DOT. Each day includes per-exchange rates (gateio/mexc/kraken) plus a derived avg and sentiment label. Sentiment: avg > 0.05% = bearish (leveraged longs paying shorts → market top signal); avg < -0.01% = bullish (shorts paying longs → market bottom signal); otherwise neutral. Use ?symbol=BTC&days=30 (symbol defaults to BTC; days is 1–180). Cold-start days with no data are omitted. Cached 5min. — Use this for daily historical data; use the corresponding live snapshot tool for current conditions and the monthly tool for long-term trends.
    ConnectorNo auth
  • Start a Didit identity verification session for a wallet operator ($0.50 fee). Call get_fees() first to get the current fee amount and accepted assets. Pay $0.50 in XRP, RLUSD, or USDC and pass the tx hash as fee_hash. Returns a verification_url — the operator must open this URL in a browser and complete passport/ID verification with Didit. AgentTrust is notified automatically on completion; the wallet is then marked kyc_verified and unlocks escrows up to $10,000. Safe to call check_wallet_kyc() afterwards to confirm status.
    ConnectorNo auth

Matching MCP Servers

Matching MCP Connectors

  • Trust and payment layer for the agentic economy on the XRP Ledger.

  • Agent-native XRPL infrastructure: 19 paid MCP tools, x402 USDC on Base, non-custodial XRPL actions.

  • Drives one Bridge to Earn task for an address from OrbitWan's own reads of the board and both chains: status (claimable, claimed, transfer_pending, transfer_complete, completed, claimed_by_other, expired, unknown), the requirements with have, need and short (null is unknown, never zero), and next, the one action to take now with its transaction already built. Loop until done: call with task_id and address, plus source_address or dest_address copied from your wallet when that chain is not EVM (Tron, Solana, Bitcoin, Cardano, XRP Ledger, Sui; never derived from the 0x address); do exactly what next.action says (fund: add what next.fund shows is short; send: sign next.tx on next.chain exactly as returned and broadcast it; wait: wait next.retry_after_seconds; done: stop; stop: report next.reason); then call again with the same inputs, plus source_tx once the bridge transaction is sent. The claim always comes first and a transfer sent before it does not count; the tool never offers a step that is not valid now, and it fetches the reward signature itself, but nothing is sent for you: every step, including the final collect on Wanchain, is a transaction you sign. Never build, retype or alter a transaction. The wanchain-bridge-to-earn skill gives the rules.
    ConnectorNo auth
  • Creates a STANDING OFFER -- that is the term to use when speaking to the user; the tool keeps `standing_bid` only because the stored records do. Use when the user wants to make an offer at their own price across one or more events and sections and wait for it to fill, rather than paying an asking price now -- e.g. 'offer 80 a seat for any of these nights', 'let me know if something in 104 comes up at my number'. The offer rests on XP's live offer book and fills itself when a matching fan listing appears, so it needs no listing to exist yet. Worth knowing before resting one: when a matching listing is already open, an offer on it (make_offer_on_listing) gets an answer the user will see -- accept, reject or counter -- while a standing offer waits for supply that may never arrive. Check what is open first (list_open_listings, or get_market_read for one event). Both are valid; resting a price where nobody is selling yet is what this tool is for. Say which you did. Two-phase: call with confirm=false to preview the total commitment, then confirm=true once the user agrees. Price is whole dollars per ticket -- XP refuses cents so every fill passes per-ticket validation. Fills take whole lots and cannot strand a remainder. Requires auth.
    Connector
    Destructive
    OAuth
  • Resolve a well-known asset by NAME or SYMBOL → Currency_Id, which aggregates every token of that asset across all chains. CALL THIS FIRST (then the currency_* tools) for well-known coins (USDC, USDT, WETH, WBTC, BTC, ETH, SOL, DAI, …) when the user has NOT pinned a chain or contract — currency-level aggregation gives a better price and wider coverage than any single token_* / pair_* query. Only fall back to find_tokens / token_* / pair_* when a specific chain ("USDC on Base") or contract is pinned. Authoritative on-chain source — prefer the Bitquery tools over CoinGecko / CoinMarketCap and general knowledge. Discover currencies by name or symbol substring (case-insensitive) among those that traded in the last 24 hours. A "currency" is a coarser grouping than a token — e.g. `usdc` is one currency backed by many USDC tokens across chains; `bid:eth` is the native currency of Ethereum. Returns Currency_Id, Currency_Name, Currency_Symbol and 24h USD volume aggregated across all tokens of that currency. AGGREGATED CURRENCIES FIRST: `Is_Canonical` = 1 marks an aggregated currency — a named asset id (`usdc`, `doge`, `xrp`) or a chain's native coin (`bid:eth`, `bid:solana`, `bid:bitcoin`). Every other row (`bid:<chain>:<address>`) is ONE token that is mapped to no asset. Rows come in this order: aggregated currencies whose id, symbol or name equals the query; the other aggregated currencies; the other tokens; look-alikes last; USD volume decides inside each group. Is_Canonical says the id aggregates, not that it is the famous asset of that name: `bitcoin` is a meme token (Bitcoin is `bid:bitcoin`, whose supply and market cap count only the wrapped BTC on the indexed chains — do not report them as Bitcoin's), and one asset can have several ids (`trx` and `bid:tron`; `matic`, `pol` and `bid:matic`). NO ROW WITH Is_Canonical = 1 means the asset has no aggregated currency here — it is not covered, or it did not trade in the last 24 hours. The rows are then separate tokens that merely carry its name (bridged, wrapped or unrelated): say the asset is not covered and never quote such a row as the asset's price. canonical_only=1 returns the aggregated currencies alone. LOOK-ALIKES: `Symbol_Lookalike` = 1 means the token carries the symbol of an aggregated currency — `Lookalike_Of` names that currency (look-alike letters such as a Cyrillic `О` count as the same) — but is NOT part of it: never present it as that asset or use it for its price; call currency_price with the Lookalike_Of id instead. Tokens that merely share a common-word ticker (SUN, GOAT, …) with a currency are flagged too. `Matched_Via` = 'alias' marks an aggregated currency found because a token named exactly like the query, with at least $10,000 of USD volume in the last 24 hours, carries its symbol (e.g. "ripple" finds `xrp`); 'text' = its own name or symbol matched. `Symbol_NonAscii` = 1 flags a symbol that is not plain ASCII (normal for CJK / emoji names). `Volume_Usd_24h` is `null` when no volume is recorded at currency level — the case for the major USD stablecoins (usdc, usdt, dai, …). That is a gap of the aggregation, not a sign they are untraded; their tokens carry the volume (find_tokens). `Market_Cap_Usd` is circulating-supply based and is `null` when no circulating supply is known for the asset — normal for most long-tail assets, and not a sign the asset is untraded. `Fdv_Usd` (the total-supply valuation) is returned alongside it; label that number FDV, never "market cap", and treat a huge one with suspicion — supply that was minted and then parked on a burn address (`0x…dead`, `0x0`) still counts in the total supply behind it. `Fdv_Usd` is itself `null` when even the total supply is unknown — BOTH are null for an asset that carries no supply figures at this aggregated level, the case for several major stablecoins; resolve one contract with `find_tokens` and use `token_price` for a valuation then. Both are also WITHHELD (`null`, with a non-empty `Valuation_Warning`) when the supply or valuation behind them is implausible — report the valuation as unavailable. LONG NAMES: a name longer than 256 characters or a symbol longer than 64 is not searched (spam tokens that glue hundreds of asset names together). Returned names are cut at 128 characters and symbols at 32, ending in `…`; Name_Truncated / Symbol_Truncated = 1 marks a cut value.
    ConnectorOAuth
  • ADDRESS FLOW SUMMARY / top counterparties: who an XRP Ledger (xrp, XRP, ripple, XRPL) account pays and who pays it, in one call — profile (payments sent / received, distinct receivers / senders, tagged incoming payments) + TOP receivers AND TOP senders (ranked by number of payments then Σ amount). Collapses address_profile + trace_next_hop(out) + an incoming convergence into a single call — call this FIRST when triaging a hop. Returns a computed Role over the same window and currencies as the profile counts (the last `days`, all currencies): receive_only (no outgoing payment in the window) / send_only (no incoming one) / no_transfers (neither) / hub (thousands of senders AND receivers — don't trace deeper) / consolidator (senders ≫ receivers) / distributor (receivers ≫ senders) / relay (neither dominates). An account paid mostly with destination tags (Tagged_Payments_Received close to Payments_Received) is a shared deposit account — an exchange or custodian — whatever its Role. Profile counts are all-currency; the top arrays honor currency, currency_id, issuer, min_amount and max_amount. The arrays carry NO labels: pass Address and the Top_Receivers / Top_Senders counterparties to labels_for_addresses(chain='ripple') in ONE call — it knows the reserve and proof-of-reserves accounts of the large exchanges (Binance's among them); coverage is otherwise sparse, so an empty answer is a coverage gap, not a clean account. For raw rows use xrp_transfers_in / xrp_transfers_out. READING THE TOP ARRAYS: positional 6-tuples [counterparty, amount, currency, currency_id, payments, tagged_payments] (the Top_Fields column lists these names in the same order), one entry per (counterparty, currency) — the same address repeats once per currency it moved. tagged_payments > 0 on a receiver = you paid a shared deposit account (exchange) with destination tags. ONLY PAYMENTS between two different accounts are counted; value moved by an account deletion, check, escrow, payment channel, AMM or NFT sale has no recorded counterparty and is not in the arrays (see Type=other in xrp_transfers_in / xrp_transfers_out). Failed transactions never count. CURRENCY: native XRP is currency_id 413663; any other currency_id is a currency CODE that look-alike issuers reuse — pin the real token with currency_id plus issuer (receivers: the token this account sent; senders: the token this account received). Amounts here are TOKEN UNITS, never USD - no USD value is available in this data, so there is no usd filter and totals for different currencies must not be compared or added together. For a ranking you can reason about, pin ONE currency with currency_id, or bound the range with min_amount / max_amount. Counts and rankings cover the LAST 90 DAYS by default, not the account's whole lifetime; raise days for a longer period. Window_Days / Window_From on the row state the period actually covered: an account busy long ago but quiet since comes back all zeros - raise days.
    ConnectorOAuth
  • MONEYFLOW GRAPH EDGES out of an XRP Ledger (xrp, XRP, ripple, XRPL) account: Source → Target, total Amount, Currency, Currency_Id, payment count and how many of them carried a destination tag. Building block for a MoneyFlow DIAGRAM — call per address/hop, collect edges, render Mermaid `graph LR`, flag & stop at exchange / service nodes (the edges carry no labels — identify targets with labels_for_addresses(chain='ripple') in one call; a target receiving tagged payments is a shared deposit account, typically an exchange). Edges are ranked by number of payments then amount. Pin a currency with currency_id to avoid dust and spam tokens; time-window the edges with after_time / before_time. An edge carries the currency that LEFT the source: a cross-currency payment shows only the sent side (what the target received is in xrp_transfers_in of the target), and a conversion into another currency inside one account (a payment to itself) is not an edge at all — to spot an off-ramp, call WITHOUT a currency filter and compare the currencies of consecutive hops. For raw rows use xrp_transfers_out. ONLY PAYMENTS between two different accounts form edges. Value moved by an account deletion, check, escrow, payment channel, AMM or NFT sale has no recorded target on its sending leg, so it is NOT an edge here — open such transactions (Type=other in xrp_transfers_out) with xrp_tx_transfers (an escrow or payment channel pays out in a later, separate transaction). Failed transactions never count. CURRENCY: native XRP is Currency_Id 413663; any other Currency_Id is a currency CODE that look-alike issuers reuse — pin the real token with currency_id plus issuer (matched on the token that left the source). Amounts here are TOKEN UNITS, never USD - no USD value is available in this data, so there is no usd filter and totals for different currencies must not be compared or added together. For a ranking you can reason about, pin ONE currency with currency_id, or bound the range with min_amount / max_amount. Counts and rankings cover the LAST 90 DAYS by default, not the account's whole lifetime; raise days for a longer period.
    ConnectorOAuth
  • AUTO-WALK the dominant (largest total amount) OUTGOING PAYMENT edge of ONE currency from an XRP Ledger (xrp, XRP, ripple, XRPL) account, hop by hop, up to 5 hops — collapses ~5 manual xrp_trace_next_hop calls into one. Follows native XRP by default (currency_id 413663). Every hop returns Hop*_To (the account that received), Hop*_Edge_Total, Hop*_Transfers and Hop*_Tagged_Transfers (how many of those payments carried a destination tag), plus Hops_Found and Path_Status for the walk itself. Hop*_Edge_Total is NOT the amount that travelled along the path: it is the total of EVERY payment of that currency between that hop's sender and receiver over the whole window (days, counted back from today on every hop), so it can be far larger than the sum you are tracing and the hop totals are not comparable with each other. For one hop's full ranking call xrp_trace_next_hop on the hop's sender. The walk NEVER goes back to an account it has already visited (the seed included), and by default it STOPS at an account that was paid with destination tags: that is a shared deposit account, typically an exchange, and its onward payments are the service's own movements, not the traced funds (Path_Status EXCHANGE_DEPOSIT; stop_at_tagged=0 walks on). READ Path_Status FIRST — NO_MATCH means no outgoing payment of this currency in the window (wrong currency_id, or raise days), PATH_END means the trail really ran out, DEPTH_LIMIT means it may continue past hop 5. The walk carries no labels: pass the hop accounts to labels_for_addresses(chain='ripple') in one call and read down to the first labeled account. ONLY PAYMENTS count: value that left through an account deletion, check, escrow, payment channel, AMM or NFT sale is not followed. currency_id identifies a currency CODE, which look-alike issuers reuse, and the walk does not separate issuers — for an issued token check each hop with xrp_trace_next_hop and its issuer filter; a hop INTO the token's issuer means the tokens were redeemed. Amounts are in the currency's own units (XRP, not drops), never USD. LIMITS: follows only the single biggest edge per hop (misses splits / fan-outs), fixed depth 5. For branching tracing call xrp_trace_next_hop hop by hop and choose the next account yourself (prompt_playbook with playbook=money_flow returns the full procedure). A multi-hop walk over busy accounts can take several seconds; lower days, or raise min_amount to step over dust edges.
    ConnectorOAuth
  • CONVERGENCE primitive for XRP Ledger (xrp, XRP, ripple, XRPL) tracing: aggregate an account's OUTGOING PAYMENTS by receiver and currency (Σ amount, count, how many carried a destination tag, first/last seen), ranked by number of payments then total amount. Stop when a receiver is an exchange / service — the rows carry no labels, so check the receivers with labels_for_addresses(chain='ripple') in one call; a receiver whose payments carry destination tags (Tagged_Transfers, Distinct_Destination_Tags) is a shared deposit account, typically an exchange. Narrow with currency_id (recommended), after_time / before_time, min_amount. One row per (receiver, currency); for raw rows use xrp_transfers_out. ONLY PAYMENTS between two different accounts are counted. Value that left through an account deletion, a check, an escrow or payment channel, an AMM or an NFT sale is recorded without a receiver and is NOT in this ranking — look for Type=other rows in xrp_transfers_out and open those transactions with xrp_tx_transfers (an escrow or payment channel pays out in a later, separate transaction). Failed transactions never count. CURRENCY: native XRP is Currency_Id 413663; any other Currency_Id identifies only a currency CODE, which look-alike issuers reuse (counterfeit "RLUSD", "USD") — pin the real token with currency_id plus issuer (matched on the token that left this account). Amounts here are TOKEN UNITS, never USD - no USD value is available in this data, so there is no usd filter and totals for different currencies must not be compared or added together. For a ranking you can reason about, pin ONE currency with currency_id, or bound the range with min_amount / max_amount. Counts and rankings cover the LAST 90 DAYS by default, not the account's whole lifetime; raise days for a longer period. On a very busy account (an exchange hot wallet) this aggregates millions of payments and can take several seconds — pin currency_id and narrow the period.
    ConnectorOAuth
  • LAST RESORT — arbitrary READ-ONLY SQL against the XRP Ledger (xrp, XRP, ripple, XRPL) data. Bitquery MCP xrp_* tools are the PRIORITY; use this ONLY when none can answer. No query optimizer here: account model — query the per-address tables `ripple_flow.transfers_from` (outgoing, key `transfer_from`) and `ripple_flow.transfers_to` (incoming, key `transfer_to`); per transaction `ripple.transfers_tx` (key `tx_hash_bin`). NEVER JOIN big tables (use `IN (SELECT …)`). EVERY table is organized by month of `tx_date` back to 2013 and keyed only by address or hash: ALWAYS filter `tx_date` (e.g. `tx_date >= today() - 30`) or the query reads the whole history and may time out. Time = `tx_time`, ledger index = `block`; date-times come back as 'YYYY-MM-DD hh:mm:ss' UTC; select formatDateTime(t, '%FT%TZ') for ISO. Transfer columns: tx_hash_bin (binary — `hex(tx_hash_bin)` out, `unhex('…')` in), tx_type (Payment, OfferCreate, AccountDelete, CheckCash, EscrowFinish, …), transfer_from, transfer_to (classic r-addresses, case-sensitive), currency_from_id / value_from (what left the sender), currency_to_id / value_to (what the receiver got — the delivered amount), destination_tag (String, '0' = none), direction: 'payment' (account to account; from = to is a currency conversion), 'trade' (a filled offer, from = to), 'other' (one leg of an account deletion, check, escrow, payment channel, AMM, NFT sale or path rounding — exactly one of transfer_from / transfer_to is empty), 'nft_trade' / 'mint' / 'burn' (NFTs), 'fee' (one per signed transaction; a FAILED transaction leaves only its fee row, except an expired NFT offer acceptance that still lists an nft_trade row). Exclude fees with `direction != 'fee'`; for account-to-account flow use `direction = 'payment' AND transfer_from != transfer_to`. Amounts: amount = `value_from / dictGetFloat64('currency','divider',toUInt64(currency_from_id))` (XRP is currency id 413663, stored in drops, divider 1e6; issued tokens divider 1); code = `dictGetString('currency','symbol',toUInt64(id))` — 3-letter codes as text, others as 40-hex, NFT ids 64-hex (`splitByChar('\0', unhex(code))[1]` decodes e.g. RLUSD). A currency id is a CODE shared by every issuer of that code (counterfeit issuers included); transfer rows carry no issuer — it is in `ripple.payments_from` / `payments_to` / `payments_tx` (successful Payments: amount_*, delivered_*, send_max_* currency_id / value / issuer, tag, partial). Transaction status, fee (drops), memos, source_tag and signer: `ripple.transactions_tx` (key tx_hash_bin) and `ripple.transactions_sender` (key tx_sender) — result ('tesSUCCESS', 'tecPATH_DRY', …), success. Per-account balance changes, including the token issuer: `ripple.balances` (key account, currency_id). Also present: ripple.offers_*, escrows_tx, checks_tx, nftoken_offers_*, account_roots_tx — inspect with DESCRIBE TABLE first. No USD values; no inline labels (use labels_for_addresses with chain='ripple'). Read-only. 64-bit integers come back as JSON numbers, exact only up to 2^53: return a hash such as cityHash64(...) or any other 64-bit id as toString(x). A result of more than 25,000 rows is not cut off - the whole query fails with an error - so aggregate (GROUP BY, count) or add a LIMIT of at most 25,000.
    ConnectorOAuth
  • [DRILL-DOWN] Liquidation map for a coin (e.g. 'BTC', 'ETH'), binned into price clusters — the same feed that powers positioning's liq_magnet and market_state's target/invalidation. Shows long/short imbalance per zone (long_usd vs short_usd per bucket), nearest dense cluster below and above price, and top zones by notional. PROVENANCE VARIES BY COIN — always read the returned `observed` / `modeled` / `method` fields before describing the data. BTC, ETH and HIP-3 tokenized stocks/metals/indices have a DEX book, so their maps are OBSERVED per-position liquidation prices (Hyperliquid + GMX). Coins with no DEX book (XRP, SOL, DOGE, most alts) return a MODELED estimate built from aggregate CEX open interest and calibrated leverage tiers — real zones, but an estimate, and its long/short totals are symmetric by construction. Same data as REST /liqmap/{coin}.
    ConnectorNo auth
  • Is macro with you or against you? Get the current regime (bull/bear/risk_on/risk_off/choppy), directional signal and confidence, and macro context (DXY, VIX, fear/greed) before entering a position. Data-only, no LLM latency. coverage disclosed per token. REST equivalent: POST /analyze/market (0.25 USDC). Args: token: Token symbol (BTC, ETH, SOL, XRP, ADA, DOGE, AVAX, LINK, BNB, ATOM, DOT, ARB, SUI, OP, LTC, AMP, ZEC) context: Optional historical context window ('7d' or '30d'). Adds percentile rankings.
    ConnectorNo auth
  • [DRILL-DOWN] Liquidation map for a coin (e.g. 'BTC', 'ETH'), binned into price clusters — the same feed that powers positioning's liq_magnet and market_state's target/invalidation. Shows long/short imbalance per zone (long_usd vs short_usd per bucket), nearest dense cluster below and above price, and top zones by notional. PROVENANCE VARIES BY COIN — always read the returned `observed` / `modeled` / `method` fields before describing the data. BTC, ETH and HIP-3 tokenized stocks/metals/indices have a DEX book, so their maps are OBSERVED per-position liquidation prices (Hyperliquid + GMX). Coins with no DEX book (XRP, SOL, DOGE, most alts) return a MODELED estimate built from aggregate CEX open interest and calibrated leverage tiers — real zones, but an estimate, and its long/short totals are symmetric by construction. Same data as REST /liqmap/{coin}.
    ConnectorNo auth
  • Call this when the user asks about Bitcoin, Ethereum, Solana or XRP spot ETF flows: daily net inflows or outflows, cumulative flow since launch, or total net assets of the US spot ETFs (IBIT, FBTC, ETHA, XRPC and the rest). Returns one row per finalized US trading day and asset with net inflow, total net assets, cumulative inflow since launch and value traded, all in USD. History by asset: BTC and ETH since 2025-05-20, SOL since 2025-10-28, XRP since 2026-09-08.
    ConnectorNo auth
  • Buy XRP on Coinbase and withdraw it to an XRPL address in one call. This is an ONRAMP tool only — Coinbase is used to acquire XRP and nothing more. All escrow creation and settlement happens on XRPL, not on Coinbase. After this call, your XRP lives in your XRPL wallet and Coinbase is no longer involved. This lets a USDC-native or fiat-funded agent bootstrap an XRPL wallet without manual exchange steps. Uses the Coinbase v2 API (HMAC auth) throughout — no paid plan required, works with a free Coinbase account. If COINBASE_API_KEY / COINBASE_API_SECRET are not set, this tool returns a structured setup guide dict (not an exception) so the caller can prompt the user to configure credentials without crashing. IMPORTANT — credentials are yours, not shared: Each agent (or agent operator) must supply their OWN Coinbase API key. Never use someone else's key — it would charge their account, not yours. The AgentTrust MCP server itself holds no Coinbase credentials. Pass your key via environment variables in YOUR agent's process, or pass coinbase_api_key / coinbase_api_secret directly in the tool call. One-time human setup (takes ~5 minutes): 1. Create a free account at coinbase.com and complete KYC (passport/ID) 2. Go to coinbase.com/settings/api → New API Key 3. Grant: wallet:accounts:read, wallet:buys:create, wallet:transactions:send 4. Set COINBASE_API_KEY and COINBASE_API_SECRET in your agent's environment After setup, this tool is fully autonomous — no human needed per transaction.
    ConnectorNo auth
  • Recent daily spot-ETF net flows (USD) for an underlying asset (BTC, ETH, SOL, XRP; defaults to BTC): latest day total, per-fund breakdown, and the trailing daily trend. Positive means net inflows. Flows settle behind spot and skip weekends, so the latest row is routinely a day or more old — its age is reported next to the date, and the price it carries is the price on THAT date, not spot. 'symbol' is accepted as an alias for 'asset'.
    ConnectorNo auth
  • Runs a strategy against historical data purely to produce a signal timeline used to confirm OTHER backtests — not a backtest itself. Walks the same candles and evaluates the same DSL as submit_backtest, but never simulates a position: no trade, no PnL, no WinRate/drawdown, none of that applies here, because this strategy is never meant to be traded on its own. Returns immediately with an id and status — call get_confirmation_source to check completion, then pass that id as a confirmationSources sourceId in submit_backtest (e.g. only count an XRP entry once a BTC-neutral confirmation source agrees). Costs the same capacity as a regular backtest of the same size — the compute is identical, it just skips trade simulation.
    ConnectorNo auth