N9T2 XRPL Agent Gateway
Server Details
Agent-native XRPL infrastructure: 19 paid MCP tools, x402 USDC on Base, non-custodial XRPL actions.
- Status
- Healthy
- Uptime
- 93.3% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 22 tools
Each tool targets a distinct XRPL method or bridge step, and descriptions explicitly cross-reference alternatives (e.g., ledger vs ledger_data, global vs account offers). The catch-all account-objects tool is clearly positioned as a fallback, minimizing misselection.
All names use consistent snake_case with the n9t2_ prefix and domain/action patterns. Minor deviations exist: bridge_quote and bridge_receipt are noun-only rather than verb_noun, and subscribe is a bare verb.
22 tools is on the higher side, but each maps to a distinct XRPL method or bridge operation. The breadth reflects the server's role as a comprehensive XRPL gateway, so the count is reasonable though slightly heavy.
The set covers read-only XRPL queries (accounts, ledgers, transactions, DEX, AMM, NFTs, channels, trust lines), generic transaction preparation/submission, live subscriptions, and the full bridge lifecycle (quote, submit, receipt). No obvious gaps in the domain surface.
Available Tools
22 toolsn9t2_bridge_quoteAInspect
FREE. Get a live, firm quote to move funds both ways between native XRP on the XRP Ledger and BTC on Bitcoin, BNB, USDT or USDC on BNB Chain (bsc), or USDC or ETH on Base (12 live routes). Returns quote_id, exact payment instructions (amount, asset, network, pay_to, expiry), the N9T2 fee (1.45 XRP equivalent) and the estimated destination amount. Creating a quote moves no funds. Optional source_amount up to 1000 USDC / 1500 XRP / 0.5 ETH / 1.5 BNB / 1000 USDT / 0.02 BTC; larger transfers go to the OTC desk (boss@n9t2.com). Next: customer approves and pays in their own wallet, then call n9t2_bridge_submit_payment.
| Name | Required | Description | Default |
|---|---|---|---|
| source_asset | Yes | Asset the customer pays with: XRP on xrpl; BTC on bitcoin; BNB, USDT or USDC on bsc; USDC or ETH on base. | |
| source_chain | Yes | Chain the customer pays from: xrpl (XRP Ledger), bitcoin, bsc (BNB Chain) or base. Every route has xrpl on one side. | |
| source_amount | No | Optional amount to bridge in the source asset as a decimal string, e.g. '250'. The N9T2 fee is added on top. Self-serve cap: 1000 USDC, 1500 XRP, 0.5 ETH, 1.5 BNB, 1000 USDT or 0.02 BTC. Omit for the live route minimum. | |
| destination_asset | Yes | Asset delivered: XRP on xrpl; BTC on bitcoin; BNB, USDT or USDC on bsc; USDC or ETH on base. | |
| destination_chain | Yes | Chain that receives the funds; must differ from source_chain, and one of the two must be xrpl. | |
| destination_address | Yes | Customer-controlled destination wallet: r... classic address for xrpl, bc1.../3.../1... for bitcoin, 0x... for bsc or base. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give generic hints (readOnlyHint=false, idempotentHint=false, openWorldHint=true); the description adds the substantive facts an agent needs: the call is free, it creates a record but moves no funds, it returns quote_id, exact payment instructions (amount, asset, network, pay_to, expiry), a 1.45 XRP-equivalent fee, and an estimated destination amount. It also discloses the per-asset self-serve caps, which the annotations cannot express. No contradiction with readOnlyHint=false since a quote record is still created.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with 'FREE' and the route scope, then returns, then behavior, then next step – a sensible ordering with no filler sentences. It is somewhat long and repeats the amount caps that already live in the schema, which is the only waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so: it enumerates the returned fields and the fee. Combined with the workflow handoff to n9t2_bridge_submit_payment and the OTC escalation path, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does add the fee-on-top rule and the caps/OTC escalation for source_amount, but it largely restates what the schema's own field descriptions already say, adding little new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get a live, firm quote') plus the exact resource and scope ('move funds both ways between native XRP on the XRP Ledger and BTC on Bitcoin, BNB, USDT or USDC on BNB Chain (bsc), or USDC or ETH on Base (12 live routes)'). This cleanly separates it from siblings n9t2_bridge_submit_payment and n9t2_bridge_receipt, which are named or implied as distinct steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says creating a quote moves no funds, prescribes the workflow ('Next: customer approves and pays in their own wallet, then call n9t2_bridge_submit_payment'), and gives a when-not path: transfers above the self-serve caps go to the OTC desk at boss@n9t2.com. An agent knows both the next call and the escalation condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_bridge_receiptARead-onlyIdempotentInspect
FREE. Read the immutable, customer-safe receipt for a bridge transfer by quote_id: status, amount paid, amount delivered, N9T2 fee, route cost and the payment and delivery transaction hashes. A transfer is complete only when status is 'settled' and settlement.status is 'completed'. 404 means not ready yet.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | quote_id of the transfer to check. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, openWorld, so the safety profile is covered. The description adds genuinely useful behavior beyond that: the call is free, the receipt is immutable and customer-safe, the exact condition that marks a transfer complete, and how a 404 should be read. It does not discuss rate limits or caching, but the added context is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with no filler, front-loaded with the most decision-relevant fact ('FREE') and then the resource and its fields. Every sentence earns its place by adding interpretation the schema and annotations do not carry.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly enumerates the returned fields. It also supplies the completion predicate and the 404 semantics, which are the two things an agent needs to act on the response. Nothing essential is missing for a single-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter at 100% schema description coverage, the schema already documents quote_id. The description only restates that lookup is 'by quote_id' and adds no format, sourcing, or validation detail, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (immutable receipt for a bridge transfer) and enumerates exactly what the receipt contains: status, amounts, fee, route cost, and transaction hashes. This clearly separates it from siblings like n9t2_bridge_quote and n9t2_bridge_submit_payment, which act on the transfer rather than reporting on it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real usage context: the 'FREE' tag signals no cost to call, the completion rule ('settled' + settlement.status 'completed') tells the agent how to interpret the result, and '404 means not ready yet' tells it to retry rather than treat it as an error. It stops short of explicitly naming alternative tools for pre-transfer or payment steps, so it is clear context without full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_bridge_submit_paymentAIdempotentInspect
FREE. Submit the transaction hash of the customer's real payment for a bridge quote. N9T2 verifies it on-chain against the quote (exact amount, asset, recipient, expiry) and, once verified, executes the cross-chain delivery through its exactly-once worker. Resubmitting the same quote_id and hash returns the existing record. Verification is not completion: follow up with n9t2_bridge_receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | Exact quote_id from n9t2_bridge_quote. | |
| transaction_hash | Yes | Hash of the customer's actual source-chain payment for that quote. Never a planned or fabricated hash. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, but the description adds substantial context beyond them: on-chain verification against exact amount, asset, recipient and expiry, execution via an exactly-once worker, and idempotent resubmission returning the existing record. It also warns that verification is not completion, which the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the cost signal ('FREE'), then the action, then verification semantics, then the follow-up. Every sentence carries distinct, non-redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with no output schema, the description covers the full lifecycle: what is submitted, how it is verified, what happens on duplicate submission, and where to go next. Nothing an agent needs in order to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented in-schema (quote_id from n9t2_bridge_quote, hash must be real not fabricated). The description reinforces the 'real payment' requirement but adds no new syntax, format, or constraint beyond what the schema already supplies, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: submit the transaction hash of the customer's real payment for a bridge quote. It clearly differentiates itself from n9t2_bridge_quote (which produces the quote) and n9t2_bridge_receipt (the follow-up), so an agent can place it in the bridge flow without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear ordering context by naming the follow-up tool ('follow up with n9t2_bridge_receipt') and by tying the input back to n9t2_bridge_quote. It also flags the cost ('FREE') and the resubmission behavior. It stops short of an explicit when-not clause, but the sequencing guidance is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_find_pathARead-onlyIdempotentInspect
Read-only XRPL payment-path discovery for planning a Payment from source_account to destination_account. destination_amount is the exact amount the destination should receive, provided as XRP drops or an issued-currency object; the result returns candidate path alternatives and source-amount information to compare before constructing the payment. Use this when XRPL routing is needed between the source and destination accounts; use n9t2_xrpl_get_book_offers for DEX order-book depth instead. This tool only discovers paths and does not construct, sign, submit, or modify any XRPL transaction; after selecting a route, use n9t2_xrpl_prepare_transaction to build the unsigned payment.
| Name | Required | Description | Default |
|---|---|---|---|
| source_account | Yes | XRPL classic account address used as the source of payment-path discovery. | |
| destination_amount | Yes | Destination amount to deliver. Use a string for XRP drops or an issued-currency object containing currency, issuer, and value. | |
| destination_account | Yes | XRPL classic account address that will receive the destination amount. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral context: it does not construct, sign, submit or modify any transaction, and it discloses the result shape (candidate path alternatives plus source-amount information). Only the auth/rate-limit dimension is unaddressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences that each carry distinct information: purpose/scope, parameter semantics, routing to alternatives and follow-ups. Slightly dense but no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter read-only discovery tool with no output schema, the description covers what it returns, what it deliberately does not do, and the correct follow-up tool. Nothing an agent needs in order to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description still adds meaning beyond the schema by defining destination_amount as the exact amount the destination should receive and by clarifying the two accepted encodings in terms of intent rather than just types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (read-only XRPL payment-path discovery) plus scope (source_account to destination_account) and explicitly distinguishes itself from n9t2_xrpl_get_book_offers. An agent can separate this from the other 17 siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use ('when XRPL routing is needed between the source and destination accounts'), an explicit alternative with its own condition ('use n9t2_xrpl_get_book_offers for DEX order-book depth instead'), and a named follow-up tool (n9t2_xrpl_prepare_transaction) for the next step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_get_account_infoARead-onlyIdempotentInspect
Read-only XRPL current-account-state lookup for one account. account must be a valid XRPL classic account address; the result returns the current balance, sequence, owner count, flags, and account settings without submitting or modifying any XRPL transaction, and calls remain subject to the configured gateway rate limits. Use this for current account state only; use n9t2_xrpl_get_transaction or n9t2_xrpl_list_account_transactions for transaction history, and n9t2_xrpl_get_ledger_data for raw ledger objects.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | XRPL classic account address whose current account state should be retrieved. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered structurally. The description goes beyond that by disclosing gateway rate limits, stating no transaction is submitted/modified, and enumerating the returned fields. It stops short of pagination or error behavior, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler, and the scope/return profile is front-loaded before the sibling routing. The return-field enumeration is slightly long but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the returned fields (balance, sequence, owner count, flags, settings), and it covers the read-only/rate-limit behavior. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, so the schema already documents it. The description adds a format constraint ('must be a valid XRPL classic account address'), which is a modest but real addition; baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read-only XRPL current-account-state lookup for one account') and explicitly contrasts itself with named siblings. An agent can distinguish it from get_transaction, list_account_transactions, and get_ledger_data without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives both the selection condition ('Use this for current account state only') and the alternatives ('use n9t2_xrpl_get_transaction or n9t2_xrpl_list_account_transactions for transaction history, and n9t2_xrpl_get_ledger_data for raw ledger objects'). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_get_amm_infoARead-onlyIdempotentInspect
Read-only XRPL Automated Market Maker (AMM) state lookup for a specific pool. Identify the pool with amm_account, or with the paired asset and asset2 currency objects; account is optional context used by the native AMM lookup when applicable. Use ledger_hash or ledger_index to pin the lookup to a specific ledger. The result returns native amm_info data including pool balances, LP token supply, trading fee, auction slot, and vote slots when present. This paid lookup does not modify the ledger and is subject to the configured gateway rate limits. Use this for AMM pool state; use n9t2_xrpl_get_book_offers for DEX order-book depth and n9t2_xrpl_get_ledger_data for raw ledger-state objects.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | No | First AMM asset specification using an XRPL currency object. | |
| asset2 | No | Second AMM asset specification paired with asset. | |
| account | No | Optional XRPL account used by the native AMM lookup when applicable. | |
| amm_account | No | Optional AMM account address identifying the specific AMM ledger object. | |
| ledger_hash | No | Optional ledger hash used to pin the AMM lookup to a specific ledger. | |
| ledger_index | No | Optional ledger index or selector used to pin the lookup to a specific ledger. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint, so the safety profile is covered. The description adds genuinely new context: it is a paid lookup, it does not modify the ledger, it is subject to gateway rate limits, and it returns native amm_info with pool balances, LP token supply, fee, auction slot and vote slots. That is meaningful behavior beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded: purpose first, then pool identification, then ledger pinning, then return shape, then sibling routing. Every sentence carries information, though it is on the longer side.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the return fields (balances, LP supply, fee, auction slot, vote slots). Combined with the parameter model and rate-limit note, an agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so 3 is the baseline, but the description adds real meaning by explaining the two alternative pool-identification paths (`amm_account` OR the paired `asset`/`asset2`), that `account` is optional context, and that ledger_hash/ledger_index pin the lookup. This reconciliation goes beyond the per-field schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Read-only XRPL Automated Market Maker (AMM) state lookup for a specific pool') and explicitly distinguishes itself from two named siblings, n9t2_xrpl_get_book_offers and n9t2_xrpl_get_ledger_data. An agent can route to it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit alternatives and the conditions that select them: use this for AMM pool state, use get_book_offers for DEX order-book depth, use get_ledger_data for raw ledger-state objects. Nothing is left to inference about when to pick this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_get_book_offersARead-onlyIdempotentInspect
Read-only XRPL DEX order-book lookup for a specific trading pair. taker_gets and taker_pays are the required XRPL currency-specification objects that define the two sides of the book; limit optionally caps the number of offers returned. The result provides global book offers and market-depth data without modifying the ledger, and calls are subject to the configured gateway rate limits. Use this for global DEX order-book depth; use n9t2_xrpl_list_account_offers for one account's outstanding offers and n9t2_xrpl_find_path when you need payment-path discovery instead.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional maximum number of DEX order-book offers to return. | |
| taker_gets | Yes | Currency specification for the asset the taker receives in the XRPL DEX order book. | |
| taker_pays | Yes | Currency specification for the asset the taker pays in the XRPL DEX order book. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered; the description's 'without modifying the ledger' is largely redundant with that. It does add genuinely new context, though: calls are subject to the configured gateway rate limits, and the result contains global book offers plus market-depth data. Pagination behavior beyond the limit cap is not described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all front-loaded, with the core purpose first and routing last. Slight redundancy: 'without modifying the ledger' restates what readOnlyHint already covers, which is the only sentence that does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by stating that the result yields global book offers and market-depth data. Parameter meaning for the required nested currency objects is described at the intent level. What is missing is any hint of result shape or the depth/ordering of returned offers, which matters for a book-depth tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including descriptions for limit, taker_gets, and taker_pays, so the baseline is 3. The description adds mild framing (the two currency-spec objects define the two sides of the book; limit caps offers returned) but no format details or structure for the nested currency objects that the schema leaves as additionalProperties: true.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb+resource (read-only order-book lookup) and the scope (a specific trading pair) in one line. It also names two siblings and the condition each covers, so an agent can distinguish it from n9t2_xrpl_list_account_offers and n9t2_xrpl_find_path without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The last sentence is explicit routing: 'Use this for global DEX order-book depth; use n9t2_xrpl_list_account_offers for one account's outstanding offers and n9t2_xrpl_find_path when you need payment-path discovery.' Both when-to-use and alternatives are stated, with no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_get_gateway_balancesARead-onlyIdempotentInspect
Read-only XRPL issued-asset exposure calculation for one issuing account. account is the required XRPL issuer address; optionally use hotwallet with one address or a list of operational hot-wallet addresses when those balances should be included in the calculation, and use ledger_index to pin the calculation to a specific ledger. strict controls how account identifiers are interpreted. The result reports the calculated issued-asset exposure without modifying the ledger, and calls are subject to the configured gateway rate limits. Use this for issuer-level issued-asset exposure; do not use it for trust-line holdings of a single account, where n9t2_xrpl_list_account_lines is the appropriate tool.
| Name | Required | Description | Default |
|---|---|---|---|
| strict | No | Whether account identifiers should be interpreted strictly as supplied. | |
| account | Yes | XRPL issuing account whose issued-asset balances should be calculated. | |
| hotwallet | No | Optional XRPL hot-wallet account address or list of hot-wallet addresses. | |
| ledger_index | No | Optional ledger index or selector for the balance calculation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so safety is largely covered; the description's "without modifying the ledger" is largely redundant. It does add genuinely new behavioral context, though: calls are subject to configured gateway rate limits, and the result is a computed exposure figure rather than raw ledger entries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and scope come first, followed by parameter behavior, then the safety/limits note, then the sibling exclusion — a sensible front-loaded order. It is dense with back-to-back clauses and slightly longer than needed, but no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only calculation tool with no output schema, the description covers what is returned (the calculated exposure), safety, rate limits, and the nearest alternative tool. It omits pagination/return-format detail and does not explain what a "strict" interpretation changes, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds semantic intent beyond the schema text: hotwallet addresses are those whose balances "should be included in the calculation," and ledger_index "pins the calculation to a specific ledger." It does not, however, clarify strict's interpretation semantics beyond the schema wording.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("issued-asset exposure calculation for one issuing account") and explicitly contrasts itself with the sibling tool n9t2_xrpl_list_account_lines. An agent can distinguish it from the other list_* / get_* siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit positive routing ("Use this for issuer-level issued-asset exposure") and an explicit exclusion with a named alternative ("do not use it for trust-line holdings of a single account, where n9t2_xrpl_list_account_lines is the appropriate tool"). It also explains the conditions under which the optional hotwallet and ledger_index parameters should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_get_ledgerARead-onlyIdempotentInspect
Read-only XRPL ledger header and metadata lookup. Omit ledger_index to use the current validated ledger, or provide a validated ledger index/selector to pin the lookup; set transactions=true to include that ledger's transactions and use expand=true to return those transactions as full objects. The result provides ledger metadata and, when requested, transaction data without modifying the ledger, and calls are subject to the configured gateway rate limits. Use this for ledger headers, metadata, and optional ledger transactions; use n9t2_xrpl_get_ledger_data instead when you need raw ledger-state objects.
| Name | Required | Description | Default |
|---|---|---|---|
| expand | No | Whether returned transactions should be expanded into full transaction objects. | |
| ledger_index | No | Optional validated ledger index or ledger selector. Omit to use the current validated ledger. | |
| transactions | No | Whether to include transactions contained in the requested ledger. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, openWorld, so the safety profile is covered. The description still adds real context beyond them: the default-to-current-validated-ledger behavior and that calls are subject to configured gateway rate limits. It does not detail response shape or error conditions, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then behavior, then routing. It is a single dense paragraph with little waste, though the middle sentence packs three clauses and the final 'use this for...' clause partly repeats the opening.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still tells the agent what comes back (ledger metadata plus optionally transactions) and how to control it. It stops short of describing pagination or the exact metadata fields, a minor gap for a read-only lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds the dependency the schema does not state: expand only yields full objects for transactions included via transactions=true. It also restates the omit-ledger_index default in operationally useful terms.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read-only XRPL ledger header and metadata lookup') and explicitly names the sibling it is not ('use n9t2_xrpl_get_ledger_data instead when you need raw ledger-state objects'). An agent can distinguish this from the other 18 siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use plus concrete conditions for each mode: omit ledger_index for the current validated ledger, pin via index/selector, set transactions/expand as needed. It also names the alternative tool and the exact condition that selects it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_get_ledger_dataARead-onlyIdempotentInspect
Read-only XRPL raw ledger-state lookup for a ledger. Omit ledger_index to use the default ledger, or provide a ledger index/selector to pin the lookup; use limit to cap the number of ledger-state objects returned and pass marker from a previous response to continue pagination. The result returns raw canonical ledger-state entries without modifying the ledger; large state queries should be paginated, and calls are subject to the configured gateway rate limits. Use this for canonical ledger-state objects; use n9t2_xrpl_get_ledger for ledger headers and transaction-list metadata instead.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional maximum number of ledger-state objects to return. | |
| marker | No | Pagination marker returned by a previous response. | |
| ledger_index | No | Optional ledger index or selector identifying the ledger whose state objects should be returned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered structurally. The description still adds real context beyond that: results are raw canonical entries, the ledger is not modified, large state queries should be paginated, and calls are subject to gateway rate limits — a genuine operational constraint the annotations do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core verb and resource, then the parameter guidance, then the sibling disambiguation last — a sensible ordering. It is a dense, semicolon-chained single paragraph, but every clause carries distinct information rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still characterizes the return (raw canonical ledger-state entries) and covers pagination, rate limits, and the alternative tool. For a three-parameter read tool with full annotation coverage, nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds semantics the schema lacks — notably that omitting `ledger_index` falls back to the default ledger, and that `marker` must come from a previous response. That default-behavior and pagination-chaining context goes beyond the field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Read-only XRPL raw ledger-state lookup for a ledger") and explicitly distinguishes itself from the nearest sibling, n9t2_xrpl_get_ledger, which is scoped to headers and transaction-list metadata. An agent can route between the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit operational guidance: omit `ledger_index` for the default ledger, supply it to pin a lookup, use `limit` to cap results, and pass `marker` to continue pagination. It also names the alternative tool and the condition that selects it, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_get_server_infoARead-onlyIdempotentInspect
Read-only XRPL server_info lookup for node health, server state, and validated-ledger status. Use this before interpreting ledger-dependent results when node health or freshness matters; the result provides the node/server status and validated-ledger information needed to assess whether subsequent ledger reads are current and usable. Use n9t2_xrpl_get_ledger for ledger metadata or n9t2_xrpl_get_ledger_data for raw ledger-state entries; this tool requires no parameters and does not modify the ledger.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds the useful 'no parameters' and 'use as a pre-flight health check' context, but also redundantly restates 'does not modify the ledger', which duplicates the annotations rather than adding new behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose and routing before the caveats, and most sentences earn their place. Minor redundancy in restating non-mutation and re-explaining ledger variants keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description responsibly indicates what the result contains (node/server status and validated-ledger information). For a zero-param read tool this is essentially complete, with only minor room to describe the freshness fields more concretely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4. The description reinforces this with 'requires no parameters', matching the empty schema without introducing confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read-only XRPL server_info lookup') and scopes it to node health, server state, and validated-ledger status. An agent can distinguish it from ledger/transaction siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use guidance ('before interpreting ledger-dependent results when node health or freshness matters') and names two alternatives with their distinct purposes (get_ledger for metadata, get_ledger_data for raw state). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_get_transactionARead-onlyIdempotentInspect
Read-only XRPL transaction lookup for one canonical transaction hash. transaction is the required hash; set binary=true only when binary-encoded transaction data is required, otherwise use the normal transaction representation. The result retrieves transaction data for that hash without modifying the ledger, and calls are subject to the configured gateway rate limits. Use this when the transaction hash is already known; use n9t2_xrpl_list_account_transactions for account-wide transaction history instead.
| Name | Required | Description | Default |
|---|---|---|---|
| binary | No | Whether to return the transaction in binary encoded form. | |
| transaction | Yes | Canonical XRPL transaction hash to retrieve. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint, and openWorldHint, so the safety profile is covered. The description adds a useful rate-limit disclosure ('calls are subject to the configured gateway rate limits') and reinforces non-modification, though it does not characterize return format or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four purposeful sentences with the core identity front-loaded. Parameter guidance, result behavior, and alternative routing are all included without filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with rich annotations and full schema coverage, the description is nearly complete. The only minor gap is that no output schema exists and the description does not characterize the returned transaction data structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds conditional meaning for binary ('set binary=true only when binary-encoded transaction data is required, otherwise use the normal transaction representation') beyond the schema's plain boolean description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read-only XRPL transaction lookup') and resource ('one canonical transaction hash'), and explicitly distinguishes itself from the account-wide sibling. An agent can identify the tool's scope without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance ('Use this when the transaction hash is already known') and names the alternative tool for account-wide history ('use n9t2_xrpl_list_account_transactions instead'). It also clarifies the conditional use of the binary parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_list_account_channelsARead-onlyIdempotentInspect
Read-only XRPL Payment Channel lookup for one account. account is the required XRPL classic account address; by default, the lookup returns channels where that account is the source. Use destination_account to filter channels by destination, ledger_index to pin the lookup to a validated ledger, and marker to continue pagination; limit caps returned channels and defaults to 200. The result lists Payment Channel entries without modifying the ledger, and calls are subject to the configured gateway rate limits. Use this for PaymentChannelCreate/Fund/Claim inspection; use n9t2_xrpl_list_account_objects for generic account ledger objects instead.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of Payment Channel entries to return. Default is 200. | |
| marker | No | Pagination marker returned by a previous response. | |
| account | Yes | XRPL classic account address whose Payment Channels should be listed. | |
| ledger_index | No | Optional validated ledger index or selector. | |
| destination_account | No | Optional destination account filter. When supplied, return channels whose destination is this account. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description still adds real value beyond them: 'without modifying the ledger' and, notably, 'calls are subject to the configured gateway rate limits' — an operational constraint not present in the annotations. It does not describe failure modes or result shape in depth, which keeps it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then parameters, then behavioral notes, then sibling routing — a logical order with no filler sentences. It is on the denser end for a 5-parameter lookup, but every clause carries information and nothing is repeated from the schema verbatim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description covers the essentials an agent needs: default scoping (source), pagination via marker, limit default of 200, ledger pinning, and the rate-limit caveat. It stops short of describing the entry fields returned, which is a minor gap for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds semantics the schema lacks: it clarifies that by default the account is treated as the channel *source* and that destination_account flips the filter to destination. That resolves genuine ambiguity about which role `account` plays, going beyond the schema's neutral wording.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: 'Read-only XRPL Payment Channel lookup for one account', and explicitly names the sibling it is not (n9t2_xrpl_list_account_objects for generic ledger objects). An agent can distinguish it from list_account_objects, list_account_lines, and list_account_offers without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use: 'Use this for PaymentChannelCreate/Fund/Claim inspection', with an explicit alternative named for the generic case. It also routes each optional parameter to its purpose (destination_account to filter by destination, ledger_index to pin to a validated ledger, marker to continue pagination), so no selection decision is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_list_account_linesARead-onlyIdempotentInspect
Read-only XRPL trust-line lookup for one account. account is the required XRPL classic account address; use peer to restrict results to one counterparty, limit to cap returned trust lines, marker to continue pagination from a previous response, and ledger_index to pin the lookup to a validated ledger. The result lists trust-line state including issued-asset balances and limits without modifying the ledger, and calls are subject to the configured gateway rate limits. Use this for an account's trust lines and issued-asset holdings; use n9t2_xrpl_get_account_info for current account state or n9t2_xrpl_list_account_objects for other ledger objects.
| Name | Required | Description | Default |
|---|---|---|---|
| peer | No | Optional XRPL classic account address used to filter trust lines to a specific peer. | |
| limit | No | Optional maximum number of trust lines to return. | |
| marker | No | Pagination marker returned by a previous response. | |
| account | Yes | XRPL classic account address whose trust lines should be listed. | |
| ledger_index | No | Optional validated ledger index or selector. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world. The description adds real value beyond them: it states the ledger is not modified, that calls are subject to configured gateway rate limits, and that the result lists trust-line state with issued-asset balances and limits. It stops short of describing error behavior or response shape, but this is well above the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then parameter roles, then return/behavioral notes, then sibling routing. Dense but every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description compensates by describing what the result contains (trust-line state, issued-asset balances and limits). With read-only safety covered by annotations, an agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: peer 'restricts results to one counterparty', limit 'caps returned trust lines', marker 'continues pagination from a previous response', ledger_index 'pins the lookup to a validated ledger'. These are functional roles, not restatements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read-only XRPL trust-line lookup for one account') and immediately names the two sibling tools it is not (get_account_info, list_account_objects). An agent can distinguish it from the other list_account_* siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes: use this for trust lines and issued-asset holdings; use n9t2_xrpl_get_account_info for current account state or n9t2_xrpl_list_account_objects for other ledger objects. That is a clear when-to-use with named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_list_account_nftsARead-onlyIdempotentInspect
Read-only XRPL NFT inventory lookup for one classic account using the native account_nfts method. The result provides NFT-specific fields such as NFTokenID, Issuer, NFTokenTaxon, URI, and nft_serial; use marker to continue pagination and ledger_hash or ledger_index to pin the inventory lookup to a specific ledger. Calls are subject to the configured gateway rate limits. Use this for NFTs owned by an account; use n9t2_xrpl_list_nft_offers for marketplace buy/sell offers on a specific NFTokenID, or n9t2_xrpl_list_account_objects when raw account ledger objects rather than NFT-specific fields are required.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional maximum number of owned NFT records to return. | |
| marker | No | Pagination marker returned by a previous response. | |
| account | Yes | XRPL classic account address whose owned NFTs should be listed. | |
| ledger_hash | No | Optional ledger hash used to pin the NFT inventory lookup. | |
| ledger_index | No | Optional validated ledger index or selector. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description still adds real behavioral context: pagination via marker, ledger pinning via ledger_hash/ledger_index, and gateway rate-limit exposure. It stops short of return-format/pagination-shape detail, but that is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, followed by return fields, pagination/ledger controls, rate limits, and alternatives in a logical order. Dense but nearly every sentence carries distinct information; the enumeration of return fields is slightly long but justified by the absence of an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the returned NFT fields, and it covers pagination, ledger pinning, rate limits, and sibling disambiguation. Nothing an agent needs to invoke this read tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description earns above it by explaining how marker continues pagination and how ledger_hash/ledger_index pin the lookup to a specific ledger. It also enumerates returned NFT fields (NFTokenID, Issuer, NFTokenTaxon, URI, nft_serial), adding meaning the schema does not carry.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('read-only XRPL NFT inventory lookup for one classic account') and names the native method it wraps. It explicitly differentiates itself from n9t2_xrpl_list_nft_offers and n9t2_xrpl_list_account_objects, so an agent can route without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use ('NFTs owned by an account') plus two named alternatives with the conditions that select them (marketplace offers on a specific NFTokenID vs raw ledger objects). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_list_account_objectsARead-onlyIdempotentInspect
Read-only XRPL canonical ledger-object lookup for one account. Use this low-level catch-all when raw ledger-entry objects are required or when no dedicated N9T2 view exists. Use n9t2_xrpl_list_account_nfts for NFTs owned by the account, n9t2_xrpl_list_nft_offers for marketplace buy/sell offers on a specific NFTokenID, n9t2_xrpl_list_account_offers for classic DEX offers, and n9t2_xrpl_list_account_channels for Payment Channels. Set object_type to nft_offer only when raw NFTokenOffer ledger entries are required; use ledger_index to pin the lookup and limit/marker for pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional maximum number of ledger objects to return. | |
| marker | No | Pagination marker returned by a previous response. | |
| account | Yes | XRPL classic account address whose canonical ledger objects should be inspected. | |
| sponsored | No | Optional filter controlling sponsored ledger objects. | |
| object_type | No | Optional XRPL ledger-entry type filter. Use 'nft_offer' for account-level NFTokenOffer ledger entries. | |
| ledger_index | No | Optional validated ledger index or selector. | |
| deletion_blockers_only | No | Whether to return only ledger objects that prevent account deletion. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is fully carried by structured data and the description's 'read-only' restates it. The description does add genuine context — 'canonical' (validated-ledger) scope and the catch-all role — plus pagination via limit/marker, but it says nothing about the shape of returned ledger entries or error behavior. With annotations doing the heavy lifting, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the capability, then the routing rules, then parameter tips — a sensible order with no filler. Five dense sentences is on the long side, but each carries distinct information (scope, catch-all role, four alternatives, object_type caveat, pagination).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter read tool with full annotation coverage and no output schema, the description covers what it is, when to prefer it, and how to page and pin the lookup. The only real gap is that the return shape of 'raw ledger-entry objects' is left implicit, which matters because there is no output schema to fall back on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes beyond the schema by explaining the intent behind a parameter choice: set object_type to 'nft_offer' only when raw NFTokenOffer ledger entries are required, and use ledger_index to pin the lookup. That routing rationale is not derivable from the schema text alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb, resource and access mode ('Read-only XRPL canonical ledger-object lookup for one account') and immediately names the four sibling views it supersedes. An agent can distinguish this catch-all from n9t2_xrpl_list_account_nfts, n9t2_xrpl_list_nft_offers, n9t2_xrpl_list_account_offers and n9t2_xrpl_list_account_channels without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit selection rule: use this 'low-level catch-all when raw ledger-entry objects are required or when no dedicated N9T2 view exists', then enumerates each alternative and the condition that routes to it (NFTs, marketplace offers on a specific NFTokenID, classic DEX offers, Payment Channels). Both when-to-use and when-not-to-use are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_list_account_offersARead-onlyIdempotentInspect
Read-only XRPL DEX account-offer lookup for one account. Returns that account's outstanding offers rather than global order-book depth; use n9t2_xrpl_get_book_offers for global market depth. Use limit to bound results and marker to continue pagination, ledger_index to pin the lookup to a validated ledger, and strict when the account identifier must be interpreted exactly as supplied. Use this for the account's own open offers; it does not create, cancel, or modify any XRPL offer and is subject to the configured gateway rate limits.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional maximum number of open offers to return. | |
| marker | No | Pagination marker returned by a previous response. | |
| strict | No | Whether the account identifier should be interpreted strictly as supplied. | |
| account | Yes | XRPL classic account address whose outstanding DEX offers should be listed. | |
| ledger_index | No | Optional validated ledger index or selector. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds genuine context beyond them: gateway rate limits apply, and the operation never mutates offers. It stops short of describing response shape, though the safety-relevant behavior is well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and the sibling differentiation, then packs parameter guidance and the non-mutating guarantee into a few sentences. Slightly dense but every clause carries information; no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still tells the agent what comes back (outstanding offers) and how to paginate via marker. For a 5-param read tool with full schema coverage and rich annotations, this is complete enough, though return-shape detail is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds operational meaning: marker is for continuing pagination, ledger_index pins the lookup to a validated ledger, and strict forces exact interpretation of the account identifier. This goes beyond the terse schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('account-offer lookup for one account') with explicit scope: returns that account's outstanding offers rather than global order-book depth. It names the sibling it is not, so an agent can distinguish it from n9t2_xrpl_get_book_offers without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative ('use n9t2_xrpl_get_book_offers for global market depth') and the condition that selects this tool (the account's own open offers). It also states when-not by clarifying it does not create, cancel, or modify offers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_list_account_transactionsARead-onlyIdempotentInspect
Read-only XRPL transaction-history lookup for one account over an optional ledger range. Use this for multiple account transactions; use n9t2_xrpl_get_transaction when a transaction hash is already known. ledger_index_min and ledger_index_max narrow the history window, while limit bounds the returned records; when the response includes a pagination marker, more history remains beyond the current page. The result contains account transaction records and does not modify the ledger or submit transactions, and calls are subject to the configured gateway rate limits.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional maximum number of transactions to return. | |
| account | Yes | XRPL classic account address whose transaction history should be retrieved. | |
| ledger_index_max | No | Optional maximum ledger index for the transaction-history range. | |
| ledger_index_min | No | Optional minimum ledger index for the transaction-history range. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive and open-world, so the bar is lower, yet the description still adds real context: it clarifies the call does not modify the ledger or submit transactions, and discloses that calls are subject to configured gateway rate limits and that a pagination marker signals remaining history. That is meaningful operational disclosure beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences: purpose and sibling routing first, then parameter roles, then safety/pagination/rate-limit notes. Efficient and well ordered, with only mild restatement of schema-documented parameter meanings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by describing the result ('account transaction records') and pagination behavior. Combined with the safety and rate-limit notes, an agent has enough to invoke and interpret this correctly; only richer return-shape detail is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented. The description restates the roles of ledger_index_min/max (history window) and limit (bounds records) but adds no syntax, format, or default behavior beyond the schema — baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read-only XRPL transaction-history lookup for one account') with scope modifiers, and explicitly distinguishes itself from the closest sibling, n9t2_xrpl_get_transaction. An agent can route between history lookup and single-transaction lookup without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use ('multiple account transactions') and names the alternative tool plus the condition that selects it ('when a transaction hash is already known'). This is exactly the routing guidance an agent needs among 18 siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_list_nft_offersARead-onlyIdempotentInspect
Read-only XRPL NFT marketplace-offer lookup for one NFTokenID. offer_type=buy retrieves native nft_buy_offers, sell retrieves nft_sell_offers, and both retrieves both sides; buy_marker and sell_marker paginate the two sides independently. Use ledger_hash or ledger_index to pin the lookup to a ledger, and limit to bound returned offers. Use this for marketplace offers on a specific NFT; use n9t2_xrpl_list_account_nfts for owned-NFT inventory and n9t2_xrpl_list_account_objects with object_type='nft_offer' when raw NFTokenOffer ledger entries are required.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional maximum number of NFT offers to return. | |
| nft_id | Yes | Canonical NFTokenID identifying the NFT whose marketplace offers should be retrieved. | |
| buy_marker | No | Pagination marker for the NFT buy-offer side. | |
| offer_type | No | NFT marketplace offer side to retrieve: buy, sell, or both. Default is both. | both |
| ledger_hash | No | Optional ledger hash used to pin the NFT-offer lookup. | |
| sell_marker | No | Pagination marker for the NFT sell-offer side. | |
| ledger_index | No | Optional validated ledger index or selector. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: offer_type maps to distinct native structures (nft_buy_offers vs nft_sell_offers), and buy_marker/sell_marker paginate the two sides independently, which is non-obvious. It stops short of describing return shape, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and the offer_type branching are front-loaded, and the sibling routing comes last where it belongs. It is dense and slightly long, but each sentence carries distinct information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should carry the full burden, and it covers lookup scope, side selection, pagination, and ledger pinning. It omits return-value shape and marker semantics for continuing pagination, which are minor gaps for a read-only listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds meaning the schema does not: it explains that buy/sell markers paginate independently, that ledger_hash/ledger_index pin the lookup to a ledger, and that limit bounds returned offers. This is genuine semantic value on top of the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Read-only XRPL NFT marketplace-offer lookup for one NFTokenID') and immediately scopes it to a single NFT. It explicitly distinguishes itself from n9t2_xrpl_list_account_nfts and n9t2_xrpl_list_account_objects, so an agent can separate it from siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use routing: use this for marketplace offers on a specific NFT, use list_account_nfts for owned inventory, and use list_account_objects with object_type='nft_offer' when raw ledger entries are needed. Both alternatives and the selecting condition are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_prepare_transactionARead-onlyInspect
Prepare one unsigned XRPL transaction for agent-local signing. Choose exactly one transaction_type and provide that transaction model's fields in parameters; unsupported transaction types or invalid builder parameters are rejected before an unsigned transaction is returned. Sequence, fee, and last_ledger_sequence may be autofilled when omitted. The result is unsigned transaction JSON for local signing; after signing, pass the signed tx_blob to n9t2_xrpl_submit_transaction. N9T2 never receives or stores private keys, seeds, or wallet secrets. Use this as the generic transaction-construction primitive for supported XRPL transaction types, including Payment, TrustSet, OfferCreate, and OfferCancel.
| Name | Required | Description | Default |
|---|---|---|---|
| parameters | Yes | Typed XRPL transaction fields used to build the unsigned transaction. Sequence, fee, and last_ledger_sequence may be autofilled when omitted. | |
| transaction_type | Yes | XRPL transaction model name to prepare, selected from the supported transaction types advertised by this tool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=true, destructiveHint=false), and the description adds behavior beyond them: unsupported types and invalid builder parameters are rejected before a result is returned, sequence/fee/last_ledger_sequence may be autofilled when omitted, and no private keys or seeds are ever received or stored. That is meaningful operational and security context for a construction tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, front-loaded with the purpose before the validation, autofill, and handoff details. Slightly repetitive around the 'unsupported types / invalid parameters' rejection clause, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description correctly characterizes the return value as unsigned transaction JSON for local signing. It covers validation, autofill, and key-handling, though for a tool with ~79 enum transaction types it cannot describe per-type field requirements, leaving some construction detail to the caller.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the enum plus nested object are documented, so the baseline is 3. The description adds value by explaining the polymorphic contract: pick exactly one transaction_type and supply that model's fields inside the otherwise free-form (additionalProperties=true) parameters object, with examples of supported types. It still does not indicate which fields a given type requires.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Prepare one unsigned XRPL transaction') plus the intended consumer ('for agent-local signing'). It also implicitly distinguishes itself from n9t2_xrpl_submit_transaction by framing itself as the construction primitive, so an agent can tell the two apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear when-to-use context ('generic transaction-construction primitive for supported XRPL transaction types') and an explicit downstream handoff ('after signing, pass the signed tx_blob to n9t2_xrpl_submit_transaction'). It does not state any when-not conditions or prerequisites, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_submit_transactionADestructiveInspect
Submit one already-signed XRPL transaction to the network. tx_blob must be the complete signed transaction encoded as hexadecimal; obtain it from the caller's local signing step, normally after n9t2_xrpl_prepare_transaction. This action mutates ledger state when the transaction is accepted into the XRPL network and must never receive private keys, seeds, or wallet secrets. fail_hard forwards rippled's option and defaults to false; when true, a transaction that fails locally is not retried or relayed. The result preserves the raw submit response, including engine_result and engine_result_message and, when returned, accepted, queued, validated, and transaction data. Submission is tentative; use n9t2_xrpl_get_transaction with the returned transaction hash to confirm validated-ledger inclusion. Invalid hexadecimal or XRPL-rejected blobs return an error.
| Name | Required | Description | Default |
|---|---|---|---|
| tx_blob | Yes | Complete signed XRPL transaction encoded as hexadecimal. The caller must sign locally before sending it to N9T2. | |
| fail_hard | No | Forward rippled's fail_hard option. When true, a transaction that fails locally is not retried or relayed to other servers. Defaults to false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| service | Yes | |
| operation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, but the description adds real context: it mutates ledger state only when accepted, submission is tentative, secrets must never be passed, and invalid/rejected blobs error. It does not cover rate limits or whether retries are safe for the caller, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded, opening with the core action before prerequisites, safety, parameter notes, and confirmation flow. Every sentence carries information, though the result-field enumeration is somewhat long for prose that an output schema also covers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, open-world submission tool it covers prerequisites (local signing), the mutation semantics, safety constraints, parameter behavior, tentative-result caveats, error behavior, and the follow-up verification step. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description goes beyond it by explaining what tx_blob must be (complete signed transaction in hex, produced by local signing) and by expanding fail_hard's effect (no local retry or relay). The tx_blob wording largely mirrors the schema, so it is not a full 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Submit one already-signed XRPL transaction') and pins the scope to already-signed blobs, distinguishing it from prepare_transaction (signing pipeline) and get_transaction (confirmation). An agent can select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: obtain the blob from the local signing step 'normally after n9t2_xrpl_prepare_transaction', and confirm inclusion with n9t2_xrpl_get_transaction using the returned hash. Names both the predecessor and successor tools and the condition for each.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
n9t2_xrpl_subscribeARead-onlyInspect
Open a bounded native XRPL WebSocket subscription and capture live events for selected streams, accounts, proposed transactions, or order books. Use this when an agent needs event-driven updates instead of a one-time snapshot. The tool sends the XRPL subscribe command, collects events until duration_seconds expires or max_events is reached, then closes the connection and returns the subscription acknowledgement plus captured events. When subscription inputs are omitted, the default is the ledger stream for 3 seconds with up to 25 events. This is read-only: it does not submit transactions or modify ledger state. Do not request the admin-only peer_status stream unless the upstream XRPL server permits it.
| Name | Required | Description | Default |
|---|---|---|---|
| books | No | Optional list of XRPL order-book subscription descriptors. | |
| streams | No | Optional XRPL stream names such as ledger or transactions. | |
| accounts | No | Optional list of XRPL classic account addresses whose activity should be streamed. | |
| max_events | No | Maximum number of events to capture before returning. Default is 25. | |
| duration_seconds | No | How many seconds the bounded WebSocket subscription remains open. Default is 3. | |
| accounts_proposed | No | Optional list of XRPL accounts for proposed transaction events. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=false, so safety is largely covered. The description adds real lifecycle context beyond that: it sends the subscribe command, collects until duration_seconds expires or max_events is reached, then closes the connection and returns the ack plus events, and it restates the read-only constraint. It stops short of auth requirements or rate-limit detail, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and the when-to-use rule, then lifecycle, then defaults, then caveats. It is a touch long at five sentences, but each sentence carries distinct information (purpose, routing, mechanics, defaults, exclusion) with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so ('returns the subscription acknowledgement plus captured events'). Combined with the bounding mechanics, defaults, and read-only note, an agent has everything needed to invoke it correctly without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: when subscription inputs are omitted the effective default is the ledger stream for 3 seconds with up to 25 events. The schema only shows per-field defaults (streams default null), so the description usefully resolves the composite default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (open a subscription) and resource (bounded native XRPL WebSocket subscription) with explicit scope: streams, accounts, proposed transactions, or order books. It is unmistakably distinguished from the sibling one-time snapshot tools (get_*/list_*) by naming the streaming behavior directly in the second sentence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit selection rule: 'Use this when an agent needs event-driven updates instead of a one-time snapshot,' which routes the agent against every sibling tool. It also provides a negative/exclusion guideline ('Do not request the admin-only peer_status stream unless the upstream XRPL server permits it') and clarifies the default behavior when inputs are omitted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
n9t2_bridge_quote10 fields changed- changed
Input schema / properties / destination_address / descriptionPrevious value: -"Customer-controlled destination wallet: r... classic address for xrpl, 0x... address for base."New value: +"Customer-controlled destination wallet: r... classic address for xrpl, bc1.../3.../1... for bitcoin, 0x... for bsc or base." - changed
Input schema / properties / destination_asset / descriptionPrevious value: -"Asset delivered: XRP on xrpl; USDC or ETH on base."New value: +"Asset delivered: XRP on xrpl; BTC on bitcoin; BNB, USDT or USDC on bsc; USDC or ETH on base." - changed
Input schema / properties / destination_asset / enumPrevious value: -[ - "XRP", - "USDC", - "ETH" -]New value: +[ + "XRP", + "BTC", + "BNB", + "USDT", + "USDC", + "ETH" +] - changed
Input schema / properties / destination_chain / descriptionPrevious value: -"Chain that receives the funds; must differ from source_chain."New value: +"Chain that receives the funds; must differ from source_chain, and one of the two must be xrpl." - changed
Input schema / properties / destination_chain / enumPrevious value: -[ - "xrpl", - "base" -]New value: +[ + "xrpl", + "bitcoin", + "bsc", + "base" +] - changed
Input schema / properties / source_amount / descriptionPrevious value: -"Optional amount to bridge in the source asset as a decimal string, e.g. '250'. The N9T2 fee is added on top. Self-serve cap: 1000 USDC, 1500 XRP or 0.5 ETH. Omit for the live route minimum."New value: +"Optional amount to bridge in the source asset as a decimal string, e.g. '250'. The N9T2 fee is added on top. Self-serve cap: 1000 USDC, 1500 XRP, 0.5 ETH, 1.5 BNB, 1000 USDT or 0.02 BTC. Omit for the live route minimum." - changed
Input schema / properties / source_asset / descriptionPrevious value: -"Asset the customer pays with: XRP on xrpl; USDC or ETH on base."New value: +"Asset the customer pays with: XRP on xrpl; BTC on bitcoin; BNB, USDT or USDC on bsc; USDC or ETH on base." - changed
Input schema / properties / source_asset / enumPrevious value: -[ - "XRP", - "USDC", - "ETH" -]New value: +[ + "XRP", + "BTC", + "BNB", + "USDT", + "USDC", + "ETH" +] - changed
Input schema / properties / source_chain / descriptionPrevious value: -"Chain the customer pays from: xrpl or base."New value: +"Chain the customer pays from: xrpl (XRP Ledger), bitcoin, bsc (BNB Chain) or base. Every route has xrpl on one side." - changed
Input schema / properties / source_chain / enumPrevious value: -[ - "xrpl", - "base" -]New value: +[ + "xrpl", + "bitcoin", + "bsc", + "base" +]
3 tool updates
- Added
n9t2_bridge_quote - Added
n9t2_bridge_receipt - Added
n9t2_bridge_submit_payment
18 tool updates
- Changed
n9t2_xrpl_find_path1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_get_account_info1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_get_amm_info1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_get_book_offers1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_get_gateway_balances1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_get_ledger1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_get_ledger_data1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_get_server_info1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_get_transaction1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_list_account_channels1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_list_account_lines1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_list_account_nfts1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_list_account_objects1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_list_account_offers1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_list_account_transactions1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_list_nft_offers1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_prepare_transaction1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
- Changed
n9t2_xrpl_subscribe1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "operation": { - "title": "Operation", - "type": "string" - }, - "result": { - "additionalProperties": true, - "title": "Result", - "type": "object" - }, - "service": { - "title": "Service", - "type": "string" - } - }, - "required": [ - "service", - "operation", - "result" - ], - "title": "_XRPLServiceOutput", - "type": "object" -}New value: +null
18 tool updates
- Changed
n9t2_xrpl_find_path1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_get_account_info1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_get_amm_info1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_get_book_offers1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_get_gateway_balances1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_get_ledger1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_get_ledger_data1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_get_server_info1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_get_transaction1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_list_account_channels1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_list_account_lines1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_list_account_nfts1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_list_account_objects1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_list_account_offers1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_list_account_transactions1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_list_nft_offers1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_prepare_transaction1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
- Changed
n9t2_xrpl_subscribe1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "additionalProperties": true, + "title": "Result", + "type": "object" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLServiceOutput", + "type": "object" +}
1 tool update
- Changed
n9t2_xrpl_submit_transaction3 fields changed- changed
Input schema / properties / fail_hard / descriptionPrevious value: -"Whether the XRPL submission should use fail_hard=true."New value: +"Forward rippled's fail_hard option. When true, a transaction that fails locally is not retried or relayed to other servers. Defaults to false." - changed
Input schema / properties / tx_blob / descriptionPrevious value: -"Already-signed XRPL transaction blob encoded as hexadecimal. The caller signs locally before submission."New value: +"Complete signed XRPL transaction encoded as hexadecimal. The caller must sign locally before sending it to N9T2." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$defs": { + "_XRPLSubmitResult": { + "properties": { + "custody": { + "description": "Non-custodial confirmation. N9T2 never receives, stores, or uses the caller's private keys, seeds, or wallet secrets.", + "title": "Custody", + "type": "string" + }, + "signed_blob_submitted": { + "description": "True when the validated hexadecimal tx_blob was forwarded to the XRPL submit method.", + "title": "Signed Blob Submitted", + "type": "boolean" + }, + "submission": { + "additionalProperties": true, + "description": "Raw XRPL rippled submit response. Inspect engine_result and engine_result_message for the tentative submission outcome; the response may also include accepted, queued, validated, tx_json, and other XRPL submission fields.", + "title": "Submission", + "type": "object" + } + }, + "required": [ + "submission", + "custody", + "signed_blob_submitted" + ], + "title": "_XRPLSubmitResult", + "type": "object" + } + }, + "properties": { + "operation": { + "title": "Operation", + "type": "string" + }, + "result": { + "$ref": "#/$defs/_XRPLSubmitResult" + }, + "service": { + "title": "Service", + "type": "string" + } + }, + "required": [ + "service", + "operation", + "result" + ], + "title": "_XRPLSubmitOutput", + "type": "object" +}
18 tool updates
- Changed
n9t2_xrpl_find_path3 fields changed- added
Input schema / properties / destination_account / descriptionAdded value: +"XRPL classic account address that will receive the destination amount." - added
Input schema / properties / destination_amount / descriptionAdded value: +"Destination amount to deliver. Use a string for XRP drops or an issued-currency object containing currency, issuer, and value." - added
Input schema / properties / source_account / descriptionAdded value: +"XRPL classic account address used as the source of payment-path discovery."
- Changed
n9t2_xrpl_get_account_info1 field changed- added
Input schema / properties / account / descriptionAdded value: +"XRPL classic account address whose current account state should be retrieved."
- Changed
n9t2_xrpl_get_amm_info6 fields changed- added
Input schema / properties / account / descriptionAdded value: +"Optional XRPL account used by the native AMM lookup when applicable." - added
Input schema / properties / amm_account / descriptionAdded value: +"Optional AMM account address identifying the specific AMM ledger object." - added
Input schema / properties / asset / descriptionAdded value: +"First AMM asset specification using an XRPL currency object." - added
Input schema / properties / asset2 / descriptionAdded value: +"Second AMM asset specification paired with asset." - added
Input schema / properties / ledger_hash / descriptionAdded value: +"Optional ledger hash used to pin the AMM lookup to a specific ledger." - added
Input schema / properties / ledger_index / descriptionAdded value: +"Optional ledger index or selector used to pin the lookup to a specific ledger."
- Changed
n9t2_xrpl_get_book_offers3 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"Optional maximum number of DEX order-book offers to return." - added
Input schema / properties / taker_gets / descriptionAdded value: +"Currency specification for the asset the taker receives in the XRPL DEX order book." - added
Input schema / properties / taker_pays / descriptionAdded value: +"Currency specification for the asset the taker pays in the XRPL DEX order book."
- Changed
n9t2_xrpl_get_gateway_balances4 fields changed- added
Input schema / properties / account / descriptionAdded value: +"XRPL issuing account whose issued-asset balances should be calculated." - added
Input schema / properties / hotwallet / descriptionAdded value: +"Optional XRPL hot-wallet account address or list of hot-wallet addresses." - added
Input schema / properties / ledger_index / descriptionAdded value: +"Optional ledger index or selector for the balance calculation." - added
Input schema / properties / strict / descriptionAdded value: +"Whether account identifiers should be interpreted strictly as supplied."
- Changed
n9t2_xrpl_get_ledger3 fields changed- added
Input schema / properties / expand / descriptionAdded value: +"Whether returned transactions should be expanded into full transaction objects." - added
Input schema / properties / ledger_index / descriptionAdded value: +"Optional validated ledger index or ledger selector. Omit to use the current validated ledger." - added
Input schema / properties / transactions / descriptionAdded value: +"Whether to include transactions contained in the requested ledger."
- Changed
n9t2_xrpl_get_ledger_data3 fields changed- added
Input schema / properties / ledger_index / descriptionAdded value: +"Optional ledger index or selector identifying the ledger whose state objects should be returned." - added
Input schema / properties / limit / descriptionAdded value: +"Optional maximum number of ledger-state objects to return." - added
Input schema / properties / marker / descriptionAdded value: +"Pagination marker returned by a previous response."
- Changed
n9t2_xrpl_get_transaction2 fields changed- added
Input schema / properties / binary / descriptionAdded value: +"Whether to return the transaction in binary encoded form." - added
Input schema / properties / transaction / descriptionAdded value: +"Canonical XRPL transaction hash to retrieve."
- Changed
n9t2_xrpl_list_account_channels4 fields changed- added
Input schema / properties / account / descriptionAdded value: +"XRPL classic account address whose Payment Channels should be listed." - added
Input schema / properties / ledger_index / descriptionAdded value: +"Optional validated ledger index or selector." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of Payment Channel entries to return. Default is 200." - added
Input schema / properties / marker / descriptionAdded value: +"Pagination marker returned by a previous response."
- Changed
n9t2_xrpl_list_account_lines5 fields changed- added
Input schema / properties / account / descriptionAdded value: +"XRPL classic account address whose trust lines should be listed." - added
Input schema / properties / ledger_index / descriptionAdded value: +"Optional validated ledger index or selector." - added
Input schema / properties / limit / descriptionAdded value: +"Optional maximum number of trust lines to return." - added
Input schema / properties / marker / descriptionAdded value: +"Pagination marker returned by a previous response." - added
Input schema / properties / peer / descriptionAdded value: +"Optional XRPL classic account address used to filter trust lines to a specific peer."
- Changed
n9t2_xrpl_list_account_nfts5 fields changed- added
Input schema / properties / account / descriptionAdded value: +"XRPL classic account address whose owned NFTs should be listed." - added
Input schema / properties / ledger_hash / descriptionAdded value: +"Optional ledger hash used to pin the NFT inventory lookup." - added
Input schema / properties / ledger_index / descriptionAdded value: +"Optional validated ledger index or selector." - added
Input schema / properties / limit / descriptionAdded value: +"Optional maximum number of owned NFT records to return." - added
Input schema / properties / marker / descriptionAdded value: +"Pagination marker returned by a previous response."
- Changed
n9t2_xrpl_list_account_objects6 fields changed- added
Input schema / properties / account / descriptionAdded value: +"XRPL classic account address whose canonical ledger objects should be inspected." - added
Input schema / properties / deletion_blockers_only / descriptionAdded value: +"Whether to return only ledger objects that prevent account deletion." - added
Input schema / properties / ledger_index / descriptionAdded value: +"Optional validated ledger index or selector." - added
Input schema / properties / limit / descriptionAdded value: +"Optional maximum number of ledger objects to return." - added
Input schema / properties / marker / descriptionAdded value: +"Pagination marker returned by a previous response." - added
Input schema / properties / sponsored / descriptionAdded value: +"Optional filter controlling sponsored ledger objects."
- Changed
n9t2_xrpl_list_account_offers5 fields changed- added
Input schema / properties / account / descriptionAdded value: +"XRPL classic account address whose outstanding DEX offers should be listed." - added
Input schema / properties / ledger_index / descriptionAdded value: +"Optional validated ledger index or selector." - added
Input schema / properties / limit / descriptionAdded value: +"Optional maximum number of open offers to return." - added
Input schema / properties / marker / descriptionAdded value: +"Pagination marker returned by a previous response." - added
Input schema / properties / strict / descriptionAdded value: +"Whether the account identifier should be interpreted strictly as supplied."
- Changed
n9t2_xrpl_list_account_transactions4 fields changed- added
Input schema / properties / account / descriptionAdded value: +"XRPL classic account address whose transaction history should be retrieved." - added
Input schema / properties / ledger_index_max / descriptionAdded value: +"Optional maximum ledger index for the transaction-history range." - added
Input schema / properties / ledger_index_min / descriptionAdded value: +"Optional minimum ledger index for the transaction-history range." - added
Input schema / properties / limit / descriptionAdded value: +"Optional maximum number of transactions to return."
- Changed
n9t2_xrpl_list_nft_offers7 fields changed- added
Input schema / properties / buy_marker / descriptionAdded value: +"Pagination marker for the NFT buy-offer side." - added
Input schema / properties / ledger_hash / descriptionAdded value: +"Optional ledger hash used to pin the NFT-offer lookup." - added
Input schema / properties / ledger_index / descriptionAdded value: +"Optional validated ledger index or selector." - added
Input schema / properties / limit / descriptionAdded value: +"Optional maximum number of NFT offers to return." - added
Input schema / properties / nft_id / descriptionAdded value: +"Canonical NFTokenID identifying the NFT whose marketplace offers should be retrieved." - added
Input schema / properties / offer_type / descriptionAdded value: +"NFT marketplace offer side to retrieve: buy, sell, or both. Default is both." - added
Input schema / properties / sell_marker / descriptionAdded value: +"Pagination marker for the NFT sell-offer side."
- Changed
n9t2_xrpl_prepare_transaction2 fields changed- added
Input schema / properties / parameters / descriptionAdded value: +"Typed XRPL transaction fields used to build the unsigned transaction. Sequence, fee, and last_ledger_sequence may be autofilled when omitted." - added
Input schema / properties / transaction_type / descriptionAdded value: +"XRPL transaction model name to prepare, selected from the supported transaction types advertised by this tool."
- Changed
n9t2_xrpl_submit_transaction2 fields changed- added
Input schema / properties / fail_hard / descriptionAdded value: +"Whether the XRPL submission should use fail_hard=true." - added
Input schema / properties / tx_blob / descriptionAdded value: +"Already-signed XRPL transaction blob encoded as hexadecimal. The caller signs locally before submission."
- Changed
n9t2_xrpl_subscribe6 fields changed- added
Input schema / properties / accounts / descriptionAdded value: +"Optional list of XRPL classic account addresses whose activity should be streamed." - added
Input schema / properties / accounts_proposed / descriptionAdded value: +"Optional list of XRPL accounts for proposed transaction events." - added
Input schema / properties / books / descriptionAdded value: +"Optional list of XRPL order-book subscription descriptors." - added
Input schema / properties / duration_seconds / descriptionAdded value: +"How many seconds the bounded WebSocket subscription remains open. Default is 3." - added
Input schema / properties / max_events / descriptionAdded value: +"Maximum number of events to capture before returning. Default is 25." - added
Input schema / properties / streams / descriptionAdded value: +"Optional XRPL stream names such as ledger or transactions."
2 tool updates
- Changed
n9t2_xrpl_list_account_channels1 field changed- added
Input schema / properties / destination_account / descriptionAdded value: +"Optional destination account filter. When supplied, return channels whose destination is this account."
- Changed
n9t2_xrpl_list_account_objects1 field changed- added
Input schema / properties / object_type / descriptionAdded value: +"Optional XRPL ledger-entry type filter. Use 'nft_offer' for account-level NFTokenOffer ledger entries."
2 tool updates
- Added
n9t2_xrpl_get_amm_info - Added
n9t2_xrpl_list_nft_offers
2 tool updates
- Added
n9t2_xrpl_list_account_nfts - Added
n9t2_xrpl_subscribe
1 tool update
- Changed
n9t2_xrpl_prepare_transaction1 field changed- changed
Input schema / properties / transaction_type / enumPrevious value: -[ - "Payment", - "TrustSet", - "OfferCreate", - "OfferCancel", - "AccountSet", - "SignerListSet", - "EscrowCreate", - "EscrowFinish", - "EscrowCancel", - "AMMCreate", - "AMMDeposit", - "AMMWithdraw", - "AMMVote", - "AMMBid", - "CheckCreate", - "CheckCash", - "CheckCancel", - "NFTokenMint", - "NFTokenBurn", - "NFTokenCreateOffer", - "NFTokenAcceptOffer", - "NFTokenCancelOffer", - "PaymentChannelCreate", - "PaymentChannelFund", - "PaymentChannelClaim", - "DepositPreauth", - "CredentialCreate", - "CredentialAccept", - "CredentialDelete", - "Batch", - "AMMClawback", - "Clawback", - "DIDSet", - "DIDDelete", - "OracleSet", - "OracleDelete", - "TicketCreate", - "NFTokenModify", - "XChainAccountCreateCommit", - "XChainAddAccountCreateAttestation", - "XChainAddClaimAttestation", - "XChainClaim", - "XChainCommit", - "XChainCreateBridge", - "XChainCreateClaimID", - "XChainModifyBridge", - "AccountDelete", - "AMMDelete", - "DelegateSet", - "SetRegularKey", - "PermissionedDomainSet", - "PermissionedDomainDelete", - "SponsorshipSet", - "SponsorshipTransfer", - "VaultCreate", - "VaultClawback", - "VaultDeposit", - "VaultDelete", - "VaultSet", - "VaultWithdraw", - "MPTokenAuthorize", - "MPTokenIssuanceCreate", - "MPTokenIssuanceDestroy", - "MPTokenIssuanceSet", - "ConfidentialMPTClawback", - "ConfidentialMPTConvert", - "ConfidentialMPTConvertBack", - "ConfidentialMPTMergeInbox", - "ConfidentialMPTSend" -]New value: +[ + "Payment", + "TrustSet", + "OfferCreate", + "OfferCancel", + "AccountSet", + "SignerListSet", + "EscrowCreate", + "EscrowFinish", + "EscrowCancel", + "AMMCreate", + "AMMDeposit", + "AMMWithdraw", + "AMMVote", + "AMMBid", + "CheckCreate", + "CheckCash", + "CheckCancel", + "NFTokenMint", + "NFTokenBurn", + "NFTokenCreateOffer", + "NFTokenAcceptOffer", + "NFTokenCancelOffer", + "PaymentChannelCreate", + "PaymentChannelFund", + "PaymentChannelClaim", + "DepositPreauth", + "CredentialCreate", + "CredentialAccept", + "CredentialDelete", + "Batch", + "AMMClawback", + "Clawback", + "DIDSet", + "DIDDelete", + "OracleSet", + "OracleDelete", + "TicketCreate", + "NFTokenModify", + "XChainAccountCreateCommit", + "XChainAddAccountCreateAttestation", + "XChainAddClaimAttestation", + "XChainClaim", + "XChainCommit", + "XChainCreateBridge", + "XChainCreateClaimID", + "XChainModifyBridge", + "AccountDelete", + "AMMDelete", + "DelegateSet", + "SetRegularKey", + "PermissionedDomainSet", + "PermissionedDomainDelete", + "SponsorshipSet", + "SponsorshipTransfer", + "VaultCreate", + "VaultClawback", + "VaultDeposit", + "VaultDelete", + "VaultSet", + "VaultWithdraw", + "MPTokenAuthorize", + "MPTokenIssuanceCreate", + "MPTokenIssuanceDestroy", + "MPTokenIssuanceSet", + "ConfidentialMPTClawback", + "ConfidentialMPTConvert", + "ConfidentialMPTConvertBack", + "ConfidentialMPTMergeInbox", + "ConfidentialMPTSend", + "LoanBrokerCoverClawback", + "LoanBrokerCoverDeposit", + "LoanBrokerCoverWithdraw", + "LoanBrokerDelete", + "LoanBrokerSet", + "LoanDelete", + "LoanManage", + "LoanPay", + "LoanSet" +]
1 tool update
- Changed
n9t2_xrpl_prepare_transaction1 field changed- changed
Input schema / properties / transaction_type / enumPrevious value: -[ - "Payment", - "TrustSet", - "OfferCreate", - "OfferCancel", - "AccountSet", - "SignerListSet", - "EscrowCreate", - "EscrowFinish", - "EscrowCancel", - "AMMCreate", - "AMMDeposit", - "AMMWithdraw", - "AMMVote", - "AMMBid", - "CheckCreate", - "CheckCash", - "CheckCancel", - "NFTokenMint", - "NFTokenBurn", - "NFTokenCreateOffer", - "NFTokenAcceptOffer", - "NFTokenCancelOffer", - "PaymentChannelCreate", - "PaymentChannelFund", - "PaymentChannelClaim", - "DepositPreauth", - "CredentialCreate", - "CredentialAccept", - "CredentialDelete", - "Batch", - "AMMClawback", - "Clawback", - "DIDSet", - "DIDDelete", - "OracleSet", - "OracleDelete", - "TicketCreate", - "NFTokenModify", - "XChainAccountCreateCommit", - "XChainAddAccountCreateAttestation", - "XChainAddClaimAttestation", - "XChainClaim", - "XChainCommit", - "XChainCreateBridge", - "XChainCreateClaimID", - "XChainModifyBridge", - "AccountDelete", - "AMMDelete", - "DelegateSet", - "SetRegularKey", - "PermissionedDomainSet", - "PermissionedDomainDelete", - "SponsorshipSet", - "SponsorshipTransfer" -]New value: +[ + "Payment", + "TrustSet", + "OfferCreate", + "OfferCancel", + "AccountSet", + "SignerListSet", + "EscrowCreate", + "EscrowFinish", + "EscrowCancel", + "AMMCreate", + "AMMDeposit", + "AMMWithdraw", + "AMMVote", + "AMMBid", + "CheckCreate", + "CheckCash", + "CheckCancel", + "NFTokenMint", + "NFTokenBurn", + "NFTokenCreateOffer", + "NFTokenAcceptOffer", + "NFTokenCancelOffer", + "PaymentChannelCreate", + "PaymentChannelFund", + "PaymentChannelClaim", + "DepositPreauth", + "CredentialCreate", + "CredentialAccept", + "CredentialDelete", + "Batch", + "AMMClawback", + "Clawback", + "DIDSet", + "DIDDelete", + "OracleSet", + "OracleDelete", + "TicketCreate", + "NFTokenModify", + "XChainAccountCreateCommit", + "XChainAddAccountCreateAttestation", + "XChainAddClaimAttestation", + "XChainClaim", + "XChainCommit", + "XChainCreateBridge", + "XChainCreateClaimID", + "XChainModifyBridge", + "AccountDelete", + "AMMDelete", + "DelegateSet", + "SetRegularKey", + "PermissionedDomainSet", + "PermissionedDomainDelete", + "SponsorshipSet", + "SponsorshipTransfer", + "VaultCreate", + "VaultClawback", + "VaultDeposit", + "VaultDelete", + "VaultSet", + "VaultWithdraw", + "MPTokenAuthorize", + "MPTokenIssuanceCreate", + "MPTokenIssuanceDestroy", + "MPTokenIssuanceSet", + "ConfidentialMPTClawback", + "ConfidentialMPTConvert", + "ConfidentialMPTConvertBack", + "ConfidentialMPTMergeInbox", + "ConfidentialMPTSend" +]
1 tool update
- Changed
n9t2_xrpl_prepare_transaction1 field changed- changed
Input schema / properties / transaction_type / enumPrevious value: -[ - "Payment", - "TrustSet", - "OfferCreate", - "OfferCancel", - "AccountSet", - "SignerListSet", - "EscrowCreate", - "EscrowFinish", - "EscrowCancel", - "AMMCreate", - "AMMDeposit", - "AMMWithdraw", - "AMMVote", - "AMMBid", - "CheckCreate", - "CheckCash", - "CheckCancel", - "NFTokenMint", - "NFTokenBurn", - "NFTokenCreateOffer", - "NFTokenAcceptOffer", - "NFTokenCancelOffer", - "PaymentChannelCreate", - "PaymentChannelFund", - "PaymentChannelClaim", - "DepositPreauth", - "CredentialCreate", - "CredentialAccept", - "CredentialDelete", - "Batch", - "AMMClawback", - "Clawback", - "DIDSet", - "DIDDelete", - "OracleSet", - "OracleDelete", - "TicketCreate", - "NFTokenModify", - "XChainAccountCreateCommit", - "XChainAddAccountCreateAttestation", - "XChainAddClaimAttestation", - "XChainClaim", - "XChainCommit", - "XChainCreateBridge", - "XChainCreateClaimID", - "XChainModifyBridge", - "AccountDelete", - "AMMDelete", - "DelegateSet", - "SetRegularKey" -]New value: +[ + "Payment", + "TrustSet", + "OfferCreate", + "OfferCancel", + "AccountSet", + "SignerListSet", + "EscrowCreate", + "EscrowFinish", + "EscrowCancel", + "AMMCreate", + "AMMDeposit", + "AMMWithdraw", + "AMMVote", + "AMMBid", + "CheckCreate", + "CheckCash", + "CheckCancel", + "NFTokenMint", + "NFTokenBurn", + "NFTokenCreateOffer", + "NFTokenAcceptOffer", + "NFTokenCancelOffer", + "PaymentChannelCreate", + "PaymentChannelFund", + "PaymentChannelClaim", + "DepositPreauth", + "CredentialCreate", + "CredentialAccept", + "CredentialDelete", + "Batch", + "AMMClawback", + "Clawback", + "DIDSet", + "DIDDelete", + "OracleSet", + "OracleDelete", + "TicketCreate", + "NFTokenModify", + "XChainAccountCreateCommit", + "XChainAddAccountCreateAttestation", + "XChainAddClaimAttestation", + "XChainClaim", + "XChainCommit", + "XChainCreateBridge", + "XChainCreateClaimID", + "XChainModifyBridge", + "AccountDelete", + "AMMDelete", + "DelegateSet", + "SetRegularKey", + "PermissionedDomainSet", + "PermissionedDomainDelete", + "SponsorshipSet", + "SponsorshipTransfer" +]
1 tool update
- Changed
n9t2_xrpl_prepare_transaction1 field changed- added
Input schema / properties / transaction_type / enumAdded value: +[ + "Payment", + "TrustSet", + "OfferCreate", + "OfferCancel", + "AccountSet", + "SignerListSet", + "EscrowCreate", + "EscrowFinish", + "EscrowCancel", + "AMMCreate", + "AMMDeposit", + "AMMWithdraw", + "AMMVote", + "AMMBid", + "CheckCreate", + "CheckCash", + "CheckCancel", + "NFTokenMint", + "NFTokenBurn", + "NFTokenCreateOffer", + "NFTokenAcceptOffer", + "NFTokenCancelOffer", + "PaymentChannelCreate", + "PaymentChannelFund", + "PaymentChannelClaim", + "DepositPreauth", + "CredentialCreate", + "CredentialAccept", + "CredentialDelete", + "Batch", + "AMMClawback", + "Clawback", + "DIDSet", + "DIDDelete", + "OracleSet", + "OracleDelete", + "TicketCreate", + "NFTokenModify", + "XChainAccountCreateCommit", + "XChainAddAccountCreateAttestation", + "XChainAddClaimAttestation", + "XChainClaim", + "XChainCommit", + "XChainCreateBridge", + "XChainCreateClaimID", + "XChainModifyBridge", + "AccountDelete", + "AMMDelete", + "DelegateSet", + "SetRegularKey" +]
50 tool updates
- Removed
n9t2_xrpl_account_info - Removed
n9t2_xrpl_account_tx - Removed
n9t2_xrpl_book_offers - Added
n9t2_xrpl_find_path - Added
n9t2_xrpl_get_account_info - Added
n9t2_xrpl_get_book_offers - Added
n9t2_xrpl_get_gateway_balances - Added
n9t2_xrpl_get_ledger - Added
n9t2_xrpl_get_ledger_data - Added
n9t2_xrpl_get_server_info - Added
n9t2_xrpl_get_transaction - Removed
n9t2_xrpl_ledger - Removed
n9t2_xrpl_ledger_data - Added
n9t2_xrpl_list_account_channels - Added
n9t2_xrpl_list_account_lines - Added
n9t2_xrpl_list_account_objects - Added
n9t2_xrpl_list_account_offers - Added
n9t2_xrpl_list_account_transactions - Removed
n9t2_xrpl_path_find - Removed
n9t2_xrpl_prepare_account_set - Removed
n9t2_xrpl_prepare_amm_bid - Removed
n9t2_xrpl_prepare_amm_create - Removed
n9t2_xrpl_prepare_amm_deposit - Removed
n9t2_xrpl_prepare_amm_vote - Removed
n9t2_xrpl_prepare_amm_withdraw - Removed
n9t2_xrpl_prepare_check_cancel - Removed
n9t2_xrpl_prepare_check_cash - Removed
n9t2_xrpl_prepare_check_create - Removed
n9t2_xrpl_prepare_credential_accept - Removed
n9t2_xrpl_prepare_credential_create - Removed
n9t2_xrpl_prepare_credential_delete - Removed
n9t2_xrpl_prepare_deposit_preauth - Removed
n9t2_xrpl_prepare_escrow_cancel - Removed
n9t2_xrpl_prepare_escrow_create - Removed
n9t2_xrpl_prepare_escrow_finish - Removed
n9t2_xrpl_prepare_nftoken_accept_offer - Removed
n9t2_xrpl_prepare_nftoken_burn - Removed
n9t2_xrpl_prepare_nftoken_cancel_offer - Removed
n9t2_xrpl_prepare_nftoken_create_offer - Removed
n9t2_xrpl_prepare_nftoken_mint - Removed
n9t2_xrpl_prepare_offer_cancel - Removed
n9t2_xrpl_prepare_offer_create - Removed
n9t2_xrpl_prepare_payment - Removed
n9t2_xrpl_prepare_payment_channel_claim - Removed
n9t2_xrpl_prepare_payment_channel_create - Removed
n9t2_xrpl_prepare_payment_channel_fund - Removed
n9t2_xrpl_prepare_signer_list_set - Added
n9t2_xrpl_prepare_transaction - Removed
n9t2_xrpl_prepare_trust_set - Removed
n9t2_xrpl_tx
12 tool updates
- Added
n9t2_xrpl_prepare_credential_accept - Added
n9t2_xrpl_prepare_credential_create - Added
n9t2_xrpl_prepare_credential_delete - Added
n9t2_xrpl_prepare_deposit_preauth - Added
n9t2_xrpl_prepare_nftoken_accept_offer - Added
n9t2_xrpl_prepare_nftoken_burn - Added
n9t2_xrpl_prepare_nftoken_cancel_offer - Added
n9t2_xrpl_prepare_nftoken_create_offer - Added
n9t2_xrpl_prepare_nftoken_mint - Added
n9t2_xrpl_prepare_payment_channel_claim - Added
n9t2_xrpl_prepare_payment_channel_create - Added
n9t2_xrpl_prepare_payment_channel_fund
8 tool updates
- Added
n9t2_xrpl_prepare_amm_bid - Added
n9t2_xrpl_prepare_amm_create - Added
n9t2_xrpl_prepare_amm_deposit - Added
n9t2_xrpl_prepare_amm_vote - Added
n9t2_xrpl_prepare_amm_withdraw - Added
n9t2_xrpl_prepare_check_cancel - Added
n9t2_xrpl_prepare_check_cash - Added
n9t2_xrpl_prepare_check_create
Related MCP Connectors
28 agent tools via x402: crypto data, tx checks, web fetch. MCP pays Base USDC; HTTP adds 3 rails.
63 pay-per-call tools for agents: vision, text, data, web, blockchain. USDC on Base via x402.
Synergy: paid AI-agent utility tasks over x402 (USDC Base) via MCP.
Translation, data quality, execution verification and agent utilities over MCP + x402 USDC on Base.
Related MCP Servers
- AlicenseAqualityDmaintenance22 MCP tools for AI agents: crypto prices and trading signals (53 coins), stock prices and company financials, forex rates and conversion, and web scraping with AI summaries. All powered by x402 USDC micropayments on Base. $0.01-$0.25 per request.2219 npmMIT
- AlicenseNot gradedqualityBmaintenanceMCP server exposing 10 curated tools for AI agents, providing crypto trading signals, on-chain analysis, and web utilities via pay-per-call x402 endpoints on the Base network.MIT
- AlicenseAqualityBmaintenanceAgent-to-agent marketplace where AI agents discover, invoke, and pay for services from other agents using USDC on Base L2. 72+ services, free tools, x402 micropayments.2041MIT
- FlicenseNot gradedqualityDmaintenance56 pay-per-call MCP endpoints for AI agents. Market signals, macro economics, crypto/DeFi, geopolitical intelligence, SEC filings, GitHub velocity, sanctions screening. USDC on Base Mainnet via x402.-
Glama MCP Gateway
Add one secure layer between your agents and this server.