{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"redocly_category":"Documentation","type":"markdown"},"seo":{"title":"The XRPL Trading Skill","siteUrl":"https://xrpl.org","llmstxt":{"hide":false,"title":"XRPL Developer Portal & Documentation","description":"Explore XRP Ledger documentation, blogs, and other blockchain developer resources needed to start building and integrating with the ledger.","details":{"content":"XRP Ledger concepts, use cases, tutorials, references, and other blockchain developer resources. Also, stay up to date with release announcements and more through the XRPL Blog."},"sections":[{"title":"Introduction","description":"A high-level introduction to the XRP Ledger.","includeFiles":["docs/introduction/**/*.*","about/faq.md"],"excludeFiles":["docs/introduction/index.md"]},{"title":"Use Cases","description":"Real-world applications and business scenarios for the XRP Ledger.","includeFiles":["docs/use-cases/**/*.*"],"excludeFiles":["docs/use-cases/index.md","docs/use-cases/defi/index.md"]},{"title":"Agentic Transactions","description":"XRPL AI Starter Kit to help autonomous agents discover, set up, and execute agentic transactions on the XRP Ledger.","includeFiles":["docs/agents/**/*.*"]},{"title":"Concepts","description":"Core concepts including accounts, tokens, transactions, consensus, and more.","includeFiles":["docs/concepts/**/*.*"],"excludeFiles":["docs/concepts/index.md","docs/concepts/decentralized-storage/index.md","docs/concepts/payment-types/index.md"]},{"title":"Tutorials","description":"Step-by-step guides for building on the XRP Ledger in JavaScript, Python, Go, and more.","includeFiles":["docs/tutorials/**/*.*"]},{"title":"References","description":"Protocol specification, transaction types, ledger entries, and API methods.","includeFiles":["docs/references/**/*.*"],"excludeFiles":["docs/references/xrp-api.md","docs/references/data-api.md","docs/references/protocol/index.md","docs/references/protocol/ledger-data/ledger-entry-types/index.md","docs/references/protocol/transactions/index.md","docs/references/protocol/transactions/types/index.md","docs/references/http-websocket-apis/api-conventions/index.md","docs/references/http-websocket-apis/public-api-methods/*/index.md","docs/references/http-websocket-apis/admin-api-methods/*/index.md"]},{"title":"Infrastructure","description":"Install, configure, and troubleshoot xrpld and Clio servers.","includeFiles":["docs/infrastructure/**/*.*"],"excludeFiles":["docs/infrastructure/index.md","docs/infrastructure/*/index.md","docs/infrastructure/installation/build-run-xrpld-in-reporting-mode.md","docs/infrastructure/configuration/data-retention/index.md","docs/infrastructure/configuration/server-modes/index.md"]},{"title":"Blog (2023+)","description":"Recent XRPL Blog posts (showing 2023 and newer).","includeFiles":["blog/2023/**/*.*","blog/2024/**/*.*","blog/2025/**/*.*","blog/2026/**/*.*"]},{"title":"Resources","description":"Developer resources and contribution guidelines.","includeFiles":["resources/**/*.*"]}]},"description":"The XRPL Trading skill gives Claude accurate, up-to-date knowledge of XRP Ledger DEX operations — permissionless limit orders, offer cancellation, order book reads, AMM interaction, cross-currency exchange, and agentic best practices. Works with the XRPL Agent Wallet skill to sign and submit.\n"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"xrpl-trading","__idx":0},"children":["XRPL Trading"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The XRPL DEX is a fully on-ledger, permissionless exchange — no intermediary, no off-chain matching engine, no custody transfer. Every offer is a ledger object. Crossing happens atomically during transaction processing in the order determined by ledger consensus. The same properties that make it reliable for institutional settlement make it well-suited for AI agents: ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["3–5 second deterministic finality"]},", predictable fees, and no ambiguous pending state."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The XRPL Trading skill is the domain knowledge layer for DEX operations on the XRP Ledger. It gives Claude accurate, up-to-date knowledge of XRPL offer semantics so it can construct the right transaction object for any trading task — limit orders, cancellations, order book reads, cross-currency exchange, and AMM interaction — and hand that object to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["XRPL Agent Wallet skill"]}," for signing and submission."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Both skills are required for a complete agentic trading workflow."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-this-skill-covers","__idx":1},"children":["What this Skill covers"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Area"},"children":["Area"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"What it knows"},"children":["What it knows"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Offer semantics"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["TakerPays / TakerGets from the creator's perspective, fill outcomes (filled / partial / resting), offer quality and priority"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["OfferCreate"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Limit orders, immediate-or-cancel (market-equivalent), fill-or-kill, passive (post-only), atomic offer replacement, offer expiry"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["OfferCancel"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Cancelling resting offers by sequence number, verifying ownership before cancelling"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Order book"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["book_offers"]}," RPC, unfunded-offer filtering (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["taker_gets_funded"]},"), bid/ask spread, funded depth, estimated fill and slippage"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Amount handling"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["XRP in drops, IOU ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{currency, issuer, value}"]}," objects, XRPL epoch conversion for expiry"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Trust lines"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Pre-flight trust line verification for IOU offers; ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RequireAuth"]}," issuer detection to prevent ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tecNO_LINE"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tecNO_AUTH"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["AMM interaction"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Implicit AMM liquidity via OfferCreate — no separate transaction type needed"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Agentic best practices"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["SourceTag for agent attribution, Memos for on-chain audit trail, pre-trade summary, WebSocket monitoring for resting offer fills"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Error handling"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Full ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OfferCreate"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OfferCancel"]}," error set — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tec*"]}," codes (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tecUNFUNDED_OFFER"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tecKILLED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tecNO_LINE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tecNO_AUTH"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tecNO_ISSUER"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tecFROZEN"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tecINSUF_RESERVE_OFFER"]},") and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tem*"]}," codes, fee-charged vs no-fee classification"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Security"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Key management deferred to Wallet skill. Inline pre-flight guardrails (reserve check, trust line check, expiry validation, flag-conflict detection) run ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["before the user is asked to approve"]},", and are re-asserted before handoff."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"works-with","__idx":2},"children":["Works with"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Skill"},"children":["Skill"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Role"},"children":["Role"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["XRPL Agent Wallet"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Required — handles wallet creation, key loading, and signs and submits every transaction this skill constructs. Supports env-var (development), external signer (HSM/KMS), and OWS (Open Wallet Standard) signing paths."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Trading skill is one of a growing set of XRPL domain skills. All domain skills"," ","pair with the same shared Wallet skill. See"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/resources/dev-tools/ai-tools"},"children":["AI Tooling"]}," for the full list."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Need a wallet first?"]}," If the user doesn't have an XRPL wallet yet, load the"," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["XRPL Agent Wallet skill"]}," — it handles wallet generation, writes the seed safely to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".env"]},", and never shows it in chat. Return here once the wallet is ready."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"default-behavior-and-stack-decisions","__idx":3},"children":["Default behavior and stack decisions"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Languages:"]}," Python (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["xrpl-py"]},") and TypeScript/JavaScript (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["xrpl.js"]},") are both first-class. Use whichever the developer's project already uses; if there is no existing codebase, ask. Code examples in the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://github.com/XRPLF/xrpl-dev-portal/tree/master/.claude/skills/xrpl-skills/xrpl-trading"},"children":["skill reference files"]}," cover both."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transaction submission:"]}," Handled entirely by the XRPL Agent Wallet skill. This skill builds transaction objects; it does not call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["submit_and_wait"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["submitAndWait"]}," directly."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Signing path:"]}," Determined by the XRPL Agent Wallet skill configuration — env-var (development), external signer (HSM/KMS), or OWS (Open Wallet Standard). See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/agents/xrpl-agent-wallet-skill/"},"children":["The XRPL Agent Wallet Skill"]}," for setup."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Amount handling:"]}," XRP amounts are always strings in drops — use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["xrp_to_drops()"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["xrpToDrops()"]},". Never pass floats or raw XRP values. IOU amounts use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{currency, issuer, value}"]}," objects with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["value"]}," as a decimal string."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Source tag:"]}," The XRPL Agent Wallet skill automatically applies ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SourceTag = 20260530"]}," to every transaction that passes through the signing ceremony. Override by setting ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SourceTag"]}," on the transaction object before handoff. You do not need to set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SourceTag"]}," — the Wallet skill applies it. Set it only for a deliberate custom tag, or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0"]}," to opt out."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Network:"]}," Testnet (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://s.altnet.rippletest.net:51234"]},") by default. Switching to Mainnet is a one-line URL change."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Simulate before the summary:"]}," Where the node supports it, call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["simulate"]}," on the built transaction before showing the pre-trade summary. It returns the ledger's own ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["engine_result"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["applied: false"]}," and costs no fee, catching cases no local check covers — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tecNO_LINE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tecNO_AUTH"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tecFROZEN"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tecNO_ISSUER"]},". Recommended, not required: fall back to the local guardrails if ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["simulate"]}," is unavailable."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"operating-procedure","__idx":4},"children":["Operating procedure"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Identify the operation"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["create_offer"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cancel_offer"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["get_order_book"]},". Check the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://github.com/XRPLF/xrpl-dev-portal/tree/master/.claude/skills/xrpl-skills/xrpl-trading/references/trading.md"},"children":["trading.md reference"]}," for full patterns and edge cases."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Check prerequisites"]}," — Trust line exists for IOU side of offer? Account has sufficient balance including fees and reserve for a new resting offer? Expiry is in the future?"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Build"]}," — Construct the transaction object. Do not set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Fee"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Sequence"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["LastLedgerSequence"]}," — the Wallet skill's autofill populates these from the live node."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Run built-in guardrails"]}," — Apply pre-flight checks ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["before"]}," asking the user to approve anything: reserve adequacy, trust line state (including ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["RequireAuth"]}," issuers on the buy side), expiry sanity, and flag conflicts. Stop and surface a clear error if any check fails — never ask a user to approve a trade already known to fail, because every ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tec*"]}," failure charges a fee."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Show pre-trade summary"]}," — For ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["create_offer"]},", always show offer details, mid price, estimated fill, slippage, and the pre-flight verdict. Collect user acknowledgement before proceeding."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Hand off to the Wallet skill"]}," — Re-assert the guardrails against current ledger state, then pass the transaction object to the XRPL Agent Wallet skill. It will autofill, preview, sign, and submit via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["submitAndWait"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Parse and surface result"]}," — Classify the fill outcome (filled / partial / resting). Surface the offer sequence when a remainder exists on the book. Handle ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tec*"]}," errors explicitly — every ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tec*"]}," code means a fee was charged with no fill."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-this-skill-does-not-do","__idx":5},"children":["What this skill does not do"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create wallets or handle keys."]}," Wallet generation, seed storage, key loading, signing, and all key management belong to the XRPL Agent Wallet skill."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sign or submit transactions."]}," That is the Wallet skill's responsibility. This skill never calls ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["submit_and_wait"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["submitAndWait"]},", or any equivalent directly."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Construct non-trading transactions on its own initiative."]}," The skill responds to developer and user instructions; it does not propose offers unprompted."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Retry automatically."]}," Any ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tec*"]}," failure or user cancellation requires explicit user instruction before retrying."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"reference-files","__idx":6},"children":["Reference files"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The trading skill references these files for full transaction patterns and edge cases:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://github.com/XRPLF/xrpl-dev-portal/tree/master/.claude/skills/xrpl-skills/xrpl-trading/references/trading.md"},"children":["trading.md"]}," — OfferCreate, OfferCancel, order book patterns, AMM integration, cross-currency flows, agentic patterns, error codes, reserves"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"where-to-go-next","__idx":7},"children":["Where to go next"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/agents/getting-started-with-xrpl-trading/"},"children":["Getting Started with XRPL Trading"]}," — Install the Trading skill and place your first limit order on the XRPL DEX."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/agents/xrpl-agent-wallet-skill/"},"children":["The XRPL Agent Wallet Skill"]}," — Security model, signing ceremony, and key handling patterns including OWS."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/concepts/tokens/decentralized-exchange/"},"children":["Decentralized Exchange"]}," — XRPL DEX concepts: offer matching, quality, and the order book."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/resources/dev-tools/ai-tools"},"children":["View AI Tooling"]}," — The full set of XRPL skills and MCP servers for Claude agents."]}]}]},"headings":[{"value":"XRPL Trading","id":"xrpl-trading","depth":1},{"value":"What this Skill covers","id":"what-this-skill-covers","depth":2},{"value":"Works with","id":"works-with","depth":2},{"value":"Default behavior and stack decisions","id":"default-behavior-and-stack-decisions","depth":2},{"value":"Operating procedure","id":"operating-procedure","depth":2},{"value":"What this skill does not do","id":"what-this-skill-does-not-do","depth":2},{"value":"Reference files","id":"reference-files","depth":2},{"value":"Where to go next","id":"where-to-go-next","depth":2}],"frontmatter":{"seo":{"title":"The XRPL Trading Skill","description":"The XRPL Trading skill gives Claude accurate, up-to-date knowledge of XRP Ledger DEX operations — permissionless limit orders, offer cancellation, order book reads, AMM interaction, cross-currency exchange, and agentic best practices. Works with the XRPL Agent Wallet skill to sign and submit.\n"},"labels":["AI","Agents","DEX","Trading"]},"editPage":{"to":"https://github.com/XRPLF/xrpl-dev-portal/tree/master/docs/agents/xrpl-trading-skill.md"},"lastModified":"2026-09-16T23:01:23.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/agents/xrpl-trading-skill","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}