### Successful Response Example Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/add-asset-to-address/put This is an example of a successful API response, typically returned for GET requests. It includes metadata like apiVersion, requestId, and context, along with the requested data. ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "data": { "item": { "address": "0xa5bd60af2ed1499ce8292bb2e6c0179dcea34f33", "assetUnit": "ETH", "balance": "0", "contractAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7", "decimals": "6" } } } ``` -------------------------------- ### Example Payloads Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/general-information/webhooks Example JSON payloads for various webhook events. ```APIDOC ## Example Payloads ### TRANSACTION_REQUEST Payload ```json { "walletId": "685121237d7d1e0007ac1a1d", "webhookId": "68516e9c6620b0a4790ed541", "idempotencyKey": "928fe178...d371dda9", "apiVersion": "2025-09-23", "data": { "event": "TRANSACTION_REQUEST", "item": { "vaultAccountId": "69ba58c529eb49000746b311", "assetId": "6913471c6b2794841dc8fb6f", "unit": "ETH", "requestId": "686cd2860ca2f4fd25f77099", "transactionType": "COIN" } } } ``` ### TRANSACTION_APPROVED Payload ```json { "data": { "event": "TRANSACTION_APPROVED", "item": { "requestId": "686cd2860ca2f4fd25f77099", "unit": "ETH", "requiredApprovals": 2, "currentApprovals": 2, "requiredRejections": 1, "currentRejections": 0, "transactionType": "COIN" } } } ``` ### TRANSACTION_REJECTED Payload ```json { "data": { "event": "TRANSACTION_REJECTED", "item": { "requestId": "686cd2860ca2f4fd25f77099", "requiredApprovals": 2, "currentApprovals": 0, "requiredRejections": 1, "currentRejections": 1 } } } ``` ### OUTGOING_MINED Payload ```json { "data": { "event": "OUTGOING_MINED", "item": { "requestId": "686cd2860ca2f4fd25f77099", "transactionId": "0x37c2e069...efb50623", "unit": "ETH", "currentApprovals": 2, "currentRejections": 0 } } } ``` ### OUTGOING_FAILED Payload ```json { "data": { "event": "OUTGOING_FAILED", "item": { "requestId": "686cd2860ca2f4fd25f77099", "failedReason": "INSUFFICIENT_FUNDS", "currentApprovals": 1, "currentRejections": 0 } } } ``` ### INCOMING_CONFIRMED_COIN_TX Payload ```json { "data": { "event": "INCOMING_CONFIRMED_COIN_TX", "item": { "vaultAccountId": "69ba58c529eb49000746b311", "assetId": "6913471c6b2794841dc8fb6f", "address": "tb1q3ft8aq4daesecw8yfz0gt4hgursm0l6nhj06m9", "amount": "0.005", "unit": "BTC", "transactionId": "cf0d9a82045c13dba627788d9508b3dfd761e46b49deba48d004c82e2f2f83f2", "currentConfirmations": 6, "targetConfirmations": 6, "status": "success", "minedInBlock": { "height": 4547001, "hash": "0000000000000004a25a24749cbca4ac6b2d62b9932f0fefbb9cb8a7a9e5619e", "timestamp": 1750837928 } } } } ``` ### INCOMING_CONFIRMED_TOKEN_TX Payload ```json { "data": { "event": "INCOMING_CONFIRMED_TOKEN_TX", "item": { "address": "TDGFc6pDe5q2gc9zi4p2JQHfJTXVTBw7yu", "tokenType": "TRC-20", "transactionId": "a6f8225d5a905fc236e5d85d88f77d127d48e80bb456042853c8ed6210182f4f", "currentConfirmations": 12, "targetConfirmations": 12, "status": "success", "token": { "tokenName": "Tether USD", "tokenSymbol": "USDT", "decimals": 6, "tokensAmount": "100.0", "contract": "TXLAQ63Xg1NAzckPwKHvzw7CSEmLMEqcdj" } } } } ``` ``` -------------------------------- ### Transaction Request Example Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/transactions/gas-sponsorship-transfer/post This snippet shows an example of a request body for initiating a transaction. ```APIDOC ## POST /api/transactions ### Description Initiates a new transaction with the specified details. ### Method POST ### Endpoint /api/transactions ### Request Body - **context** (string) - Required - Contextual information for the transaction. - **data** (object) - Required - Contains the transaction details. - **item** (object) - Required - Details of the item being transacted. - **amount** (string) - Required - The amount of the asset to be transferred. - **assetId** (string) - Required - The unique identifier of the asset. - **feePayer** (string) - Required - The address responsible for paying the transaction fee. - **feePriority** (string) - Required - The priority level for the transaction fee (e.g., "slow", "average", "fast"). - **fromAddress** (string) - Required - The address from which the asset is being sent. - **maxFee** (string) - Required - The maximum fee the sender is willing to pay. - **note** (string) - Optional - Additional notes or information about the transaction. - **toAddress** (string) - Required - The address to which the asset is being sent. - **vaultAccountId** (string) - Required - The identifier of the Vaultody account. ### Request Example ```json { "context": "yourExampleString", "data": { "item": { "amount": "0.001", "assetId": "6523e058a06ebf1322d7dd6e", "feePayer": "0x92b23f96a3beeba16d5378709d8ca2ec0be5615f", "feePriority": "slow", "fromAddress": "0x2d7127f27a2ca399cb3e3217140adc88d1d71fae", "maxFee": "0.006", "note": "yourAdditionalInformationhere", "toAddress": "0xbfe14b26d2680a232499f059d251f2486f32cdff", "vaultAccountId": "6913471c6b2794841dc8fb81" } } } ``` ``` -------------------------------- ### Example Error Response - Missing API Key Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/validate-address/post An example of an API response when the API key is missing. ```APIDOC ## Error Response Example - Missing API Key ### Response Body (401 Unauthorized) ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "error": { "code": "missing_api_key", "message": "The specific authorization header (API Key) is missing, please check our Authorization section in our Documentation.", "details": [ { "attribute": "attribute which content caused the error", "message": "message describing the error" } ] } } ``` ``` -------------------------------- ### Example Error Response - URI Not Found Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/validate-address/post An example of an API response when a URI is not found. ```APIDOC ## Error Response Example - URI Not Found ### Response Body (404 Not Found) ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "error": { "code": "uri_not_found", "message": "The specified URI has not been found. Check the URI and try again.", "details": [ { "attribute": "attribute which content caused the error", "message": "message describing the error" } ] } } ``` ``` -------------------------------- ### Successful Response Example Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/list-supported-assets/get This is an example of a successful API response, typically returned for GET requests that retrieve data. It includes metadata like API version, request ID, and context, along with the requested data. ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "data": { "limit": 50, "startingAfter": "5ca21f92cf5431000105d1a7", "hasMore": true, "items": [ { "active": "true", "assetId": "6523e058a06ebf1322d7dd6f", "assetName": "Ethereum", "assetType": "TOKEN", "assetUnit": "ETH", "blockchain": "ethereum", "contractAddress": "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238", "contractType": "ERC-20", "decimals": "6", "network": "mainnet", "price": { "amount": "2147.2241", "calculationTimestamp": 1770727800, "unit": "USD" } } ] } } ``` -------------------------------- ### Example Success Response Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/validate-address/post An example of a successful API response. ```APIDOC ## Success Response Example ### Method [HTTP Method, e.g., POST] ### Endpoint [Endpoint Path] ### Response Body (200 OK) ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "data": { "item": { "address": "15XyNC88pujwuuur8DCsXBCfEhJJMzHayU", "isValid": true } } } ``` ``` -------------------------------- ### Successful API Response Example Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/vault-accounts/list-assets-by-vault-account-id/get This is an example of a successful API response, typically returned for GET requests that retrieve data. It includes metadata like apiVersion, requestId, and context, along with the requested data. ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "data": { "limit": 50, "startingAfter": "5ca21f92cf5431000105d1a7", "hasMore": true, "items": [ { "assetId": "6913471c6b2794841dc8fb6f", "assetUnit": "BTC", "availableAmount": "0.001", "blockchain": "bitcoin", "exchangeRateToUsd": "69156.14" } ] } } ``` -------------------------------- ### Example Error Response - Invalid API Key Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/validate-address/post An example of an API response when the API key is invalid. ```APIDOC ## Error Response Example - Invalid API Key ### Response Body (401 Unauthorized) ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "error": { "code": "invalid_api_key", "message": "The provided API key is invalid. Please, generate a new one from your Dashboard.", "details": [ { "attribute": "attribute which content caused the error", "message": "message describing the error" } ] } } ``` ``` -------------------------------- ### Example Error Response - Endpoint Not Allowed for Plan Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/validate-address/post An example of an API response when an endpoint is not available for the current subscription plan. ```APIDOC ## Error Response Example - Endpoint Not Allowed for Plan ### Response Body (403 Forbidden) ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "error": { "code": "endpoint_not_allowed_for_plan", "message": "This endpoint is not available for your current subscription plan, please upgrade your plan to be able to use it.", "details": [ { "attribute": "attribute which content caused the error", "message": "message describing the error" } ] } } ``` ``` -------------------------------- ### Successful API Response Example Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/encode-xrp-address/get This is an example of a successful API response, typically returned for POST requests that create or update resources. ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "data": { "item": { "xAddress": "T7zVRFzUcVxFfE3MUM6jV3SpobVdECBZ1K9UnX62Jacc6AV" } } } ``` -------------------------------- ### Error Response Examples Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/generate-deposit-address/post Examples of various error responses that can be returned by the API. ```APIDOC ### Error Response Examples #### 404 Not Found ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "error": { "code": "uri_not_found", "message": "The specified URI has not been found. Check the URI and try again.", "details": [ { "attribute": "attribute which content caused the error", "message": "message describing the error" } ] } } ``` #### 429 Too Many Requests (Limit Exceeded) ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "error": { "code": "limit_greater_than_allowed", "message": "You have reached the allowed limit. The maximum number of items for this endpoint is {limit}, please use the specific pagination attributes to get the items in portions.", "details": [ { "attribute": "attribute which content caused the error", "message": "message describing the error" } ] } } ``` #### 400 Bad Request (Invalid Pagination) ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "error": { "code": "invalid_pagination", "message": "The pagination attributes that have been used are invalid. Please check the Documentation to see details on pagination.", "details": [ { "attribute": "attribute which content caused the error", "message": "message describing the error" } ] } } ``` #### 401 Unauthorized (Missing API Key) ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "error": { "code": "missing_api_key", "message": "The specific authorization header (API Key) is missing, please check our Authorization section in our Documentation.", "details": [ { "attribute": "attribute which content caused the error", "message": "message describing the error" } ] } } ``` #### 401 Unauthorized (Invalid API Key) ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "error": { "code": "invalid_api_key", "message": "The provided API key is invalid. Please, generate a new one from your Dashboard.", "details": [ { "attribute": "attribute which content caused the error", "message": "message describing the error" } ] } } ``` #### 403 Forbidden (Endpoint Not Allowed for Plan) ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "error": { "code": "endpoint_not_allowed_for_plan", "message": "This endpoint is not available for your current subscription plan, please upgrade your plan to be able to use it.", "details": [ { "attribute": "attribute which content caused the error", "message": "message describing the error" } ] } } ``` #### 403 Forbidden (Endpoint Not Allowed for API Key) ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "error": { "code": "endpoint_not_allowed_for_api_key", "message": "This endpoint is not allowed for the provided API key.", "details": [ { "attribute": "attribute which content caused the error", "message": "message describing the error" } ] } } ``` ``` -------------------------------- ### Transaction Callbacks Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/transactions/create-batch-transaction-request/post Examples of various transaction-related callback events. ```APIDOC ## Transaction Callbacks ### TRANSACTION_REQUEST This callback is triggered when a new transaction request is initiated. ```json { "walletId": "685121237d7d1e0007ac1a1d", "webhookId": "68516e9c6620b0a4790ed541", "idempotencyKey": "928fe1786859b5e33a2f63c569a0351e0c90cbe35bc5a7bb0bb1523cd371dda9", "apiVersion": "2025-09-23", "data": { "event": "TRANSACTION_REQUEST", "item": { "vaultAccountId": "69ba58c529eb49000746b311", "assetId": "6913471c6b2794841dc8fb6f", "unit": "BTC", "requestId": "686cd2860ca2f4fd25f77099", "transactionType": "COIN" } } } ``` ### TRANSACTION_APPROVED This callback indicates that a transaction request has been approved. ```json { "walletId": "685121237d7d1e0007ac1a1d", "webhookId": "68516e9c6620b0a4790ed541", "idempotencyKey": "928fe1786859b5e33a2f63c569a0351e0c90cbe35bc5a7bb0bb1523cd371dda9", "apiVersion": "2025-09-23", "data": { "event": "TRANSACTION_APPROVED", "item": { "vaultAccountId": "69ba58c529eb49000746b311", "assetId": "6913471c6b2794841dc8fb6f", "unit": "BTC", "requestId": "686cd2860ca2f4fd25f77099", "transactionType": "COIN", "requiredApprovals": 1, "requiredRejections": 1, "currentApprovals": 1, "currentRejections": 0 } } } ``` ### TRANSACTION_REJECTED This callback is sent when a transaction request is rejected. ```json { "walletId": "685121237d7d1e0007ac1a1d", "webhookId": "68516e9c6620b0a4790ed541", "idempotencyKey": "928fe1786859b5e33a2f63c569a0351e0c90cbe35bc5a7bb0bb1523cd371dda9", "apiVersion": "2025-09-23", "data": { "event": "TRANSACTION_REJECTED", "item": { "vaultAccountId": "69ba58c529eb49000746b311", "assetId": "6913471c6b2794841dc8fb6f", "unit": "BTC", "requestId": "686cd2860ca2f4fd25f77099", "transactionType": "COIN", "requiredApprovals": 1, "requiredRejections": 1, "currentApprovals": 0, "currentRejections": 1 } } } ``` ### TRANSACTION_BROADCASTED This callback is received when a transaction has been successfully broadcasted to the network. ```json { "walletId": "685121237d7d1e0007ac1a1d", "webhookId": "68516e9c6620b0a4790ed541", "idempotencyKey": "928fe1786859b5e33a2f63c569a0351e0c90cbe35bc5a7bb0bb1523cd371dda9", "apiVersion": "2025-09-23", "data": { "event": "TRANSACTION_BROADCASTED", "item": { "vaultAccountId": "69ba58c529eb49000746b311", "assetId": "6913471c6b2794841dc8fb6f", "unit": "BTC", "requestId": "686cd2860ca2f4fd25f77099", "transactionType": "COIN", "requiredApprovals": 1, "requiredRejections": 1, "currentApprovals": 1, "currentRejections": 0, "transactionId": "37c2e0696bd86df5010bafa1a4c22ce1b070a8c32126b421ededa0e4efb50623" } } } ``` ### OUTGOING_MINED This callback signifies that an outgoing transaction has been mined. ```json { "walletId": "685121237d7d1e0007ac1a1d", "webhookId": "68516e9c6620b0a4790ed541", "idempotencyKey": "928fe1786859b5e33a2f63c569a0351e0c90cbe35bc5a7bb0bb1523cd371dda9", "apiVersion": "2025-09-23", "data": { "event": "OUTGOING_MINED", "item": { "vaultAccountId": "69ba58c529eb49000746b311", "assetId": "6913471c6b2794841dc8fb6f", "unit": "BTC", "requestId": "686cd2860ca2f4fd25f77099", "transactionType": "COIN", "requiredApprovals": 1, "requiredRejections": 1, "currentApprovals": 1, "currentRejections": 0 } } } ``` ### OUTGOING_MINED_WITH_ERRORS This callback is triggered when an outgoing transaction is mined but with associated errors. ### OUTGOING_FAILED This callback indicates that an outgoing transaction has failed. ### COIN_TRANSACTION This callback pertains to coin-based transactions. ### INTERNAL_TRANSACTION This callback relates to internal transactions within the system. ### INCOMING_CONFIRMED_COIN_TX This callback is received when an incoming coin transaction is confirmed. ### INCOMING_CONFIRMED_INTERNAL_TX This callback signifies that an incoming internal transaction has been confirmed. ``` -------------------------------- ### Example Error Response - Limit Greater Than Allowed Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/validate-address/post An example of an API response when the limit of items is exceeded. ```APIDOC ## Error Response Example - Limit Greater Than Allowed ### Response Body (400 Bad Request or 429 Too Many Requests) ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "error": { "code": "limit_greater_than_allowed", "message": "You have reached the allowed limit. The maximum number of items for this endpoint is {limit}, please use the specific pagination attributes to get the items in portions.", "details": [ { "attribute": "attribute which content caused the error", "message": "message describing the error" } ] } } ``` ``` -------------------------------- ### Example Error Response - Endpoint Not Allowed for API Key Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/validate-address/post An example of an API response when an endpoint is not available for the provided API key. ```APIDOC ## Error Response Example - Endpoint Not Allowed for API Key ### Response Body (403 Forbidden) ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "error": { "code": "endpoint_not_allowed_for_api_key", "message": "This endpoint is not available for your API key.", "details": [ { "attribute": "attribute which content caused the error", "message": "message describing the error" } ] } } ``` ``` -------------------------------- ### Example Error Response - Invalid Pagination Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/validate-address/post An example of an API response when pagination attributes are invalid. ```APIDOC ## Error Response Example - Invalid Pagination ### Response Body (400 Bad Request) ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "error": { "code": "invalid_pagination", "message": "The pagination attributes that have been used are invalid. Please check the Documentation to see details on pagination.", "details": [ { "attribute": "attribute which content caused the error", "message": "message describing the error" } ] } } ``` ``` -------------------------------- ### Successful Data Response Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/transactions/estimate-approximate-transaction-fee-by-asset-id/post Example of a successful API response containing item data. ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "data": { "item": { "errorMessage": "INSUFFICIENT_FUNDS", "feeInNative": "0.00001698", "maxAmount": "10" } } } ``` -------------------------------- ### Successful Transaction Creation Response Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/transactions/create-batch-transaction-request/post This is an example of a successful response when a transaction is created. It includes details about the transaction and its status. ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "data": { "item": { "amountUnit": "ETH", "feePayer": "0xa5bd60af2ed1499ce8292bb2e6c0179dcea34f33", "feePriority": "slow", "note": "yourAdditionalInformationhere", "recipients": [ { "address": "0xd2070342a1a5ce24930ec6582b3db846458525a0", "amount": "0.001", "amountUnit": "ETH", "assetId": "6913471c6b2794841dc8fb7e", "convertedAmountToUSD": "3.31" } ], "senders": { "address": "0x9b08125f3fb134f0ebb462ccff0f463bcfb4f623" }, "totalTransactionAmountInUsd": "3.31", "transactionRequestId": "6980695689a82e0ff4f7edc7", "transactionRequestStatus": "created" } } } ``` -------------------------------- ### Successful API Response Structure Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/decode-xrp-address/get Example of a successful JSON response containing data for a requested item. ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "data": { "item": { "classicAddress": "rB1QL2KsiwrwaErZ8Pa8dVh3ZEQ2oKGp9J", "tag": "123" } } } ``` -------------------------------- ### Handle Rate Limit 429 Responses Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/general-information/data-flow-limiting Example JSON structure returned when the API request limit is exceeded. ```json { "error": { "code": "request_limit_reached", "message": "The request limit has been reached. Please contact our team or upgrade your plan." } } ``` -------------------------------- ### Webhook Event Payloads Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/tron-resource-management/post Examples of JSON payloads sent to configured callback URLs for various transaction lifecycle events. ```json { "walletId": "685121237d7d1e0007ac1a1d", "webhookId": "68516e9c6620b0a4790ed541", "idempotencyKey": "928fe1786859b5e33a2f63c569a0351e0c90cbe35bc5a7bb0bb1523cd371dda9", "apiVersion": "2025-09-23", "data": { "event": "TRANSACTION_REQUEST", "item": { "vaultAccountId": "69ba58c529eb49000746b311", "assetId": "6913471c6b2794841dc8fb6f", "unit": "BTC", "requestId": "686cd2860ca2f4fd25f77099", "transactionType": "COIN" } } } ``` ```json { "walletId": "685121237d7d1e0007ac1a1d", "webhookId": "68516e9c6620b0a4790ed541", "idempotencyKey": "928fe1786859b5e33a2f63c569a0351e0c90cbe35bc5a7bb0bb1523cd371dda9", "apiVersion": "2025-09-23", "data": { "event": "TRANSACTION_APPROVED", "item": { "vaultAccountId": "69ba58c529eb49000746b311", "assetId": "6913471c6b2794841dc8fb6f", "unit": "BTC", "requestId": "686cd2860ca2f4fd25f77099", "transactionType": "COIN", "requiredApprovals": 1, "requiredRejections": 1, "currentApprovals": 1, "currentRejections": 0 } } } ``` ```json { "walletId": "685121237d7d1e0007ac1a1d", "webhookId": "68516e9c6620b0a4790ed541", "idempotencyKey": "928fe1786859b5e33a2f63c569a0351e0c90cbe35bc5a7bb0bb1523cd371dda9", "apiVersion": "2025-09-23", "data": { "event": "TRANSACTION_REJECTED", "item": { "vaultAccountId": "69ba58c529eb49000746b311" ``` -------------------------------- ### Handle Pagination Response Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/general-information/data-flow-limiting Example response structure for a paginated list endpoint containing the hasMore flag. ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "data": { "limit": 50, "hasMore": true, "items": [ { "vaultAccountId": "68dfaeae39a4b80007c4f707", "vaultAccountName": "User Alice", ... } ] } } ``` -------------------------------- ### Rate Limiting and Pagination Concepts Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/general-information/data-flow-limiting Overview of how to handle HTTP 429 responses and implement cursor-based pagination for list endpoints. ```APIDOC ## Data Flow Limiting ### Description Vaultody enforces rate limits to manage traffic and cursor-based pagination for efficient data retrieval. When rate limits are exceeded, a 429 status code is returned. ### Rate Limiting - **Status Code**: 429 Too Many Requests - **Handling**: Implement exponential backoff when receiving a 429 response. ### Pagination Vaultody uses cursor-based pagination for list endpoints. #### Query Parameters - **limit** (integer) - Optional - Number of items to return per page. Default: 50. Maximum: 50. - **startingAfter** (string) - Optional - The ID of the last item from the previous page. Omit for the first page. ### Response - **hasMore** (boolean) - Indicates if there are more pages available. - **items** (array) - The list of objects returned for the current page. ``` -------------------------------- ### POST Request Body Structure Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/generate-deposit-address/post Example JSON body for a POST request to create an address, requiring a context and data object containing the item details. ```json { "context": "yourExampleString", "data": { "item": { "label": "yourLabelStringHere", "vaultAccountId": "60c9d9921c38030006675ff6" } } } ``` -------------------------------- ### Get Vault ID Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis Retrieve your vaultId by making a GET request to the /vaults/{networkType} endpoint. The 'id' field from the response is your vaultId. ```http GET /vaults/test ``` ```json { "data": { "items": [ { "id": "66d866bd469e1d00079d91d5", "name": "My Test Vault", "type": "test" } ] } } ``` -------------------------------- ### Fetch All Paginated Items Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/general-information/data-flow-limiting Iterative approach to fetch all items by updating the startingAfter parameter until hasMore is false. ```python def get_all_vault_accounts(vault_id): all_accounts = [] starting_after = None while True: params = {'limit': 50} if starting_after: params['startingAfter'] = starting_after resp = signed_request('GET', f'/vaults/{vault_id}/vault-accounts/details', params=params) data = resp.json()['data'] all_accounts.extend(data['items']) if not data['hasMore']: break ``` -------------------------------- ### Postman Pre-request Script Setup Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/general-information/vaultody-api-authentication This snippet shows the initial setup for a Postman pre-request script to handle API authentication. It requires the CryptoJS library to be available in the Postman environment. ```JavaScript var CryptoJS = require("crypto-js"); var secretKey = pm.variables.get("x-api-key"); ``` -------------------------------- ### List Supported Assets Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/list-supported-assets/get Retrieves a list of all assets supported by the platform. This endpoint is intended to help users discover which assets are available to be added to their Vault Accounts. Results can be sorted and paginated to ensure efficient and consistent data retrieval, even for large asset sets. ```APIDOC ## GET /supported-assets ### Description Retrieves a list of all assets supported by the platform. This endpoint is intended to help users discover which assets are available to be added to their Vault Accounts. Results can be sorted and paginated to ensure efficient and consistent data retrieval, even for large asset sets. ### Method GET ### Endpoint /supported-assets ### Parameters #### Query Parameters - **context** (string) - Optional - In batch situations the user can use the context to correlate responses with requests. This property is present regardless of whether the response was successful or returned as an error. `context` is specified by the user. - **assetUnit** (string) - Optional - Filter results by asset unit (e.g., BTC, BNB, USDC, TRX, LINK). - **blockchain** (string) - Optional - Filter results by blockchain the asset is supported on (e.g., bitcoin, ethereum, polygon, tron, solana). - **limit** (integer) - Optional - Defines how many items should be returned in the response per page basis. Default : 50 - **networkType** (string) - Optional - Filter by network type: main or test. - **startingAfter** (string) - Optional - Defines the id of the previous listed record id from which the current list should start from. ``` -------------------------------- ### Successful Resource Creation (201) Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/transactions/create-multiple-transfer/post Indicates that the resource has been successfully created. The response body contains the details of the created resource. ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "data": { "item": { "amountUnit": "BTC", "feePriority": "slow", "gross": false, "maxFee": "0.003", "note": "yourExampleStringHere", "prepareStrategy": "optimize-size", "recipients": [ { "address": "bc1qut6n59lceee7s94g5qme08yzu8evd2yfjuuu3k", "amount": "0.001", "amountUnit": "BTC", "convertedAmountToUSD": "95.42" } ], "totalTransactionAmount": "0.001", "transactionRequestId": "62daacdbc8a7282e9ea01c35", "transactionRequestStatus": "created" } } } ``` -------------------------------- ### Resource Not Found Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/list-addresses-by-vault-account-id/get Indicates that the requested resource could not be found. Ensure the resource identifier or path is correct. ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "error": { "code": "resource_not_found", "message": "The specified resource has not been found.", "details": [ { "attribute": "attribute which content caused the error", "message": "message describing the error" } ] } } ``` -------------------------------- ### Get Account Balance Source: https://developers.vaultody.com/v-1.2026-03-20-193/RESTapis/assets-addresses/tron-resource-overview/get Retrieves the balance and resource information for a given account address. ```APIDOC ## GET /api/v1/accounts/{address} ### Description Retrieves the balance and resource information for a given account address. ### Method GET ### Endpoint /api/v1/accounts/{address} ### Parameters #### Path Parameters - **address** (string) - Required - The account address to query. ### Request Example ```json { "example": "request body" } ``` ### Response #### Success Response (200) - **apiVersion** (string) - The API version used for the request. - **requestId** (string) - A unique identifier for the request. - **context** (string) - Contextual information about the request. - **data** (object) - Contains the account data. - **item** (object) - Details of the account. - **address** (string) - The account address. - **balance** (object) - The balance information. - **available** (string) - The available balance. - **availableFrozen** (string) - The available frozen balance. - **delegated** (string) - The delegated balance. - **total** (string) - The total balance. - **unit** (string) - The currency unit. - **withdrawableAmount** (string) - The amount that can be withdrawn. - **frozenResources** (object) - Information about frozen resources. - **bandwidth** (string) - Frozen bandwidth. - **energy** (string) - Frozen energy. - **tronPower** (string) - Frozen Tron Power. - **network** (string) - The network the account is on (e.g., mainnet). - **resources** (object) - Resource usage details. - **bandwidth** (object) - Bandwidth resource details. - **acquiredDelegated** (string) - Acquired delegated bandwidth. - **available** (integer) - Available bandwidth. - **delegated** (string) - Delegated bandwidth. - **freeLimit** (integer) - Free bandwidth limit. - **freeUsed** (integer) - Free bandwidth used. - **limit** (integer) - Bandwidth limit. - **used** (integer) - Bandwidth used. - **energy** (object) - Energy resource details. - **acquiredDelegated** (string) - Acquired delegated energy. - **available** (integer) - Available energy. - **delegated** (string) - Delegated energy. - **limit** (integer) - Energy limit. - **used** (integer) - Energy used. #### Response Example ```json { "apiVersion": "2026-03-20", "requestId": "601c1710034ed6d407996b30", "context": "yourExampleString", "data": { "item": { "address": "TMLmaAS4GfshG6PfToD5YYRm5G8giauYc4", "balance": { "available": "70", "availableFrozen": "30.123", "delegated": "0", "total": "100.123", "unit": "TRX", "withdrawableAmount": "1" }, "frozenResources": { "bandwidth": "10", "energy": "20.123", "tronPower": "0" }, "network": "mainnet", "resources": { "bandwidth": { "acquiredDelegated": "0", "available": 1035, "delegated": "0", "freeLimit": 600, "freeUsed": 0, "limit": 1035, "used": 0 }, "energy": { "acquiredDelegated": "0", "available": 775, "delegated": "0", "limit": 775, "used": 0 } } } } } ``` ```