Child Address
curl --request POST \
--url https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"assets": [
{
"address": "0xRecipient1Address",
"amount": "10.5",
"id": "{{assetId1}}",
"reference": "addr-payout-001"
},
{
"address": "0xRecipient2Address",
"amount": "25.0",
"id": "{{assetId2}}",
"reference": "addr-payout-002"
}
]
}
'import requests
url = "https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw"
payload = { "assets": [
{
"address": "0xRecipient1Address",
"amount": "10.5",
"id": "{{assetId1}}",
"reference": "addr-payout-001"
},
{
"address": "0xRecipient2Address",
"amount": "25.0",
"id": "{{assetId2}}",
"reference": "addr-payout-002"
}
] }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
assets: [
{
address: '0xRecipient1Address',
amount: '10.5',
id: '{{assetId1}}',
reference: 'addr-payout-001'
},
{
address: '0xRecipient2Address',
amount: '25.0',
id: '{{assetId2}}',
reference: 'addr-payout-002'
}
]
})
};
fetch('https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'assets' => [
[
'address' => '0xRecipient1Address',
'amount' => '10.5',
'id' => '{{assetId1}}',
'reference' => 'addr-payout-001'
],
[
'address' => '0xRecipient2Address',
'amount' => '25.0',
'id' => '{{assetId2}}',
'reference' => 'addr-payout-002'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw"
payload := strings.NewReader("{\n \"assets\": [\n {\n \"address\": \"0xRecipient1Address\",\n \"amount\": \"10.5\",\n \"id\": \"{{assetId1}}\",\n \"reference\": \"addr-payout-001\"\n },\n {\n \"address\": \"0xRecipient2Address\",\n \"amount\": \"25.0\",\n \"id\": \"{{assetId2}}\",\n \"reference\": \"addr-payout-002\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"assets\": [\n {\n \"address\": \"0xRecipient1Address\",\n \"amount\": \"10.5\",\n \"id\": \"{{assetId1}}\",\n \"reference\": \"addr-payout-001\"\n },\n {\n \"address\": \"0xRecipient2Address\",\n \"amount\": \"25.0\",\n \"id\": \"{{assetId2}}\",\n \"reference\": \"addr-payout-002\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"assets\": [\n {\n \"address\": \"0xRecipient1Address\",\n \"amount\": \"10.5\",\n \"id\": \"{{assetId1}}\",\n \"reference\": \"addr-payout-001\"\n },\n {\n \"address\": \"0xRecipient2Address\",\n \"amount\": \"25.0\",\n \"id\": \"{{assetId2}}\",\n \"reference\": \"addr-payout-002\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"amlScreening": null,
"amount": "10",
"amountPaid": "10",
"asset": {
"address": "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
"blockchain": {
"createdAt": "2024-05-14T11:53:33.095Z",
"derivationPath": "m/44'/60'/0'/0",
"id": "85ffc132-3972-4c9e-99a5-5cf0ccb688bf",
"isActive": true,
"isEvmCompatible": true,
"logoUrl": "https://res.cloudinary.com/blockradar/image/upload/v1716800081/crypto-assets/ethereum-eth-logo_idraq2.png",
"name": "ethereum",
"slug": "ethereum",
"symbol": "eth",
"tokenStandard": "ERC20",
"updatedAt": "2024-06-14T22:32:11.983Z"
},
"createdAt": "2024-05-14T11:53:33.682Z",
"decimals": 6,
"id": "fe04a28c-c615-4e41-8eda-f84c862864f5",
"isActive": true,
"logoUrl": "https://res.cloudinary.com/blockradar/image/upload/v1716800083/crypto-assets/usd-coin-usdc-logo_fs9mhv.png",
"name": "USDC Coin",
"network": "testnet",
"standard": "ERC20",
"symbol": "USDC",
"updatedAt": "2024-06-14T22:32:12.589Z"
},
"assetSwept": null,
"assetSweptAmount": null,
"assetSweptAt": null,
"assetSweptGasFee": null,
"assetSweptHash": null,
"assetSweptRecipientAddress": null,
"assetSweptResponse": null,
"assetSweptSenderAddress": null,
"blockHash": null,
"blockNumber": null,
"blockchain": {
"createdAt": "2024-05-14T11:53:33.095Z",
"derivationPath": "m/44'/60'/0'/0",
"id": "85ffc132-3972-4c9e-99a5-5cf0ccb688bf",
"isActive": true,
"isEvmCompatible": true,
"logoUrl": "https://res.cloudinary.com/blockradar/image/upload/v1716800081/crypto-assets/ethereum-eth-logo_idraq2.png",
"name": "ethereum",
"slug": "ethereum",
"symbol": "eth",
"tokenStandard": "ERC20",
"updatedAt": "2024-06-14T22:32:11.983Z"
},
"chainId": null,
"confirmations": null,
"confirmed": false,
"createdAt": "2024-10-23T11:33:58.765Z",
"currency": "USD",
"fee": null,
"feeMetadata": null,
"gasFee": null,
"gasPrice": null,
"gasUsed": null,
"hash": "0xded90bc7f3d98f5ff0c3a97f711717192e83e01d89ac1ff4483ae6fd9d229e6d",
"id": "081d6315-159f-4c38-b02a-c4708836c5bd",
"metadata": null,
"network": "testnet",
"note": null,
"reason": null,
"recipientAddress": "0x2455eC6700092991Ce0782365A89d5Cd89c8Fa22",
"senderAddress": "0x947514e4B803e312C312da0F1B41fEDdbe15ae7a",
"status": "PENDING",
"tokenAddress": null,
"type": "WITHDRAW",
"updatedAt": "2024-10-23T11:33:58.765Z",
"wallet": {
"id": "d236a191-c1d4-423c-a439-54ce6542ca41"
}
},
"message": "Withdrawal request initiated successfully",
"statusCode": 200
}Withdraw
Child Address
This endpoint allows you to initiate a withdrawal from a specific address
Body Parameters
| Key | Required | Type | Description |
|---|---|---|---|
| assetId | true* | string (UUID) | The ID of the asset to withdraw. Required if assets array is not provided. |
| address | true* | string | The destination wallet address for the withdrawal. Required if assets array is not provided. |
| amount | true* | string | The withdrawal amount. Must be greater than 0. Required if assets array is not provided. |
| reference | false | string | An optional reference note for the withdrawal. |
| note | false | string | A short message or internal remark to associate with this withdrawal. Not visible on-chain, except on Stellar, where it is attached as the transaction memo. |
| metadata | false | object | Optional metadata (key-value pairs) for additional transaction details. |
| assets | false | array of Asset | Used for batch withdrawals. Required if assetId, amount, and address are not provided. |
Asset (for Batch Withdrawals)
| Key | Required | Type | Description |
|---|---|---|---|
| id | true | string (UUID) | The ID of the asset to withdraw. |
| amount | true | string | The withdrawal amount. Must be greater than 0. |
| address | true | string | The destination wallet address for the withdrawal. |
| reference | false | string | Optional reference note for this asset withdrawal. |
| note | false | string | A short message or internal remark for this asset withdrawal. Not visible on-chain, except on Stellar, where it is attached as the transaction memo. |
| metadata | false | object | Optional metadata (key-value pairs) for this asset withdrawal. |
Notes
- Single withdrawal: Provide
assetId,amount, andaddressat the top level. - Batch withdrawal: Omit top-level
assetId,amount, andaddress, and instead provide an array ofassets(each followingAsset).
POST
/
v1
/
wallets
/
{walletId}
/
addresses
/
{addressId}
/
withdraw
Child Address
curl --request POST \
--url https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"assets": [
{
"address": "0xRecipient1Address",
"amount": "10.5",
"id": "{{assetId1}}",
"reference": "addr-payout-001"
},
{
"address": "0xRecipient2Address",
"amount": "25.0",
"id": "{{assetId2}}",
"reference": "addr-payout-002"
}
]
}
'import requests
url = "https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw"
payload = { "assets": [
{
"address": "0xRecipient1Address",
"amount": "10.5",
"id": "{{assetId1}}",
"reference": "addr-payout-001"
},
{
"address": "0xRecipient2Address",
"amount": "25.0",
"id": "{{assetId2}}",
"reference": "addr-payout-002"
}
] }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
assets: [
{
address: '0xRecipient1Address',
amount: '10.5',
id: '{{assetId1}}',
reference: 'addr-payout-001'
},
{
address: '0xRecipient2Address',
amount: '25.0',
id: '{{assetId2}}',
reference: 'addr-payout-002'
}
]
})
};
fetch('https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'assets' => [
[
'address' => '0xRecipient1Address',
'amount' => '10.5',
'id' => '{{assetId1}}',
'reference' => 'addr-payout-001'
],
[
'address' => '0xRecipient2Address',
'amount' => '25.0',
'id' => '{{assetId2}}',
'reference' => 'addr-payout-002'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw"
payload := strings.NewReader("{\n \"assets\": [\n {\n \"address\": \"0xRecipient1Address\",\n \"amount\": \"10.5\",\n \"id\": \"{{assetId1}}\",\n \"reference\": \"addr-payout-001\"\n },\n {\n \"address\": \"0xRecipient2Address\",\n \"amount\": \"25.0\",\n \"id\": \"{{assetId2}}\",\n \"reference\": \"addr-payout-002\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"assets\": [\n {\n \"address\": \"0xRecipient1Address\",\n \"amount\": \"10.5\",\n \"id\": \"{{assetId1}}\",\n \"reference\": \"addr-payout-001\"\n },\n {\n \"address\": \"0xRecipient2Address\",\n \"amount\": \"25.0\",\n \"id\": \"{{assetId2}}\",\n \"reference\": \"addr-payout-002\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"assets\": [\n {\n \"address\": \"0xRecipient1Address\",\n \"amount\": \"10.5\",\n \"id\": \"{{assetId1}}\",\n \"reference\": \"addr-payout-001\"\n },\n {\n \"address\": \"0xRecipient2Address\",\n \"amount\": \"25.0\",\n \"id\": \"{{assetId2}}\",\n \"reference\": \"addr-payout-002\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"amlScreening": null,
"amount": "10",
"amountPaid": "10",
"asset": {
"address": "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
"blockchain": {
"createdAt": "2024-05-14T11:53:33.095Z",
"derivationPath": "m/44'/60'/0'/0",
"id": "85ffc132-3972-4c9e-99a5-5cf0ccb688bf",
"isActive": true,
"isEvmCompatible": true,
"logoUrl": "https://res.cloudinary.com/blockradar/image/upload/v1716800081/crypto-assets/ethereum-eth-logo_idraq2.png",
"name": "ethereum",
"slug": "ethereum",
"symbol": "eth",
"tokenStandard": "ERC20",
"updatedAt": "2024-06-14T22:32:11.983Z"
},
"createdAt": "2024-05-14T11:53:33.682Z",
"decimals": 6,
"id": "fe04a28c-c615-4e41-8eda-f84c862864f5",
"isActive": true,
"logoUrl": "https://res.cloudinary.com/blockradar/image/upload/v1716800083/crypto-assets/usd-coin-usdc-logo_fs9mhv.png",
"name": "USDC Coin",
"network": "testnet",
"standard": "ERC20",
"symbol": "USDC",
"updatedAt": "2024-06-14T22:32:12.589Z"
},
"assetSwept": null,
"assetSweptAmount": null,
"assetSweptAt": null,
"assetSweptGasFee": null,
"assetSweptHash": null,
"assetSweptRecipientAddress": null,
"assetSweptResponse": null,
"assetSweptSenderAddress": null,
"blockHash": null,
"blockNumber": null,
"blockchain": {
"createdAt": "2024-05-14T11:53:33.095Z",
"derivationPath": "m/44'/60'/0'/0",
"id": "85ffc132-3972-4c9e-99a5-5cf0ccb688bf",
"isActive": true,
"isEvmCompatible": true,
"logoUrl": "https://res.cloudinary.com/blockradar/image/upload/v1716800081/crypto-assets/ethereum-eth-logo_idraq2.png",
"name": "ethereum",
"slug": "ethereum",
"symbol": "eth",
"tokenStandard": "ERC20",
"updatedAt": "2024-06-14T22:32:11.983Z"
},
"chainId": null,
"confirmations": null,
"confirmed": false,
"createdAt": "2024-10-23T11:33:58.765Z",
"currency": "USD",
"fee": null,
"feeMetadata": null,
"gasFee": null,
"gasPrice": null,
"gasUsed": null,
"hash": "0xded90bc7f3d98f5ff0c3a97f711717192e83e01d89ac1ff4483ae6fd9d229e6d",
"id": "081d6315-159f-4c38-b02a-c4708836c5bd",
"metadata": null,
"network": "testnet",
"note": null,
"reason": null,
"recipientAddress": "0x2455eC6700092991Ce0782365A89d5Cd89c8Fa22",
"senderAddress": "0x947514e4B803e312C312da0F1B41fEDdbe15ae7a",
"status": "PENDING",
"tokenAddress": null,
"type": "WITHDRAW",
"updatedAt": "2024-10-23T11:33:58.765Z",
"wallet": {
"id": "d236a191-c1d4-423c-a439-54ce6542ca41"
}
},
"message": "Withdrawal request initiated successfully",
"statusCode": 200
}Authorizations
Path Parameters
Example:
"YOUR_WALLET_ID"
Example:
"ADDRESS_ID"
Body
application/json
The destination wallet address. Stellar accepts classic (G...), muxed (M...), and Soroban contract (C...) recipients. Contract recipients are valid for token assets only, not native XLM.
Show child attributes
Show child attributes
Example:
[
{
"address": "0xRecipient1Address",
"amount": "10.5",
"id": "{{assetId1}}",
"reference": "addr-payout-001"
},
{
"address": "0xRecipient2Address",
"amount": "25.0",
"id": "{{assetId2}}",
"reference": "addr-payout-002"
}
]
⌘I

