Child Address Network Fee
curl --request POST \
--url https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw/network-fee \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"assets": [
{
"address": "0xRecipient1Address",
"amount": "10.5",
"id": "{{assetId1}}"
},
{
"address": "0xRecipient2Address",
"amount": "25.0",
"id": "{{assetId2}}"
}
]
}
'import requests
url = "https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw/network-fee"
payload = { "assets": [
{
"address": "0xRecipient1Address",
"amount": "10.5",
"id": "{{assetId1}}"
},
{
"address": "0xRecipient2Address",
"amount": "25.0",
"id": "{{assetId2}}"
}
] }
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}}'},
{address: '0xRecipient2Address', amount: '25.0', id: '{{assetId2}}'}
]
})
};
fetch('https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw/network-fee', 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/network-fee",
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}}'
],
[
'address' => '0xRecipient2Address',
'amount' => '25.0',
'id' => '{{assetId2}}'
]
]
]),
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/network-fee"
payload := strings.NewReader("{\n \"assets\": [\n {\n \"address\": \"0xRecipient1Address\",\n \"amount\": \"10.5\",\n \"id\": \"{{assetId1}}\"\n },\n {\n \"address\": \"0xRecipient2Address\",\n \"amount\": \"25.0\",\n \"id\": \"{{assetId2}}\"\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/network-fee")
.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 },\n {\n \"address\": \"0xRecipient2Address\",\n \"amount\": \"25.0\",\n \"id\": \"{{assetId2}}\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw/network-fee")
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 },\n {\n \"address\": \"0xRecipient2Address\",\n \"amount\": \"25.0\",\n \"id\": \"{{assetId2}}\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"nativeBalance": "0.04998428208321722",
"networkFee": "0.000000021112014"
},
"message": "Network fee fetched successfully",
"statusCode": 200
}Withdraw
Child Address Network Fee
This endpoint is used to calculate the network fee for 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. On Stellar and Solana it is attached to the transaction as the on-chain memo (an all-digit note becomes a Stellar memo ID; Stellar text memos are limited to 28 bytes) — see On-chain Memos. Not visible on-chain elsewhere. |
| metadata | false | object | Optional metadata (key-value pairs) for additional transaction details. |
POST
/
v1
/
wallets
/
{walletId}
/
addresses
/
{addressId}
/
withdraw
/
network-fee
Child Address Network Fee
curl --request POST \
--url https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw/network-fee \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"assets": [
{
"address": "0xRecipient1Address",
"amount": "10.5",
"id": "{{assetId1}}"
},
{
"address": "0xRecipient2Address",
"amount": "25.0",
"id": "{{assetId2}}"
}
]
}
'import requests
url = "https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw/network-fee"
payload = { "assets": [
{
"address": "0xRecipient1Address",
"amount": "10.5",
"id": "{{assetId1}}"
},
{
"address": "0xRecipient2Address",
"amount": "25.0",
"id": "{{assetId2}}"
}
] }
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}}'},
{address: '0xRecipient2Address', amount: '25.0', id: '{{assetId2}}'}
]
})
};
fetch('https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw/network-fee', 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/network-fee",
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}}'
],
[
'address' => '0xRecipient2Address',
'amount' => '25.0',
'id' => '{{assetId2}}'
]
]
]),
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/network-fee"
payload := strings.NewReader("{\n \"assets\": [\n {\n \"address\": \"0xRecipient1Address\",\n \"amount\": \"10.5\",\n \"id\": \"{{assetId1}}\"\n },\n {\n \"address\": \"0xRecipient2Address\",\n \"amount\": \"25.0\",\n \"id\": \"{{assetId2}}\"\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/network-fee")
.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 },\n {\n \"address\": \"0xRecipient2Address\",\n \"amount\": \"25.0\",\n \"id\": \"{{assetId2}}\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockradar.co/v1/wallets/{walletId}/addresses/{addressId}/withdraw/network-fee")
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 },\n {\n \"address\": \"0xRecipient2Address\",\n \"amount\": \"25.0\",\n \"id\": \"{{assetId2}}\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"nativeBalance": "0.04998428208321722",
"networkFee": "0.000000021112014"
},
"message": "Network fee fetched successfully",
"statusCode": 200
}Operaciones por lotes
Este endpoint admite operaciones por lotes: puedes estimar las comisiones de red de varios retiros desde una dirección hija concreta en una sola llamada a la API.Formato de la solicitud por lotes
Para estimar las comisiones de varios retiros, usa el arrayassets:
{
"assets": [
{
"id": "asset-uuid-1",
"address": "0xRecipient1...",
"amount": "100"
},
{
"id": "asset-uuid-2",
"address": "0xRecipient2...",
"amount": "50"
}
]
}
Formato de la respuesta por lotes
Devuelve las comisiones individuales y los totales:{
"message": "Network fee fetched successfully",
"statusCode": 200,
"data": {
"fees": [
{
"index": 0,
"assetId": "asset-uuid-1",
"address": "0xRecipient1...",
"amount": "100",
"networkFee": "0.00001247904",
"transactionFee": "0",
"estimatedArrivalTime": 30
},
{
"index": 1,
"assetId": "asset-uuid-2",
"address": "0xRecipient2...",
"amount": "50",
"networkFee": "0.00000504",
"transactionFee": "0",
"estimatedArrivalTime": 30
}
],
"totalNetworkFee": "0.00001751904",
"totalNetworkFeeInUSD": "0.0158202186912",
"totalTransactionFee": "0",
"nativeBalance": "0.073690520542044578",
"nativeBalanceInUSD": "66.54",
"estimatedArrivalTime": 60,
"errors": []
}
}
Campos de la respuesta
| Campo | Descripción |
|---|---|
| fees | Array con la estimación de comisión de cada retiro |
| totalNetworkFee | Suma de todas las comisiones de red |
| totalNetworkFeeInUSD | Comisión de red total en USD |
| totalTransactionFee | Suma de todas las comisiones de transacción |
| nativeBalance | Saldo actual del token nativo |
| estimatedArrivalTime | Tiempo total (suma de los tiempos individuales, 30 s cada uno) |
| errors | Array con las estimaciones que fallaron |
Reglas de validación
| Regla | Valor |
|---|---|
| Tamaño máximo del lote | 20 operaciones |
| Tamaño mínimo del lote | 1 operación |
Casos de uso
- Retiro a varios destinatarios: estima las comisiones de envíos a varias direcciones
- Pagos masivos: calcula el coste total de las operaciones de pago por lotes
- Planificación presupuestaria: planifica los retiros con estimaciones de comisión precisas
Autorizaciones
Parámetros de ruta
Ejemplo:
"YOUR_WALLET_ID"
Ejemplo:
"ADDRESS_ID"
Cuerpo
application/json
The destination wallet address used for fee estimation. 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
Ejemplo:
[
{
"address": "0xRecipient1Address",
"amount": "10.5",
"id": "{{assetId1}}"
},
{
"address": "0xRecipient2Address",
"amount": "25.0",
"id": "{{assetId2}}"
}
]

