### Deprecated Policy Matcher Example Source: https://docs.ripple.com/products/wallet/changelogs/wallet-id-policy-matcher.md This example shows the previous policy matcher format that accepted both address IDs and wallet IDs within a single `ADDRESS_ID` type. This format is no longer valid. ```json [ { "type": "ADDRESS_ID", "values": [ "4a2b6f8b-5077-4d52-8368-07b342c651b3", "25ca96e0-9ff5-46d0-9496-2c555593fc99" ] } ] ``` -------------------------------- ### Get Wallet Source: https://docs.ripple.com/products/wallet/api-docs/palisade-api/palisade-api.md Get a wallet by ID. ```APIDOC ## GET /v2/vaults/{vaultId}/wallets/{walletId} ### Description Get a wallet by ID. ### Method GET ### Endpoint /v2/vaults/{vaultId}/wallets/{walletId} ``` -------------------------------- ### Build TRX Transfer Transaction (Go) Source: https://docs.ripple.com/products/wallet/user-interface/transactions/raw-signing.md Construct a raw TRX transfer transaction using the gotron-sdk. This example demonstrates setting up the TransferContract and Transaction objects. Ensure you have the necessary protobuf and SDK imports. ```go import ( "encoding/hex" "time" "github.com/fbsobreira/gotron-sdk/pkg/proto/core" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/anypb" ) // Build a TRX transfer transfer := &core.TransferContract{ OwnerAddress: ownerAddrBytes, // 21-byte TRON address ToAddress: toAddrBytes, Amount: 1000000, // 1 TRX in SUN } anyValue, _ := anypb.New(transfer) tx := &core.Transaction{ RawData: &core.TransactionRaw{ Contract: []*core.Transaction_Contract{{ Type: core.Transaction_Contract_TransferContract, Parameter: anyValue, }}, RefBlockBytes: refBlockBytes, // From recent block RefBlockHash: refBlockHash, Expiration: time.Now().Add(60*time.Second).UnixMilli(), Timestamp: time.Now().UnixMilli(), }, } txBytes, _ := proto.Marshal(tx) encodedTransaction := hex.EncodeToString(txBytes); ``` -------------------------------- ### Create an XRP Offer with Source Tag Source: https://docs.ripple.com/products/wallet/changelogs/specify-source-tag-in-xrp-transactions.md This example shows how to create an XRP offer with an optional source tag. ```APIDOC ## POST /v2/vaults/{vault_id}/wallets/{wallet_id}/transactions/xrp/offers ### Description Creates an XRP offer with an optional source tag. ### Method POST ### Endpoint /v2/vaults/{vault_id}/wallets/{wallet_id}/transactions/xrp/offers ### Request Body - **taker_gets** (object) - Required - The asset the taker will receive. - **asset** (string) - Required - The asset type (e.g., "XRP"). - **value** (string) - Required - The quantity of the asset. - **taker_pays** (object) - Required - The asset the taker will pay. - **asset** (string) - Required - The asset type (e.g., "USD"). - **issuer** (string) - Required - The issuer of the asset. - **value** (string) - Required - The quantity of the asset. - **source_tag** (string) - Optional - An optional 32-bit unsigned integer to identify the transaction originator. ### Request Example ```json { "taker_gets": { "asset": "XRP", "value": "1000" }, "taker_pays": { "asset": "USD", "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", "value": "100" }, "source_tag": "2025" } ``` ``` -------------------------------- ### Get Vault Source: https://docs.ripple.com/products/wallet/api-docs/palisade-api/palisade-api.md Get a vault by ID. ```APIDOC ## GET /v2/vaults/{id} ### Description Get a vault by ID. ### Method GET ### Endpoint /v2/vaults/{id} ``` -------------------------------- ### Get a transaction Source: https://docs.ripple.com/products/wallet/api-docs/palisade-api/palisade-api.md Get a transaction by ID. ```APIDOC ## GET /v2/vaults/{vaultId}/wallets/{walletId}/transactions/{transactionId} ### Description Get a transaction by ID. ### Method GET ### Endpoint /v2/vaults/{vaultId}/wallets/{walletId}/transactions/{transactionId} ``` -------------------------------- ### Example .env file for CloudSign nodes Source: https://docs.ripple.com/products/wallet/user-interface/devices/set-up-and-run-cloudsign.md Define environment variables for CloudSign nodes, including encryption keys, pairing keys, and volume paths. Ensure the directories specified in VOLUME_x exist before running docker-compose. ```shell # cloudsign1 ENCRYPTION_KEY_1=c6516198ba86603e2fda776706b44373d5630cd2e89352772a9b75cda2df67ed PAIRING_KEY_1=eyJkZXZpY2VJZCI6ImQz...8ifQ== VOLUME_1=/tmp/cloudsign1 # cloudsign2 ENCRYPTION_KEY_2=0c92f60527b778f2f0036067429b3982d2c7f79ef657943f0e18c1e918362aa6 PAIRING_KEY_2=eyJkZXZpY2VJZCI6IjJm...8ifQ== VOLUME_2=/tmp/cloudsign2 # cloudsign3 ENCRYPTION_KEY_3=bf7e463d11347c486f4b8e79284a02e0543369009ff0d1efc1d2644fe63b21a7 PAIRING_KEY_3=eyJkZXZpY2VJZCI6Ijg5...8ifQ== VOLUME_3=/tmp/cloudsign3 ``` -------------------------------- ### Get a wallet limit policy Source: https://docs.ripple.com/products/wallet/api-docs/palisade-api/palisade-api.md Get the specified wallet limit policy. ```APIDOC ## GET /v2/vaults/{vaultId}/wallets/{walletId}/policy-rules/limits/{id} ### Description Get the specified wallet limit policy. ### Method GET ### Endpoint /v2/vaults/{vaultId}/wallets/{walletId}/policy-rules/limits/{id} ``` -------------------------------- ### Create an Ethereum Wallet Source: https://docs.ripple.com/products/wallet/getting-started/getting-started-api.md Create a new Ethereum wallet within your specified vault. This example uses HSM keystore, which is available in sandbox environments and does not require quorum approval. ```bash curl -X POST https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "ETH Sandbox Wallet", "description": "Ethereum wallet for API testing", "blockchain": "ETHEREUM", "keystore": "HSM" }' ``` -------------------------------- ### Create a Wallet Source: https://docs.ripple.com/products/wallet/getting-started/getting-started-api.md Creates a new wallet within a specified vault. This example demonstrates creating an Ethereum wallet using HSM keystore. ```APIDOC ## POST /v2/vaults/{vaultId}/wallets ### Description Creates a new wallet inside a specified vault. Supports different blockchains and keystore types. ### Method POST ### Endpoint https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets ### Parameters #### Path Parameters - **vaultId** (string) - Required - The ID of the vault where the wallet will be created. #### Request Body - **name** (string) - Required - The name of the wallet. - **description** (string) - Optional - A description for the wallet. - **blockchain** (string) - Required - The blockchain the wallet will operate on (e.g., ETHEREUM). - **keystore** (string) - Required - The type of keystore to use (e.g., HSM, MPC). For production MPC wallets, include `quorumId`. ### Request Example ```json { "name": "ETH Sandbox Wallet", "description": "Ethereum wallet for API testing", "blockchain": "ETHEREUM", "keystore": "HSM" } ``` ### Response #### Success Response (200) - **id** (string) - The unique identifier for the created wallet. - **vaultId** (string) - The ID of the vault the wallet belongs to. - **organizationId** (string) - The ID of the organization. - **name** (string) - The name of the wallet. - **description** (string) - The description of the wallet. - **address** (string) - The wallet address (initially empty, populated upon provisioning). - **publicKey** (string) - The public key of the wallet. - **keystore** (string) - The type of keystore used. - **blockchain** (string) - The blockchain of the wallet. - **settings** (object) - Wallet settings. - **status** (string) - The current status of the wallet (e.g., CREATED, PROVISIONED). - **keyAlgorithm** (string) - The key algorithm used. #### Response Example ```json { "id": "019c8a3b-5678-7def-1234-567890abcdef", "vaultId": "019c8a2f-1234-7abc-9def-abcdef123456", "organizationId": "...", "name": "ETH Sandbox Wallet", "description": "Ethereum wallet for API testing", "address": "0x8dCd82eC41C41627D987830128198aff4A392D89", "publicKey": "04b05c60b4ac57b85c8d69a98409c5c5b4590d77...", "keystore": "HSM", "blockchain": "ETHEREUM", "settings": { "enabled": false, "rawSigningEnabled": false, "sweepingEnabled": false, "defaultFreezeEnabled": false }, "status": "PROVISIONED", "keyAlgorithm": "SECP256K1" } ``` ``` -------------------------------- ### Webhook Payload Format Example Source: https://docs.ripple.com/products/wallet/changelogs/webhook-support-now-available.md This is an example of the base64-encoded webhook payload format. ```json { "domain": "WALLET", "payload": "eyJpZCI6IjAxOTYxNTNiLTY3YmMtN2NkMy1iNTExLTM1NDM3M2QyODEzMCIsICJ2YXVsdElkIjoiMDE5NjE1MmQtNTI5NC03MzlkLTk5NDUtMmE0OTlmOWUzOTg5IiwgIm9yZ2FuaXphdGlvbklkIjoiMjFjODEzMTktNWI4My00NWY5LWI2NDgtNDIwNTUwODRhZjE1IiwgInF1b3J1bUlkIjoiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIiwgImNyZWF0ZWRCeSI6ImE1NWRmOWUwLWUxNGEtNDQxMC1hOTgzLTEyYWZhZTQ2NjYyZiIsICJjcmVhdGVkQXQiOiIyMDI1LTA0LTA4VDExOjQ4OjU2Ljg5OTA4NloiLCAidXBkYXRlZEF0IjoiMjAyNS0wNC0wOFQxMTo0ODo1Ni45MDA0OTBaIiwgIm5hbWUiOiJld3FmZXciLCAiZGVzY3JpcHRpb24iOiIiLCAiYWRkcmVzcyI6IjB4NDY0NDMyMGYzMUQ2OTU4RWQ4NjAzRWI2NjYwNDQ5NTBBYTY5NzAyZSIsICJwdWJsaWNLZXkiOiIwNDgxY2IwMmU4MjFlNTVhMmM2MTk2ZmZkZTM4MGJhM2I0OTgxN2JkYmYwMmYzMTVkYzI4YjU2ZjcwNzkyZDU2ZTZhZGFjOTE3ZTdhZGFmODdmMTBjMDg4NDA4YThjNmEwZTZkMTgwNzkzYzA1MGMzZDBjODc3MWNiOWRkZjgyNThkIiwgImtleXN0b3JlIjoiSFNNIiwgImJsb2NrY2hhaW4iOiJBUkJJVFJVTSIsICJzZXR0aW5ncyI6e30sICJzdGF0dXMiOiJQUk9WSVNJT05FRCJ9", } ``` -------------------------------- ### Decoded Webhook Payload Example Source: https://docs.ripple.com/products/wallet/changelogs/webhook-support-now-available.md This is an example of the decoded webhook payload, containing detailed event information. ```json { "id": "0196153b-67bc-7cd3-b511-354373d28130", "vaultId": "0196152d-5294-739d-9945-2a499f9e3989", "organizationId": "21c81319-5b83-45f9-b648-42055084af15", "createdBy": "a55df9e0-e14a-4410-a983-12afae46662f", "createdAt": "2025-04-08T11:48:56.899086Z", "updatedAt": "2025-04-08T11:48:56.900490Z", "name": "My Wallet", "address": "0x4644320f31D6958Ed8603Eb666044950Aa69702e", "publicKey": "0481cb02e821e55a2c6196ffde380ba3b49817bdbf02f315dc28b56f70792d56e6adac917e7adaf87f10c088408a8c6a0e6d180793c050c3d0c8771cb9ddf8258d", "keystore": "HSM", "blockchain": "ARBITRUM", "settings": {}, "status": "PROVISIONED" } ``` -------------------------------- ### Verify Public Key File Format with OpenSSL Source: https://docs.ripple.com/products/wallet/user-interface/security-controls/wallet-backup-configuration.md Verify the public key file's integrity and format using command-line tools. Check file size, type, and content. ```bash # Check file size wc -c recovery-public.der # Expected output for binary DER: 550 recovery-public.der # Expected output for hex-encoded: 1100 recovery-public.der # Check file type file recovery-public.der # Binary DER output: recovery-public.der: data # Hex-encoded output: recovery-public.der: ASCII text, with very long lines, with no line terminators # For binary DER, check it starts with ASN.1 SEQUENCE tag (0x30) xxd recovery-public.der | head -1 # Expected: 00000000: 3082 0222 300d 0609 2a86 4886 f70d 0101 0.."0...*.H..... # For hex-encoded, check content starts correctly head -c 50 recovery-public.der # Expected: 30820222300d06092a864886f70d01010105000382020f00 ``` -------------------------------- ### Verify Wallet Balance Source: https://docs.ripple.com/products/wallet/getting-started/getting-started-api.md Check the balance of your newly created wallet. Initially, the balance will be zero until funds are deposited. ```bash curl -X GET "https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID/balances" \ -H "Authorization: Bearer $TOKEN" ``` -------------------------------- ### Transaction Payload Example Source: https://docs.ripple.com/products/wallet/user-interface/integrations/overview.md This is an example of the webhook notification payload for a transaction. It includes domain, timestamp, and a base64-encoded transaction object. ```json { "domain": "TRANSACTION", "timestamp": "2025-05-08T14:30:00Z", "payload": "base64-encoded-transaction-object" } ``` -------------------------------- ### Decoded Transaction Object Example Source: https://docs.ripple.com/products/wallet/user-interface/integrations/overview.md This is an example of a decoded transaction object, showing key fields such as ID, status, blockchain details, and asset information. ```json { "id": "019c94f1-cc8c-79b4-9c0f-bc7edaabc267", "vaultId": "0196152d-5294-739d-9945-2a499f9e3989", "walletId": "0196153b-67bc-7cd3-b511-354373d28130", "organizationId": "21c81319-5b83-45f9-b648-42055084af15", "status": "CONFIRMED", "blockchain": "ETHEREUM", "hash": "0x8a4c5e9f2b1d7c3a6e8f0b2d4c6a8e0f2b4d6c8a0e2f4b6d8c0a2e4f6b8d0c2e", "destination": { "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2E8Ba" }, "asset": { "symbol": "ETH" }, "qty": "1.500000000000000000", "createdAt": "2025-05-08T14:25:00Z", "updatedAt": "2025-05-08T14:30:00Z" } ``` -------------------------------- ### Webhook Signature Header Example Source: https://docs.ripple.com/products/wallet/user-interface/integrations/overview.md This is an example of the `signature` header that can be used to verify the authenticity of the webhook payload. It is sent as part of the HTTP request headers. ```text MEQCIGjBwNKzzfqK9/Rb3Q2OQCyCuUiOOQz7vZwQ9iqInz76AiB/bvRn5iNUAkeVT80/pwhQ2LUajE6Mb2JtGt2mRmJMpg== ``` -------------------------------- ### Run CloudSign Node (Testing Only) Source: https://docs.ripple.com/products/wallet/user-interface/devices/set-up-and-run-cloudsign.md Run a CloudSign node in the foreground using Docker for testing purposes. Mount a volume for shard storage, provide an encryption key, and a pairing key obtained from the Palisade console. For production, use DB_ENCRYPTION_KEY_REF with an AWS KMS key ARN. ```bash docker run \ -v /path/to/volume:/var/cloudsign \ -e DB_ENCRYPTION_KEY_HEX=YOUR_ENCRYPTION_KEY \ -e PAIRING_KEY=YOUR_PAIRING_KEY \ -e LOG_LEVEL=debug \ --rm \ --name cloudsign-node \ -it 335650072995.dkr.ecr.eu-west-2.amazonaws.com/external/custody/cloudsign/app:1.12.0 ``` -------------------------------- ### Webhook Payload Example Source: https://docs.ripple.com/products/wallet/user-interface/integrations/overview.md This is an example of the JSON payload structure sent by Wallet-as-a-Service (Palisade) for webhook notifications. It includes event details and a base64-encoded payload. ```json { "domain": "WALLET", "timestamp": "2025-05-08T14:15:37Z", "payload": "eyJpZCI6IjAxOTYxNTNiLTY3YmMtN2NkMy1iNTExLTM1NDM3M2QyODEzMCIsICJ2YXVsdElkIjoiMDE5NjE1MmQtNTI5NC03MzlkLTk5NDUtMmE0OTlmOWUzOTg5IiwgIm9yZ2FuaXphdGlvbklkIjoiMjFjODEzMTktNWI4My00NWY5LWI2NDgtNDIwNTUwODRhZjE1IiwgInF1b3J1bUlkIjoiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIiwgImNyZWF0ZWRCeSI6ImE1NWRmOWUwLWUxNGEtNDQxMC1hOTgzLTEyYWZhZTQ2NjYyZiIsICJjcmVhdGVkQXQiOiIyMDI1LTA0LTA4VDExOjQ4OjU2Ljg5OTA4NloiLCAidXBkYXRlZEF0IjoiMjAyNS0wNC0wOFQxMTo0ODo1Ni45MDA0OTBaIiwgIm5hbWUiOiJld3FmZXciLCAiZGVzY3JpcHRpb24iOiIiLCAiYWRkcmVzcyI6IjB4NDY0NDMyMGYzMUQ2OTU4RWQ4NjAzRWI2NjYwNDQ5NTBBYTY5NzAyZSIsICJwdWJsaWNLZXkiOiIwNDgxY2IwMmU4MjFlNTVhMmM2MTk2ZmZkZTM4MGJhM2I0OTgxN2JkYmYwMmYzMTVkYzI4YjU2ZjcwNzkyZDU2ZTZhZGFjOTE3ZTdhZGFmODdmMTBjMDg4NDA4YThjNmEwZTZkMTgwNzkzYzA1MGMzZDBjODc3MWNiOWRkZjgyNThkIiwgImtleXN0b3JlIjoiSFNNIiwgImJsb2NrY2hhaW4iOiJBUkJJVFJVTSIsICJzZXR0aW5ncyI6e30sICJzdGF0dXMiOiJQUk9WSVNJT05FRCJ9 } ``` -------------------------------- ### Migrate Wallet Limits with SIGN_FOR Matcher Source: https://docs.ripple.com/products/wallet/changelogs/scoped-wallet-limits.md Use this curl command to migrate wallet limits when a Wallet-as-a-Service key is a signer on a multisig wallet. This ensures compliance with security requirements by specifying the 'SIGN_FOR' matcher. ```bash curl --location --request PUT 'https://api.sandbox.palisade.co/v2/vaults/{{vaultID}}/wallets/{{walletID}}/policy-rules/limits' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --header 'Authorization: Bearer {{access_token}}' \ --data '{ \ "limitType": "PER_TX", \ "limitQty": "0.1", \ "symbol": "XRP", \ "matchers": [ \ { \ "type": "SIGN_FOR", \ "value": "rNDvqWSvarYhvFsezgBE7jfJbqdAGXRRio" \ } \ ] \ }' ``` -------------------------------- ### Create Counterparty Source: https://docs.ripple.com/products/wallet/api-docs/palisade-api/palisade-api/counterparties Creates a new counterparty. ```APIDOC ## POST /v2/counterparties ### Description Create a new counterparty. ### Method POST ### Endpoint /v2/counterparties ``` -------------------------------- ### Example Audit Log Object for AWS Firehose Source: https://docs.ripple.com/products/wallet/changelogs/audit-logging-via-firehose.md This is an example of the raw JSON log object received by AWS Firehose. It includes top-level identifiers and a base64-encoded JSON payload. ```json { "id": 21119, "orgId": "dac59f97-5984-4298-bebd-92c94b6184b4", "type": 1, "userId": "c1e08d96-07a3-4561-846f-dd5a5c274e29", "deviceId": null, "requestId": "2aa53531-2124-4501-b9bb-2ed8208ff0e8", "jsonData": "eyJ1cmwiOiAiL3YyL2JhbGFuY2VzIiwgIm1ldGhvZCI6ICJHRVQiLCAiaGVhZGVycyI6IHsiQWNjZXB0IjogImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsICJPcmlnaW4iOiAiaHR0cHM6Ly9hcHAuZGV2ZWxvcG1lbnQucGFsaXNhZGUuY28iLCAiUmVmZXJlciI6ICJodHRwczovL2FwcC5kZXZlbG9wbWVudC5wYWxpc2FkZS5jby8iLCAiUHJpb3JpdHkiOiAidT0xLCBpIiwgIlNlYy1DaC1VYSI6ICJcIkNocm9taXVtXCI7dj1cIjEzNlwiLCBcIkdvb2dsZSBDaHJvbWVcIjt2PVwiMTM2XCIsIFwiTm90LkEvQnJhbmRcIjt2PVwiOTlcIiIsICJVc2VyLUFnZW50IjogIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzE1XzcpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMzYuMC4wLjAgU2FmYXJpLzUzNy4zNiIsICJYLVJlcXVlc3QtSWQiOiAiMmFhNTM1MzEtMjEyNC00NTAxLWI5YmItMmVkODIwOGZmMGU4IiwgIlNlYy1GZXRjaC1EZXN0IjogImVtcHR5IiwgIlNlYy1GZXRjaC1Nb2RlIjogImNvcnMiLCAiU2VjLURldGNoLVNpdGUiOiAic2FtZS1zaXRlIiwgIkFjY2VwdC1FbmNvZGluZyI6ICJnemlwLCBkZWZsYXRlLCBiciwgenN0ZCIsICJBY2NlcHQtTGFuZ3VhZ2UiOiAiZW4tR0IsZW4tVVM7cT0wLjksZW47cT0wLjgiLCAiWC1BbXpuLVRyYWNlLUlkIjogIlJvb3Q9MS02ODMwOWI0Yy0zYTcyZWZjNDI0NGQ2ZDEzNjQ5OThmY2IiLCAiWC1Gb3J3YXJkZWQtRm9yIjogIjgwLjEuMjUzLjI0NSwxMC4wLjYuNDMiLCAiU2VjLUNoLVVhLU1vYmlsZSI6ICI/MCIsICJYLUZvcndhcmRlZC1Qb3J0IjogIjQ0MyIsICJYLUZvcndhcmRlZC1Qcm90byI6ICJodHRwcyIsICJBdXRob3JpemF0aW9uLUhhc2giOiAiNTE5ZGY0ZjdhYmUxODlkOWY3ODkxYzIyZDEyMGQ2NTQiLCAiU2VjLUNoLVVhLVBsYXRmb3JtIjogIlwibWFjT1NcIiIsICJYLUVudm95LVRlbXB0LUNvdW50IjogIjEiLCAiWC1Gb3J3YXJkZWQtQ2xpZW50LUNlcnQiOiAiQnk9c3BpZmZlOi8vY2x1c3Rlci5sb2NhbC9ucy9nYXRld2F5L3NhL2FwaS1nYXRld2F5O0hhc2g9OTQ1MDY3YmIzYzVjMGYxMDk2MmYzZmJhZGViYThkOGUxN2RjNWFkODJiNmVhMWFmY2UwMzQ3YmRlOTdmZjk2MDtTdWJqZWN0PVwiXCI7VVJJPXNwaWZmZTovL2NsdXN0ZXIubG9jYWwvbnMvaXN0aW8tc3lzdGVtL3NhL2lzdGlvLWluZ3Jlc3NnYXRld2F5IiwgIlgtRW52b3ktRXh0ZXJuYWwtQWRkcmVzcyI6ICIxMC4wLjYuNDMifSwgInJlcXVlc3QiOiB7ImJvZHkiOiAiIn0sICJyZXNwb25zZSI6IHsiYm9keUxlbmd0aCI6IDYyLCAic3RhdHVzQ29kZSI6 ``` -------------------------------- ### Create Webhook Source: https://docs.ripple.com/products/wallet/api-docs/palisade-api/palisade-api/approvals/approvalservice_getapprovalsummary Creates a new webhook. ```APIDOC ## POST /v2/webhooks ### Description Creates a new webhook. ### Method POST ### Endpoint /v2/webhooks ``` -------------------------------- ### Set Wallet ID and Address Environment Variables Source: https://docs.ripple.com/products/wallet/getting-started/getting-started-api.md Export the wallet ID and address obtained after the wallet is provisioned as environment variables for future use. ```bash export WALLET_ID="019c8a3b-5678-7def-1234-567890abcdef" export WALLET_ADDRESS="0x8dCd82eC41C41627D987830128198aff4A392D89" ``` -------------------------------- ### Get Webhooks Source: https://docs.ripple.com/products/wallet/api-docs/palisade-api/palisade-api/approvals/approvalservice_getapprovalsummary Retrieves a list of webhooks. ```APIDOC ## GET /v2/webhooks ### Description Retrieves a list of webhooks. ### Method GET ### Endpoint /v2/webhooks ``` -------------------------------- ### Poll for Wallet Provisioning Source: https://docs.ripple.com/products/wallet/getting-started/getting-started-api.md After creating a wallet, poll its status using its ID. Continue polling until the status changes to 'PROVISIONED'. ```bash curl -X GET "https://api.sandbox.palisade.co/v2/vaults/$VAULT_ID/wallets/$WALLET_ID" \ -H "Authorization: Bearer $TOKEN" ``` -------------------------------- ### Get All Wallets Source: https://docs.ripple.com/products/wallet/api-docs/palisade-api/palisade-api/approvals/approvalservice_getapprovalsummary Retrieves a list of all wallets. ```APIDOC ## GET /v2/wallets ### Description Retrieves a list of all wallets. ### Method GET ### Endpoint /v2/wallets ``` -------------------------------- ### Create a Payment Transaction with Source Tag Source: https://docs.ripple.com/products/wallet/changelogs/specify-source-tag-in-xrp-transactions.md This example demonstrates how to create a payment transaction with an optional source tag for enhanced traceability. ```APIDOC ## POST /v2/vaults/{vault_id}/wallets/{wallet_id}/transactions/transfer ### Description Creates a payment transaction with an optional source tag. ### Method POST ### Endpoint /v2/vaults/{vault_id}/wallets/{wallet_id}/transactions/transfer ### Request Body - **destination_address** (string) - Required - The XRP address of the recipient. - **symbol** (string) - Required - The currency symbol, should be XRP. - **qty** (string) - Required - The quantity of XRP to transfer. - **config** (object) - Optional - Configuration for the transaction. - **source_tag** (string) - Optional - An optional 32-bit unsigned integer to identify the transaction originator. - **destination_tag** (string) - Optional - An optional 32-bit unsigned integer to identify the transaction recipient. ### Request Example ```json { "destination_address": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe", "symbol": "XRP", "qty": "100", "config": { "source_tag": "1337", "destination_tag": "418" } } ``` ``` -------------------------------- ### Get Vaults Source: https://docs.ripple.com/products/wallet/api-docs/palisade-api/palisade-api/approvals/approvalservice_getapprovalsummary Retrieves a list of vaults. ```APIDOC ## GET /v2/vaults ### Description Retrieves a list of vaults. ### Method GET ### Endpoint /v2/vaults ``` -------------------------------- ### Get Counterparties Source: https://docs.ripple.com/products/wallet/api-docs/palisade-api/palisade-api/approvals/approvalservice_getapprovalsummary Retrieves a list of counterparties. ```APIDOC ## GET /v2/counterparties ### Description Retrieves a list of counterparties. ### Method GET ### Endpoint /v2/counterparties ``` -------------------------------- ### Create a Wallet with Correlation ID Source: https://docs.ripple.com/products/wallet/changelogs/correlation-id-support.md Demonstrates how to create a new wallet within a vault and associate it with a correlation ID. ```APIDOC ## POST /v2/vaults/{vault_id}/wallets ### Description Creates a new wallet within a specified vault and associates it with a correlation ID. ### Method POST ### Endpoint /v2/vaults/{vault_id}/wallets ### Parameters #### Path Parameters - **vault_id** (string) - Required - The ID of the vault to create the wallet in. ### Request Body - **blockchain** (string) - Required - The blockchain network for the wallet. - **type** (string) - Required - The type of the wallet (e.g., HSM). - **name** (string) - Required - The name of the wallet. - **description** (string) - Optional - A description for the wallet. - **correlation_id** (string) - Required - A user-defined identifier to correlate operations. ### Request Example ```json { "blockchain": "ethereum", "type": "HSM", "name": "Main ETH Wallet", "correlation_id": "eth-treasury-2025" } ``` ``` -------------------------------- ### Get Balances Source: https://docs.ripple.com/products/wallet/api-docs/palisade-api/palisade-api/approvals/approvalservice_getapprovalsummary Retrieves a list of balances. ```APIDOC ## GET /v2/balances ### Description Retrieves a list of balances. ### Method GET ### Endpoint /v2/balances ``` -------------------------------- ### TrustSet Operation with Source Tag Source: https://docs.ripple.com/products/wallet/changelogs/specify-source-tag-in-xrp-transactions.md This example demonstrates how to perform a TrustSet operation with an optional source tag. ```APIDOC ## POST /v2/vaults/{vault_id}/wallets/{wallet_id}/transactions/xrp/trustset ### Description Performs a TrustSet operation with an optional source tag. ### Method POST ### Endpoint /v2/vaults/{vault_id}/wallets/{wallet_id}/transactions/xrp/trustset ### Request Body - **limit_amount** (object) - Required - The limit amount for the trust line. - **asset** (string) - Required - The asset type (e.g., "USD"). - **issuer** (string) - Required - The issuer of the asset. - **value** (string) - Required - The limit value. - **source_tag** (integer) - Optional - An optional 32-bit unsigned integer to identify the transaction originator. ### Request Example ```json { "limit_amount": { "asset": "USD", "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", "value": "10000" }, "source_tag": 1001 } ``` ``` -------------------------------- ### Get Addresses Source: https://docs.ripple.com/products/wallet/api-docs/palisade-api/palisade-api/approvals/approvalservice_getapprovalsummary Retrieves a list of addresses. ```APIDOC ## GET /v2/addresses ### Description Retrieves a list of addresses. ### Method GET ### Endpoint /v2/addresses ``` -------------------------------- ### AMM Operations with Source Tag Source: https://docs.ripple.com/products/wallet/changelogs/specify-source-tag-in-xrp-transactions.md This example shows how to perform an AMM operation (e.g., create) with an optional source tag. ```APIDOC ## POST /v2/vaults/{vault_id}/wallets/{wallet_id}/transactions/xrp/amm/create ### Description Performs an AMM operation (e.g., create) with an optional source tag. ### Method POST ### Endpoint /v2/vaults/{vault_id}/wallets/{wallet_id}/transactions/xrp/amm/create ### Request Body - **amount** (object) - Required - The first amount for the AMM pool. - **asset** (string) - Required - The asset type (e.g., "USD"). - **issuer** (string) - Optional - The issuer of the asset. - **value** (string) - Required - The quantity of the asset. - **amount2** (object) - Required - The second amount for the AMM pool. - **asset** (string) - Required - The asset type (e.g., "XRP"). - **value** (string) - Required - The quantity of the asset. - **trading_fee** (integer) - Required - The trading fee for the AMM pool. - **source_tag** (string) - Optional - An optional 32-bit unsigned integer to identify the transaction originator. ### Request Example ```json { "amount": { "asset": "USD", "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", "value": "1000" }, "amount2": { "asset": "XRP", "value": "1000" }, "trading_fee": 500, "source_tag": "3001" } ``` ```