{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-products/wallet/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Manage wallets 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":"manage-wallets-via-the-api","__idx":0},"children":["Manage wallets via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the Ripple Custody (Wallet) Wallets endpoints to create HSM and MPC wallets inside a vault, retrieve and filter them, update their details, settings, and tags, read a wallet's sequence number, and read fiat-denominated balances for your organization, a vault, or a wallet. To manage wallets in the console instead, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/manage-wallets"},"children":["Manage wallets via the console"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"wallet-actions","__idx":1},"children":["Wallet 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 wallet"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/manage-wallets#create-a-wallet-via-the-console"},"children":["Create a wallet"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#create-a-wallet-via-the-api"},"children":["Create a wallet"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["View wallet details"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All roles"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/manage-wallets#general-settings"},"children":["General settings"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#get-a-wallet-via-the-api"},"children":["Get a wallet"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["List wallets"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All roles"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/manage-wallets#list-wallets-via-the-console"},"children":["List wallets"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#list-wallets-via-the-api"},"children":["List wallets"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Update wallet details"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/manage-wallets#details-settings-via-the-console"},"children":["Details settings"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#update-a-wallet-via-the-api"},"children":["Update a wallet"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Enable outgoing transactions"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/manage-wallets#enable-outgoing-transactions-from-a-wallet-via-the-console"},"children":["Enable outgoing transactions from a wallet"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#update-wallet-settings-via-the-api"},"children":["Update wallet settings"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Turn on raw signing"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/manage-wallets#raw-signing-via-the-console"},"children":["Raw signing"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#update-wallet-settings-via-the-api"},"children":["Update wallet settings"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Freeze deposits by default"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/manage-wallets#freeze-transactions-by-default-via-the-console"},"children":["Freeze transactions by default"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#update-wallet-settings-via-the-api"},"children":["Update wallet settings"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Enable sweeping"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/manage-wallets#sweeping-settings-via-the-console"},"children":["Sweeping settings"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#update-wallet-settings-via-the-api"},"children":["Update wallet settings"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Get a wallet's sequence"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["-"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#get-a-wallets-sequence-via-the-api"},"children":["Get a wallet's sequence"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tag a wallet"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/manage-wallets#tag-a-wallet-via-the-console"},"children":["Tag a wallet"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#tag-a-wallet-via-the-api"},"children":["Tag a wallet"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Check organization balances"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All roles"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/vaults/manage-vaults#list-vaults-via-the-console"},"children":["List vaults"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#get-organization-balances-via-the-api"},"children":["Get organization balances"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Check vault balances"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All roles"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/understanding-balances#viewing-balances"},"children":["Viewing balances"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#get-vault-balances-via-the-api"},"children":["Get vault balances"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Check wallet balances"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All roles"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/understanding-balances#viewing-balances"},"children":["Viewing balances"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#get-wallet-balances-via-the-api"},"children":["Get wallet balances"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Refresh wallet balances"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator, Proposer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/understanding-balances#refreshing-balances"},"children":["Refreshing balances"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#refresh-wallet-balances-via-the-api"},"children":["Refresh wallet balances"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Delete a failed wallet"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Owner, Administrator"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/manage-wallets#delete-a-wallet-via-the-console"},"children":["Delete a wallet"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#delete-a-wallet-via-the-api"},"children":["Delete a wallet"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Permissions:"]}," In the console, owners, administrators, and proposers can create wallets and update wallet settings, and every role can view wallets. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/organization-and-access/users-and-roles#wallets"},"children":["User roles and permissions"]},". The API procedures need an API credential of type ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WALLETS"]},". 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":["WALLETS"]},"."]}," Its grantable permissions cover vaults, wallets, balances, and tags. 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 a bearer token. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/get-started/use-the-api#step-2-authenticate"},"children":["Getting started with the API"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["A vault."]}," Wallets live inside a vault. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/vaults/manage-vaults#create-a-vault-via-the-api"},"children":["Create a vault via the API"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["For MPC wallets, a confirmed MPC quorum."]}," You pass its ID as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["quorumId"]},". You create quorums in the console. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/signing-and-key-management/mpc-quorums"},"children":["MPC quorums"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["For balance requests, at least one provisioned wallet."]}," See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#create-a-wallet-via-the-api"},"children":["Create a wallet"]},"."]}]},{"$$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":"create-a-wallet-via-the-api","__idx":3},"children":["Create a wallet 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/wallets/vaultservice_createwallet"},"children":["Create a wallet"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," request to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/vaults/{vaultId}/wallets"]},". The request requires ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["keystore"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["blockchain"]},"."]},{"$$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":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required. The wallet name."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["keystore"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MPC"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["HSM"]},". HSM wallets are available in sandbox only."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["blockchain"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required. The network, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ETHEREUM"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["XRP_LEDGER"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SOLANA"]},". For the chains you can create wallets on, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/supported-blockchains-and-tokens"},"children":["Blockchains and tokens"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["quorumId"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The ID of a confirmed MPC quorum. Required for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MPC"]}," wallets; not used for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["HSM"]}," wallets."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["description"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A description of the wallet's purpose."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["keyAlgorithm"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SECP256K1"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ED25519"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["externalId"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["An identifier from your own systems. It must be unique within your organization. If it's already in use, the API returns the existing wallet with HTTP ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200"]}," instead of creating a new one."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["correlationId"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["An identifier you can use to correlate this request with related actions."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recoveryPublicKey"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional. A hex-encoded, PKCS #1-formatted public key of a 4096-bit RSA key pair."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["walletType"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WALLET_TYPE_BLOCKCHAIN"]},", the only value. You can omit it. Responses return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["walletType"]}," as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WALLET_TYPE_UNSPECIFIED"]},"."]}]}]}]}]},{"$$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 \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"name\": \"USD Issuing wallet\",\n    \"description\": \"Main USD issuing account used internally\",\n    \"keystore\": \"MPC\",\n    \"blockchain\": \"XRP_LEDGER\",\n    \"quorumId\": \"4f1c2b7e-8d3a-4e6b-9c51-0a2f7d9e3b18\"\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"id\": \"1fc5cd6b-cf4b-4d33-88ce-b6a45e6ba342\",\n  \"vaultId\": \"ce4918bf-a199-4ce2-85a3-d0d296855384\",\n  \"organizationId\": \"7c2d9e41-5b8a-4f3c-9d6e-2a1b0c8f4e73\",\n  \"quorumId\": \"4f1c2b7e-8d3a-4e6b-9c51-0a2f7d9e3b18\",\n  \"createdBy\": \"9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d\",\n  \"createdAt\": \"2026-07-23T10:22:22.420Z\",\n  \"updatedAt\": \"2026-07-23T10:22:22.420Z\",\n  \"name\": \"USD Issuing wallet\",\n  \"description\": \"Main USD issuing account used internally\",\n  \"address\": \"\",\n  \"publicKey\": \"\",\n  \"keystore\": \"MPC\",\n  \"blockchain\": \"XRP_LEDGER\",\n  \"settings\": {\n    \"enabled\": false,\n    \"rawSigningEnabled\": false,\n    \"sweepingEnabled\": false,\n    \"defaultFreezeEnabled\": false\n  },\n  \"status\": \"CREATED\",\n  \"reasons\": [],\n  \"keyAlgorithm\": \"SECP256K1\",\n  \"walletType\": \"WALLET_TYPE_UNSPECIFIED\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"MPC wallets need quorum approval"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For an MPC wallet, pass the ID of a quorum in the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Confirmed"]}," state as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["quorumId"]},". If you omit ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["quorumId"]},", the request fails with HTTP ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]}," and reason ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PAL009.108"]},". Get the ID from the console's ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Controls"]}," section, where the quorum's status must be ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Confirmed"]},". When you create the wallet, every device in the quorum must approve key generation within 5 minutes. If a device rejects it, Ripple Custody (Wallet) doesn't create the wallet. HSM wallets don't need a quorum, and they return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["quorumId"]}," as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["00000000-0000-0000-0000-000000000000"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Provisioning is asynchronous. Poll the wallet until ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PROVISIONED"]},". Until then, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["address"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["publicKey"]}," are empty strings. If ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PROVISIONING_FAILED"]},", check the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reasons"]}," array."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"New wallets are deposit-only"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A new wallet has ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["settings.enabled"]}," set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},", so it can receive funds but can't send them. Before a wallet can send, it needs a transaction policy, an address book entry for the destination, and outgoing transactions enabled. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/manage-wallets#enable-outgoing-transactions-from-a-wallet-via-the-console"},"children":["Enable outgoing transactions from a wallet"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"get-a-wallet-via-the-api","__idx":4},"children":["Get a wallet 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/wallets/vaultservice_getwallet"},"children":["Get a wallet"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/wallets/vaultservice_getwalletbyid"},"children":["Get a wallet by ID"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}," request to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/vaults/{vaultId}/wallets/{walletId}"]},", or to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/wallets/{id}"]}," when you know only the wallet ID. Both return the wallet object."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"list-wallets-via-the-api","__idx":5},"children":["List wallets 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/wallets/vaultservice_listvaultwallets"},"children":["List vault wallets"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/wallets/vaultservice_listvaultwallets2"},"children":["List vault wallets with a request body"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/wallets/vaultservice_listglobalwallets"},"children":["List organization wallets"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/wallets/vaultservice_listglobalwallets2"},"children":["List organization wallets with a request body"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}," request to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/vaults/{vaultId}/wallets"]}," to list the wallets in a vault, or to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/wallets"]}," to list every wallet in your organization. Both accept these query parameters:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search"]},": a case-insensitive match over wallet ID, name, address, alias, external ID, and correlation ID."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Field filters on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["vaultId"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["address"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["alias"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["externalId"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["correlationId"]},", using the operators ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["eq"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notEq"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contains"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["startsWith"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["endsWith"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["in"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notIn"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isNull"]},". For example, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.name.contains=issuing"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.blockchain.eq"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".notEq"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".in"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".notIn"]},", which take blockchain values such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["XRP_LEDGER"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.status"]},", which takes a single wallet status such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PROVISIONED"]},". It has no operators: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.status.eq"]}," returns HTTP ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Timestamp filters on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["createdAt"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["updatedAt"]},", such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.createdAt.after"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.pageSize"]}," (default 50, maximum 1,000) and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.pageToken"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.orderBy"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["address"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["blockchain"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["created_at"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["updated_at"]},") and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.order"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SORT_ORDER_ASC"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SORT_ORDER_DESC"]},")."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The filters you set are combined with AND."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl \"https://api.sandbox.palisade.co/v2/wallets?filter.blockchain.eq=XRP_LEDGER&filter.status=PROVISIONED\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"filter\": { \"total\": 1 },\n  \"wallets\": [\n    {\n      \"id\": \"1fc5cd6b-cf4b-4d33-88ce-b6a45e6ba342\",\n      \"vaultId\": \"ce4918bf-a199-4ce2-85a3-d0d296855384\",\n      \"organizationId\": \"7c2d9e41-5b8a-4f3c-9d6e-2a1b0c8f4e73\",\n      \"quorumId\": \"4f1c2b7e-8d3a-4e6b-9c51-0a2f7d9e3b18\",\n      \"createdBy\": \"9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d\",\n      \"createdAt\": \"2026-07-23T10:22:22.420Z\",\n      \"updatedAt\": \"2026-07-23T10:24:05.112Z\",\n      \"name\": \"USD Issuing wallet\",\n      \"description\": \"Main USD issuing account used internally\",\n      \"address\": \"rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH\",\n      \"publicKey\": \"025eb9c81a436bd69f5d8b79b52b82c4b2cdf21bdd68200a967559930fec60b929\",\n      \"keystore\": \"MPC\",\n      \"blockchain\": \"XRP_LEDGER\",\n      \"settings\": {\n        \"enabled\": false,\n        \"rawSigningEnabled\": false,\n        \"sweepingEnabled\": false,\n        \"defaultFreezeEnabled\": false\n      },\n      \"status\": \"PROVISIONED\",\n      \"reasons\": [],\n      \"keyAlgorithm\": \"SECP256K1\",\n      \"walletType\": \"WALLET_TYPE_UNSPECIFIED\"\n    }\n  ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To fetch the next page, pass the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.nextPageToken"]}," value as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.pageToken"]},". Pages after the first also include ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.previousPageToken"]},". For complex filters, send the same ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination"]}," options as a JSON body in a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," request to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/vaults/{vaultId}/wallets:list"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/wallets:list"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"update-a-wallet-via-the-api","__idx":6},"children":["Update a wallet 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/wallets/vaultservice_updatewallet"},"children":["Update a wallet"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PUT"]}," request to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/vaults/{vaultId}/wallets/{walletId}"]}," to change the wallet's name and description. The request requires ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", even if you're only changing the description. The update replaces both fields: if you omit ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["description"]},", the update clears the wallet's existing description, so send the current description when you change only the name. You can also pass an optional ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["correlationId"]},"; if you omit it, the wallet keeps its existing ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["correlationId"]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X PUT https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"name\": \"USD Issuing wallet\",\n    \"description\": \"Primary USD issuing account\"\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response is the updated wallet object."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"update-wallet-settings-via-the-api","__idx":7},"children":["Update wallet settings 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/wallets/vaultservice_updatewalletsettings"},"children":["Update a wallet's settings"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PUT"]}," request to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/vaults/{vaultId}/wallets/{walletId}/settings"]},". The request replaces all four settings: any setting you omit from the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["settings"]}," object is set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},". Send the full ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["settings"]}," object, with the current values of the settings you aren't changing, even when you change only one value."]},{"$$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":"Setting"},"children":["Setting"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Controls"},"children":["Controls"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enabled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the wallet can send outgoing transactions."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rawSigningEnabled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the wallet can sign raw transactions."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sweepingEnabled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether the wallet is a source for ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/asset-sweeping"},"children":["asset sweeping"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["defaultFreezeEnabled"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether inbound transactions are frozen by default."]}]}]}]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X PUT https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/settings \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"settings\": {\n      \"enabled\": true,\n      \"rawSigningEnabled\": true,\n      \"sweepingEnabled\": false,\n      \"defaultFreezeEnabled\": false\n    }\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response is the updated wallet object."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"get-a-wallets-sequence-via-the-api","__idx":8},"children":["Get a wallet's sequence 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/wallets/vaultservice_getwalletsequence"},"children":["Get a wallet nonce/sequence"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}," request to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/vaults/{vaultId}/wallets/{walletId}/sequence"]}," to read the wallet's current blockchain nonce or sequence number. This is useful when you build raw transactions. The value is a string, and it's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"0\""]}," for an account that has no on-chain history. For a wallet that isn't provisioned, the request fails with HTTP ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]}," and reason ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PAL009.106"]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/sequence \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{ \"sequence\": \"2\" }\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"delete-a-wallet-via-the-api","__idx":9},"children":["Delete a wallet 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/wallets/vaultservice_deletewallet"},"children":["Delete a wallet"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DELETE"]}," request to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/vaults/{vaultId}/wallets/{walletId}"]},". You can delete only a wallet whose status is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PROVISIONING_FAILED"]},"; you can't delete a provisioned wallet. A successful response is an empty JSON object."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X DELETE https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"tag-a-wallet-via-the-api","__idx":10},"children":["Tag a wallet 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/wallet-tags/vaultservice_addwallettag"},"children":["Add a wallet tag"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/wallet-tags/vaultservice_listwallettags"},"children":["List wallet tags"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/wallet-tags/vaultservice_listwallettagsinvault"},"children":["List wallet tags in a vault"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/tags/vaultservice_listglobaltags"},"children":["List all wallet tags"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-docs/palisade-api/palisade-api/wallet-tags/vaultservice_deletewallettag"},"children":["Delete a wallet tag"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Tags are free-form labels for grouping and finding wallets. Adding a wallet tag needs ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["key:update"]},", listing needs ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["key:read"]},", and deleting one needs ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["key:delete"]},". A ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WALLETS"]}," credential without ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["key:delete"]}," can add and list tags but gets ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["403"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PAL000.002"]},") when it deletes one."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Add a tag with a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," request to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/vaults/{vaultId}/wallets/{walletId}/tags"]},"; the request requires ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tag"]},". List a wallet's tags with a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}," request to the same path, and remove a tag with a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DELETE"]}," request that passes it in the required ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tag"]}," query parameter. To see the tags of every wallet in a vault, send a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}," request to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/vaults/{vaultId}/wallets/tags"]},", or to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/tags"]}," for every wallet tag in your organization."]},{"$$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/tags \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{ \"tag\": \"Issuing wallet\" }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response lists the wallet's tags after the change:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"[\n  {\n    \"walletId\": \"1fc5cd6b-cf4b-4d33-88ce-b6a45e6ba342\",\n    \"vaultId\": \"ce4918bf-a199-4ce2-85a3-d0d296855384\",\n    \"tags\": [\"Issuing wallet\"]\n  }\n]\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A successful ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DELETE"]}," returns an empty JSON object."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"check-balances-via-the-api","__idx":11},"children":["Check balances via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use the Balances endpoints to read fiat-denominated balances at three levels: your whole organization, a single vault, or a single wallet with a per-asset breakdown. To learn how Ripple Custody (Wallet) calculates and displays balances, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/understanding-balances"},"children":["Understanding balances"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All three endpoints accept an optional ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currencyCode"]}," query parameter that sets the fiat currency for the values. If you omit it, Ripple Custody (Wallet) uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["USD"]},". Currently ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["USD"]}," is the only supported value."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Balances and fiat values are decimal strings. Fiat values can carry many decimal places, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"28.4000000000000000000000000000000000000000000000000000000000000000000000000002\""]},", so round them before you display them."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-organization-balances-via-the-api","__idx":12},"children":["Get organization balances 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/balances/balanceservice_getorgbalances"},"children":["Get organization balances"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}," request to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/balances"]}," for the aggregated fiat value of your organization, broken down by vault. Vaults with no value can appear with an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["aggregatedFiatValue"]}," of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"0\""]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl \"https://api.sandbox.palisade.co/v2/balances?currencyCode=USD\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"currencyCode\": \"USD\",\n  \"aggregatedFiatValue\": \"100.00\",\n  \"balances\": [\n    {\n      \"vaultId\": \"ce4918bf-a199-4ce2-85a3-d0d296855384\",\n      \"aggregatedFiatValue\": \"100.00\"\n    }\n  ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-vault-balances-via-the-api","__idx":13},"children":["Get vault balances 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/balances/balanceservice_getvaultbalances"},"children":["Get vault balances"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}," request to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/vaults/{vaultId}/balances"]}," for the aggregated fiat value of one vault, broken down by wallet."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/balances \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"currencyCode\": \"USD\",\n  \"aggregatedFiatValue\": \"100.00\",\n  \"balances\": [\n    {\n      \"walletId\": \"1fc5cd6b-cf4b-4d33-88ce-b6a45e6ba342\",\n      \"aggregatedFiatValue\": \"100.00\"\n    }\n  ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"get-wallet-balances-via-the-api","__idx":14},"children":["Get wallet balances 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/balances/balanceservice_getwalletbalances"},"children":["Get wallet balances"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}," request to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/vaults/{vaultId}/wallets/{walletId}/balances"]}," for a per-asset breakdown. Each entry shows:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["balance"]},": the total on-chain balance. When the breakdown fields are present, it equals ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["availableBalance"]}," + ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pendingBalance"]}," + ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["frozenBalance"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["availableBalance"]},": the balance you can spend."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pendingBalance"]},": the balance tied up in pending transactions."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["frozenBalance"]},": the balance frozen by policy actions."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rate"]},": the exchange rate between the asset and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currencyCode"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fiatValue"]},": the asset's value in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currencyCode"]},"."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/balances \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"currencyCode\": \"USD\",\n  \"aggregatedFiatValue\": \"100.00\",\n  \"balances\": [\n    {\n      \"asset\": {\n        \"id\": \"3::XRP\",\n        \"standard\": \"NATIVE\",\n        \"symbol\": \"XRP\",\n        \"name\": \"XRP\",\n        \"blockchain\": \"XRP_LEDGER\",\n        \"decimals\": 6,\n        \"vetted\": false,\n        \"enabled\": true,\n        \"contract\": \"\",\n        \"createdAt\": null,\n        \"source\": \"ASSET_SOURCE_UNSPECIFIED\",\n        \"syncVersion\": 0,\n        \"iconUrl\": \"https://static.palisade.co/registry/assets/coingecko/ripple.png\",\n        \"displaySymbol\": \"XRP\"\n      },\n      \"balance\": \"200\",\n      \"rate\": \"0.5\",\n      \"fiatValue\": \"100\",\n      \"availableBalance\": \"150\",\n      \"pendingBalance\": \"30\",\n      \"frozenBalance\": \"20\"\n    }\n  ],\n  \"pagination\": null\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset.displaySymbol"]}," when you show the symbol to users. It keeps the capitalization the asset's source uses, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["weETH"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"filter-search-and-page-wallet-balances-via-the-api","__idx":15},"children":["Filter, search, and page wallet balances via the API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The wallet balances endpoint also accepts these optional query parameters:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.blockchain"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.standard"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.source"]},", each with the operators ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["eq"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notEq"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["in"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notIn"]},". Standards are ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["NATIVE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ERC20"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ISSUED_CURRENCY"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ERC721"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SPL"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CUSTOM"]},". Sources are ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ASSET_SOURCE_LEGACY"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ASSET_SOURCE_AUTO"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ASSET_SOURCE_COINGECKO"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ASSET_SOURCE_PALISADE"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ASSET_SOURCE_CUSTOMER"]},"; for example, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.source.eq=ASSET_SOURCE_CUSTOMER"]}," returns only your organization's custom asset entries. The filter matches each asset's resolved source, so a balance can match ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.source"]}," even when an unfiltered response shows its ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asset.source"]}," as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ASSET_SOURCE_UNSPECIFIED"]},". ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ASSET_SOURCE_UNSPECIFIED"]}," isn't a valid filter value."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.contract"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.symbol"]},", with the operators ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["eq"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notEq"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["in"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notIn"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contains"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["startsWith"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["endsWith"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["isNull"]},". ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["eq"]}," is case-sensitive; ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contains"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["startsWith"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["endsWith"]}," aren't. To return native assets only, set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.contract.isNull=true"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.standard.in=NATIVE"]},". Native assets match ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["filter.contract.isNull=true"]}," even though the response shows ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contract"]}," as an empty string."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search"]},": a case-insensitive match over asset ID, symbol, name, contract address, blockchain value (such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["XRP_LEDGER"]},"), source label (such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["coingecko"]},"), and standard label (such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["native"]},")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.pageSize"]}," (default 50, maximum 1,000), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.pageToken"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.orderBy"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["symbol"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["blockchain"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["contract_address"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["standard"]},"), and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination.order"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SORT_ORDER_ASC"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SORT_ORDER_DESC"]},")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refreshRegistryMetadata"]},": when ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", bypasses cached registry metadata for this wallet's assets. If registry resolution fails, the request fails. Use it only for a read immediately after you change the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/registry"},"children":["asset registry"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A balance must match every filter you set, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search"]}," if you set it. Setting any ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination"]}," parameter turns on paging, and the response then includes a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination"]}," object with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["total"]}," and, when there are more pages, page tokens. Without paging, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pagination"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]},". ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["aggregatedFiatValue"]}," always covers every matching balance, not only the current page, and is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"0\""]}," when nothing matches. For a full example, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/understanding-balances#filter-search-and-page-balances"},"children":["Filter, search, and page balances"]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl \"https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/balances?filter.standard.eq=ERC20&pagination.pageSize=20&pagination.orderBy=symbol\" \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"refresh-wallet-balances-via-the-api","__idx":16},"children":["Refresh wallet balances 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/balances/balanceservice_syncwalletbalances"},"children":["Sync wallet balances"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Balances update automatically. To trigger a refresh, send a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," request to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/v2/vaults/{vaultId}/wallets/{walletId}/balances/sync"]},". The request takes no body, and a successful response is an empty JSON object."]},{"$$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/balances/sync \\\n  -H \"Authorization: Bearer $ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A refresh syncs only assets that Ripple Custody (Wallet) already tracks for the wallet. It doesn't discover new tokens that the wallet received but Ripple Custody (Wallet) doesn't yet track."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"errors","__idx":17},"children":["Errors"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Failed requests return an HTTP error status and an error object with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["message"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["details"]}," fields. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-and-developer-experience/error-codes"},"children":["Error codes"]},". For the causes of and fixes for the errors these endpoints return, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/api-and-developer-experience/error-codes#troubleshoot-common-errors"},"children":["Troubleshoot common errors"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"next-steps","__idx":18},"children":["Next steps"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/vaults-and-wallets/wallets/understanding-balances"},"children":["Understanding balances"]},": balance types and how Ripple Custody (Wallet) calculates them."]},{"$$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"]},": the full request and response schemas."]}]}]},"headings":[{"value":"Manage wallets via the API","id":"manage-wallets-via-the-api","depth":1},{"value":"Wallet actions","id":"wallet-actions","depth":2},{"value":"Prerequisites","id":"prerequisites","depth":2},{"value":"Create a wallet via the API","id":"create-a-wallet-via-the-api","depth":2},{"value":"Get a wallet via the API","id":"get-a-wallet-via-the-api","depth":2},{"value":"List wallets via the API","id":"list-wallets-via-the-api","depth":2},{"value":"Update a wallet via the API","id":"update-a-wallet-via-the-api","depth":2},{"value":"Update wallet settings via the API","id":"update-wallet-settings-via-the-api","depth":2},{"value":"Get a wallet's sequence via the API","id":"get-a-wallets-sequence-via-the-api","depth":2},{"value":"Delete a wallet via the API","id":"delete-a-wallet-via-the-api","depth":2},{"value":"Tag a wallet via the API","id":"tag-a-wallet-via-the-api","depth":2},{"value":"Check balances via the API","id":"check-balances-via-the-api","depth":2},{"value":"Get organization balances via the API","id":"get-organization-balances-via-the-api","depth":3},{"value":"Get vault balances via the API","id":"get-vault-balances-via-the-api","depth":3},{"value":"Get wallet balances via the API","id":"get-wallet-balances-via-the-api","depth":3},{"value":"Filter, search, and page wallet balances via the API","id":"filter-search-and-page-wallet-balances-via-the-api","depth":4},{"value":"Refresh wallet balances via the API","id":"refresh-wallet-balances-via-the-api","depth":3},{"value":"Errors","id":"errors","depth":2},{"value":"Next steps","id":"next-steps","depth":2}],"frontmatter":{"title":"Manage wallets via the API","seo":{"title":"Manage wallets via the API"}},"lastModified":"2026-10-09T11:58:31.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/wallet/vaults-and-wallets/wallets/manage-wallets-api","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}