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
}Operações em lote
Este endpoint suporta operações em lote: você pode estimar as taxas de rede de vários saques a partir de um child address específico em uma única chamada de API.Formato da requisição em lote
Para estimar as taxas de vários saques, use o arrayassets:
{
"assets": [
{
"id": "asset-uuid-1",
"address": "0xRecipient1...",
"amount": "100"
},
{
"id": "asset-uuid-2",
"address": "0xRecipient2...",
"amount": "50"
}
]
}
Formato da resposta em lote
Retorna as taxas individuais e os totais:{
"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 da resposta
| Campo | Descrição |
|---|---|
| fees | Array com a estimativa de taxa de cada saque |
| totalNetworkFee | Soma de todas as taxas de rede |
| totalNetworkFeeInUSD | Taxa de rede total em USD |
| totalTransactionFee | Soma de todas as taxas de transação |
| nativeBalance | Saldo atual do token nativo |
| estimatedArrivalTime | Tempo total (soma dos tempos individuais, 30 s cada) |
| errors | Array com as estimativas que falharam |
Regras de validação
| Regra | Valor |
|---|---|
| Tamanho máximo do lote | 20 operações |
| Tamanho mínimo do lote | 1 operação |
Casos de uso
- Saque para vários destinatários: estime as taxas de envios para vários endereços
- Pagamentos em massa: calcule o custo total das operações de pagamento em lote
- Planejamento de orçamento: planeje os saques com estimativas de taxa precisas
Autorizações
Parâmetros de caminho
Exemplo:
"YOUR_WALLET_ID"
Exemplo:
"ADDRESS_ID"
Corpo
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
Exemplo:
[
{
"address": "0xRecipient1Address",
"amount": "10.5",
"id": "{{assetId1}}"
},
{
"address": "0xRecipient2Address",
"amount": "25.0",
"id": "{{assetId2}}"
}
]

