{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-products/wallet/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Submit XRP Ledger transactions via the API","description":"User guides, API reference, and support resources.","siteUrl":"https://docs.ripple.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"submit-xrp-ledger-transactions-via-the-api","__idx":0},"children":["Submit XRP Ledger transactions via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This guide shows you how to submit XRP Ledger (XRPL) transaction types beyond simple payments — trust lines, account settings, clawbacks, DEX offers, signer lists, and automated market maker (AMM) operations — from a Ripple Custody (Wallet) wallet. To create these and other XRP Ledger transaction types in the console instead, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/xrpl/xrpl-in-the-console"},"children":["XRP Ledger transactions in the console"]},". To send XRP or an issued token as a payment, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/send-assets"},"children":["Send assets via the API"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"xrp-ledger-transaction-actions","__idx":1},"children":["XRP Ledger transaction actions"]},{"$$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":{"data-label":"Action"},"children":["Action"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Console role"},"children":["Console role"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Console procedure"},"children":["Console procedure"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"API procedure"},"children":["API procedure"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create a DEX offer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/xrpl/xrpl-in-the-console#offercreate-via-the-console"},"children":["OfferCreate"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#create-a-dex-offer-offer-create-via-the-api"},"children":["Create a DEX offer (offer-create)"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Cancel a DEX offer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/xrpl/xrpl-in-the-console#offercancel-via-the-console"},"children":["OfferCancel"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#cancel-a-dex-offer-offer-cancel-via-the-api"},"children":["Cancel a DEX offer (offer-cancel)"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Set a trust line"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/xrpl/xrpl-in-the-console#trustline-via-the-console"},"children":["TrustLine"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#set-a-trust-line-trust-set-via-the-api"},"children":["Set a trust line (trust-set)"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Configure the account"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/xrpl/xrpl-in-the-console#accountset-via-the-console"},"children":["AccountSet"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#configure-the-account-account-set-via-the-api"},"children":["Configure the account (account-set)"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Set a signer list"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/xrpl/xrpl-in-the-console#signerlistset-via-the-console"},"children":["SignerListSet"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#set-a-signer-list-signer-list-set-via-the-api"},"children":["Set a signer list (signer-list-set)"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Accept a credential"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/xrpl/xrpl-in-the-console#credentialaccept-via-the-console"},"children":["CredentialAccept"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No dedicated endpoint; use ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/raw-signing"},"children":["raw signing"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Deposit into a ledger vault"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/xrpl/xrpl-in-the-console#vaultdeposit-via-the-console"},"children":["VaultDeposit"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No dedicated endpoint; use ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/raw-signing"},"children":["raw signing"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Withdraw from a ledger vault"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/xrpl/xrpl-in-the-console#vaultwithdraw-via-the-console"},"children":["VaultWithdraw"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No dedicated endpoint; use ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/raw-signing"},"children":["raw signing"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Request a loan"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/xrpl/xrpl-in-the-console#loanset-via-the-console"},"children":["LoanSet"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No dedicated endpoint; use ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/raw-signing"},"children":["raw signing"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Repay a loan"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/xrpl/xrpl-in-the-console#loanpay-via-the-console"},"children":["LoanPay"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No dedicated endpoint; use ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/raw-signing"},"children":["raw signing"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Claw back issued tokens"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#claw-back-issued-tokens-clawback-via-the-api"},"children":["Claw back issued tokens (clawback)"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create an AMM"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#create-an-amm-amm-create-via-the-api"},"children":["Create an AMM (amm-create)"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Deposit into an AMM"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#deposit-into-an-amm-amm-deposit-via-the-api"},"children":["Deposit into an AMM (amm-deposit)"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Withdraw from an AMM"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#withdraw-from-an-amm-amm-withdraw-via-the-api"},"children":["Withdraw from an AMM (amm-withdraw)"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Track the result"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All roles"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/view-and-track-transactions#view-a-transaction-via-the-console"},"children":["View a transaction"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#track-the-result-via-the-api"},"children":["Track the result"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Permissions:"]}," In the console, owners, administrators, and proposers can create transactions, and owners, administrators, proposers, and approvers can approve them. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/organization-and-access/users-and-roles#transactions"},"children":["User roles and permissions"]},". The API procedures need an API credential of type ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRANSACTIONS"]},". See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#prerequisites"},"children":["Prerequisites"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"prerequisites","__idx":2},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["An API credential of type ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRANSACTIONS"]},"."]}," It grants access to creating and managing transactions, including XRP Ledger transaction types. Create credentials in the console — see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/organization-and-access/api-credentials/manage-api-credentials"},"children":["Manage API credentials"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/organization-and-access/api-credentials#credential-types"},"children":["Credential types"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["An access token."]}," Exchange your credential's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientId"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clientSecret"]}," for an access token — see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/get-started/use-the-api#step-2-authenticate"},"children":["Authenticate"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["A funded XRP Ledger wallet."]}," The endpoints on this page act on a single wallet, so you need the wallet's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["vaultId"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["walletId"]}," — see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/get-started/console/create-your-first-wallet"},"children":["Create your first wallet"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["An active policy that permits outgoing transactions"]}," — see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/get-started/console/unlock-outgoing-transactions"},"children":["Unlock outgoing transactions"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For the base URLs, token lifetime, pagination, filtering, and error format that every endpoint shares, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-and-developer-experience/api-conventions"},"children":["API conventions"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"common-request-fields","__idx":3},"children":["Common request fields"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every endpoint on this page is a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/vaults/{vaultId}/wallets/{walletId}/transactions/xrp/<type>"]},". Each accepts these optional fields alongside its own:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sequence"]}," (string) — the account sequence number to use."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lastLedgerSequence"]}," (string) — the highest ledger index this transaction can appear in."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sourceTag"]}," (string) — the source tag for this transaction."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Amounts use a currency amount object with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["value"]}," (string) and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset"]}," (the currency code) — both required — and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["issuer"]},", the issuing address. You can omit ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["issuer"]}," when the asset is XRP. Fields that identify an asset without an amount, such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset2"]}," on AMM deposits and withdrawals, take only ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["issuer"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each endpoint returns the created transaction object, which then moves through the standard lifecycle. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#track-the-result-via-the-api"},"children":["Track the result"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A request that omits a required field returns HTTP 400 with the reason ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PAL000.020"]},". Check field names and flag names against this page before you submit."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"set-a-trust-line-trust-set-via-the-api","__idx":4},"children":["Set a trust line (trust-set) via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API reference:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/transactions-xrp/transactionsservice_submittrustset"},"children":["Create an XRP Trust Set transaction"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create or modify a trust line, which lets the wallet hold a token issued by another account. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["limitAmount"]}," is required: it defines the currency, its issuer, and the maximum amount to trust."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Optional fields:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qualityIn"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qualityOut"]}," (integers) — value incoming and outgoing balances on the trust line at the ratio of this number per 1,000,000,000 units. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0"]}," treats balances at face value."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flags"]}," — an array of any of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SETF_AUTH"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SET_NORIPPLE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNSET_NORIPPLE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SET_FREEZE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNSET_FREEZE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SET_DEEP_FREEZE"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UNSET_DEEP_FREEZE"]},"."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/transactions/xrp/trust-set\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"limitAmount\": {\n      \"value\": \"1000000\",\n      \"asset\": \"USD\",\n      \"issuer\": \"rGgKM3hTn8MBMGgiiPMbz73VEkSBocqab6\"\n    },\n    \"qualityIn\": 0,\n    \"qualityOut\": 0,\n    \"flags\": [\"SET_NORIPPLE\"]\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"configure-the-account-account-set-via-the-api","__idx":5},"children":["Configure the account (account-set) via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API reference:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/transactions-xrp/transactionsservice_submitaccountset"},"children":["Create an XRP Account Set transaction"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Change the wallet's XRPL account settings. All fields are optional; set only what you want to change. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["setFlag"]}," turns on one account flag and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["clearFlag"]}," turns one off. Each takes one of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ACCOUNT_TXN_ID"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ALLOW_TRUSTLINE_CLAWBACK"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AUTHZ_NFTOKEN_MINTER"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DEFAULT_RIPPLE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DEPOSIT_AUTH"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DISABLE_MASTER"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DISALLOW_INCOMING_CHECK"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DISALLOW_INCOMING_PAY_CHAN"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DISALLOW_INCOMING_TRUSTLINE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DISALLOW_XRP"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GLOBAL_FREEZE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["NO_FREEZE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REQUIRE_AUTH"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REQUIRE_DEST"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Other fields:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["domain"]}," — the hex-encoded ASCII domain that owns this account, less than 256 characters. Set it to an empty string to remove it."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["emailHash"]}," — the hex-encoded 128-bit hash of the email address for this account. Set it to an empty string to remove it."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["messageKey"]}," — a 33-byte public key for sending encrypted messages to this account. The first byte must be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0x02"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0x03"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0xED"]},". Set it to an empty string to remove it."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["nfTokenMinter"]}," — the address of another account that can mint NFTokens for this account."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transferRate"]}," (integer) — the fee to charge when users transfer tokens this account issues, in billionths of a unit: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0"]},", or a value from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["1000000000"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["2000000000"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tickSize"]}," (integer) — the tick size for offers involving a currency this account issues: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0"]},", or from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["3"]}," through ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["15"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["walletLocator"]}," — an arbitrary 256-bit hash value to associate with this account."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["walletSize"]}," (integer) — an unused field you can set on the account."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/transactions/xrp/account-set\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"setFlag\": \"REQUIRE_DEST\",\n    \"domain\": \"6578616d706c652e636f6d\",\n    \"transferRate\": 1005000000,\n    \"tickSize\": 5\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"claw-back-issued-tokens-clawback-via-the-api","__idx":6},"children":["Claw back issued tokens (clawback) via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API reference:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/transactions-xrp/transactionsservice_submitclawback"},"children":["Create an XRP Clawback transaction"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Reclaim tokens that the wallet issued from a holder's account. The wallet must turn on the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ALLOW_TRUSTLINE_CLAWBACK"]}," account flag before it issues the tokens. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]}," is required: it sets the amount and currency to claw back, and its ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["issuer"]}," field holds the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["token holder's"]}," address, not the wallet's. For MPTokens, set the optional ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["holder"]}," field to the holder's address."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/transactions/xrp/clawback\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"amount\": {\n      \"value\": \"250\",\n      \"asset\": \"USD\",\n      \"issuer\": \"rLsV52sRDL79HXGGm9yzwKibb6BeruhUzy\"\n    }\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create-a-dex-offer-offer-create-via-the-api","__idx":7},"children":["Create a DEX offer (offer-create) via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API reference:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/transactions-xrp/transactionsservice_submitoffercreate"},"children":["Create an XRP Offer Create transaction"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Place an order on the XRPL decentralized exchange. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["takerGets"]}," (the amount and currency to sell) and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["takerPays"]}," (the amount and currency to buy) are required."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Optional fields:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expiration"]}," (string) — the Unix timestamp after which the offer is no longer active."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offerSequence"]}," (string) — the sequence number of an existing offer to cancel before placing this one."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flags"]}," — an array of any of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PASSIVE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IMMEDIATE_OR_CANCEL"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FILL_OR_KILL"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SELL"]},". Don't combine ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["IMMEDIATE_OR_CANCEL"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FILL_OR_KILL"]},"."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/transactions/xrp/offer-create\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"takerGets\": {\n      \"value\": \"100\",\n      \"asset\": \"XRP\"\n    },\n    \"takerPays\": {\n      \"value\": \"55.50\",\n      \"asset\": \"USD\",\n      \"issuer\": \"rGgKM3hTn8MBMGgiiPMbz73VEkSBocqab6\"\n    },\n    \"expiration\": \"1885634315\",\n    \"flags\": [\"PASSIVE\"]\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"cancel-a-dex-offer-offer-cancel-via-the-api","__idx":8},"children":["Cancel a DEX offer (offer-cancel) via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API reference:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/transactions-xrp/transactionsservice_submitoffercancel"},"children":["Create an XRP Offer Cancel transaction"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Remove an offer that the wallet placed on the decentralized exchange. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offerSequence"]}," is required: it's the sequence number of the OfferCreate transaction that placed the offer, which is the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sequence"]}," field of that transaction in Ripple Custody (Wallet)."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/transactions/xrp/offer-cancel\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"offerSequence\": \"2\"\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"set-a-signer-list-signer-list-set-via-the-api","__idx":9},"children":["Set a signer list (signer-list-set) via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API reference:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/transactions-xrp/transactionsservice_submitsignerlistset"},"children":["Create an XRP SignerList Set transaction"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configure the list of accounts that can multi-sign for this wallet's XRPL account. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["signerQuorum"]}," (integer) is the minimum sum of signer weights that authorizes a transaction. The weights of all signers must add up to at least this value. List each signer in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["signerEntries"]}," with an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["account"]}," address and a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["signerWeight"]}," (integer); the signer account doesn't need to exist. To remove the signer list, set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["signerQuorum"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0"]}," and leave ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["signerEntries"]}," empty."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"An empty request removes the signer list"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["On the XRP Ledger, a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["signerQuorum"]}," of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0"]}," deletes the signer list, and an omitted ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["signerQuorum"]}," counts as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0"]},". Always set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["signerQuorum"]}," when you add or change signers."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/transactions/xrp/signer-list-set\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"signerQuorum\": 3,\n    \"signerEntries\": [\n      { \"account\": \"rGgKM3hTn8MBMGgiiPMbz73VEkSBocqab6\", \"signerWeight\": 2 },\n      { \"account\": \"rLsV52sRDL79HXGGm9yzwKibb6BeruhUzy\", \"signerWeight\": 2 }\n    ]\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To sign as one of the signers on another account's multi-signed transaction, use raw signing with a multi-signing payload — see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/raw-signing/encoding-formats#xrp-ledger"},"children":["Transaction encoding formats: XRP Ledger"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create-an-amm-amm-create-via-the-api","__idx":10},"children":["Create an AMM (amm-create) via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API reference:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/transactions-xrp/transactionsservice_submitammcreate"},"children":["Create an XRP AMM Create transaction"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create an AMM instance and fund its initial pool. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]}," (the first asset and amount to deposit), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount2"]}," (the second asset and amount to deposit), and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tradingFee"]}," are all required. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tradingFee"]}," (integer) is the fee for trades against the AMM, in units of 1/100,000."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/transactions/xrp/amm-create\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"amount\": {\n      \"value\": \"1000\",\n      \"asset\": \"XRP\"\n    },\n    \"amount2\": {\n      \"value\": \"500\",\n      \"asset\": \"USD\",\n      \"issuer\": \"rGgKM3hTn8MBMGgiiPMbz73VEkSBocqab6\"\n    },\n    \"tradingFee\": 1000\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"deposit-into-an-amm-amm-deposit-via-the-api","__idx":11},"children":["Deposit into an AMM (amm-deposit) via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API reference:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/transactions-xrp/transactionsservice_submitammdeposit"},"children":["Create an XRP AMM Deposit transaction"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add liquidity to an existing AMM in exchange for its LP tokens. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset2"]}," are required: they identify the AMM's asset pair. You must also set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount2"]},", or both."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Optional fields:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]}," — the amount of the first asset to deposit."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount2"]}," — the amount of the second asset to deposit. Not allowed with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DEPOSIT_SINGLE_ASSET"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ePrice"]}," — the maximum effective price, in the deposit asset, to pay for each LP token received."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tradingFee"]}," (integer) — a vote for the AMM's trading fee, in units of 1/100,000."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flags"]}," — a single deposit mode: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DEPOSIT_SINGLE_ASSET"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DEPOSIT_TWO_ASSET"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DEPOSIT_LIMIT_LP_TOKEN"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DEPOSIT_TWO_ASSET_IF_EMPTY"]},". Unlike trust-set and offer-create, this field is a string, not an array."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ripple Custody (Wallet) rejects ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lpTokenOut"]}," and the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DEPOSIT_LP_TOKEN"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DEPOSIT_ONE_ASSET_LP_TOKEN"]}," modes, although they appear in the API reference."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/transactions/xrp/amm-deposit\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"asset\": { \"asset\": \"XRP\" },\n    \"asset2\": {\n      \"asset\": \"USD\",\n      \"issuer\": \"rGgKM3hTn8MBMGgiiPMbz73VEkSBocqab6\"\n    },\n    \"amount\": { \"value\": \"100\", \"asset\": \"XRP\" },\n    \"amount2\": {\n      \"value\": \"50\",\n      \"asset\": \"USD\",\n      \"issuer\": \"rGgKM3hTn8MBMGgiiPMbz73VEkSBocqab6\"\n    },\n    \"flags\": \"DEPOSIT_TWO_ASSET\"\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"withdraw-from-an-amm-amm-withdraw-via-the-api","__idx":12},"children":["Withdraw from an AMM (amm-withdraw) via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API reference:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/transactions-xrp/transactionsservice_submitammwithdraw"},"children":["Create an XRP AMM Withdraw transaction"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Remove liquidity from an AMM by redeeming LP tokens. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset2"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lpTokenIn"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flags"]}," are required. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset2"]}," identify the AMM's asset pair, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lpTokenIn"]}," is how many of the AMM's LP tokens to redeem."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ripple Custody (Wallet) accepts two withdrawal modes in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["flags"]}," (a string, not an array):"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WITHDRAW_LP_TOKEN"]}," — redeem ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lpTokenIn"]}," for both assets in proportion to the pool. Don't send ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WITHDRAW_ONE_ASSET_LP_TOKEN"]}," — redeem ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["lpTokenIn"]}," for a single asset. Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]}," to the first asset and the amount to withdraw."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The other values in the flag enum aren't supported, and the request doesn't accept ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount2"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ePrice"]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/transactions/xrp/amm-withdraw\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"asset\": { \"asset\": \"XRP\" },\n    \"asset2\": {\n      \"asset\": \"USD\",\n      \"issuer\": \"rGgKM3hTn8MBMGgiiPMbz73VEkSBocqab6\"\n    },\n    \"lpTokenIn\": {\n      \"value\": \"25\",\n      \"asset\": \"039C99CD9AB0B70B32ECDA51EAAE471625608EA2\",\n      \"issuer\": \"rE54zDvgnghAoPopCgvtiqWNq3dU5y836S\"\n    },\n    \"flags\": \"WITHDRAW_LP_TOKEN\"\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"track-the-result-via-the-api","__idx":13},"children":["Track the result via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API reference:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/transactions/transactionsservice_gettransaction"},"children":["Get a transaction"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each call returns a transaction object with HTTP 200 and a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]}," of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["REQUESTED"]},". The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["action"]}," field is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PALISADE_MANAGED"]},", and the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionType"]}," field holds the XRPL transaction type, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TrustSet"]},". The response also includes the account ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sequence"]},", the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["encodedTransaction"]}," signing payload, and the expected fee in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["proposedAssetChanges"]},". ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qty"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"0\""]}," for types that don't move an amount, such as trust-set, account-set, and offer-cancel. For an offer-create that sells XRP, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["qty"]}," is the XRP amount in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["takerGets"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["proposedAssetChanges"]}," also lists both sides of the offer. When the offer isn't filled straight away, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmedAssetChanges"]}," holds only the fee. For a trust line, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination"]}," is the issuer from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["limitAmount"]},". Track the transaction to confirmation the same way as a transfer — see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/view-and-track-transactions#track-the-transaction-lifecycle-via-the-api"},"children":["Track the transaction lifecycle"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-topics","__idx":14},"children":["Related topics"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/xrpl/xrpl-in-the-console"},"children":["XRP Ledger transactions in the console"]}," — Create XRPL offers, trust lines, account settings, signer lists, and credential, vault, and loan transactions in the console"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/transactions/raw-signing"},"children":["Raw signing"]}," — Sign any XRPL transaction type, including multi-signing"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api"},"children":["Ripple Custody (Wallet) API reference"]}," — Full request and response schemas"]}]}]},"headings":[{"value":"Submit XRP Ledger transactions via the API","id":"submit-xrp-ledger-transactions-via-the-api","depth":1},{"value":"XRP Ledger transaction actions","id":"xrp-ledger-transaction-actions","depth":2},{"value":"Prerequisites","id":"prerequisites","depth":2},{"value":"Common request fields","id":"common-request-fields","depth":2},{"value":"Set a trust line (trust-set) via the API","id":"set-a-trust-line-trust-set-via-the-api","depth":2},{"value":"Configure the account (account-set) via the API","id":"configure-the-account-account-set-via-the-api","depth":2},{"value":"Claw back issued tokens (clawback) via the API","id":"claw-back-issued-tokens-clawback-via-the-api","depth":2},{"value":"Create a DEX offer (offer-create) via the API","id":"create-a-dex-offer-offer-create-via-the-api","depth":2},{"value":"Cancel a DEX offer (offer-cancel) via the API","id":"cancel-a-dex-offer-offer-cancel-via-the-api","depth":2},{"value":"Set a signer list (signer-list-set) via the API","id":"set-a-signer-list-signer-list-set-via-the-api","depth":2},{"value":"Create an AMM (amm-create) via the API","id":"create-an-amm-amm-create-via-the-api","depth":2},{"value":"Deposit into an AMM (amm-deposit) via the API","id":"deposit-into-an-amm-amm-deposit-via-the-api","depth":2},{"value":"Withdraw from an AMM (amm-withdraw) via the API","id":"withdraw-from-an-amm-amm-withdraw-via-the-api","depth":2},{"value":"Track the result via the API","id":"track-the-result-via-the-api","depth":2},{"value":"Related topics","id":"related-topics","depth":2}],"frontmatter":{"title":"Submit XRP Ledger transactions via the API","seo":{"title":"Submit XRP Ledger transactions via the API"}},"lastModified":"2026-10-09T11:58:31.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/wallet/transactions/xrpl/xrpl-via-the-api","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}