Master Wallet Network Fee
curl --request POST \
--url https://api.blockradar.co/v1/wallets/{walletId}/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}/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}/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}/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}/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}/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}/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",
"nativeBalanceInUSD": "4950.00",
"networkFee": "0.000000021112014"
},
"message": "Network fee fetched successfully",
"statusCode": 200
}Withdraw
Master Wallet Network Fee
This API endpoint is used to get the withdrawal network fee from a specific wallet.
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}
/
withdraw
/
network-fee
Master Wallet Network Fee
curl --request POST \
--url https://api.blockradar.co/v1/wallets/{walletId}/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}/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}/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}/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}/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}/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}/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",
"nativeBalanceInUSD": "4950.00",
"networkFee": "0.000000021112014"
},
"message": "Network fee fetched successfully",
"statusCode": 200
}Opérations par lot
Cet endpoint prend en charge les opérations par lot : vous pouvez estimer les frais de réseau de plusieurs retraits en un seul appel d’API.Format de la requête par lot
Pour estimer les frais de plusieurs retraits, utilisez le tableauassets :
{
"assets": [
{
"id": "asset-uuid-1",
"address": "0xRecipient1...",
"amount": "100"
},
{
"id": "asset-uuid-2",
"address": "0xRecipient2...",
"amount": "50"
}
]
}
Format de la réponse par lot
Renvoie les frais individuels ainsi que les totaux :{
"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": []
}
}
Champs de la réponse
| Champ | Description |
|---|---|
| fees | Tableau des estimations de frais par retrait |
| totalNetworkFee | Somme de tous les frais de réseau |
| totalNetworkFeeInUSD | Frais de réseau totaux en USD |
| totalTransactionFee | Somme de tous les frais de transaction |
| nativeBalance | Solde actuel du token natif |
| estimatedArrivalTime | Durée totale (somme des durées individuelles, 30 s chacune) |
| errors | Tableau des estimations en échec |
Règles de validation
| Règle | Valeur |
|---|---|
| Taille maximale du lot | 20 opérations |
| Taille minimale du lot | 1 opération |
Cas d’usage
- Retrait vers plusieurs destinataires : estimez les frais d’envoi vers plusieurs adresses
- Paiements groupés : calculez le coût total des opérations de paiement par lot
- Planification budgétaire : planifiez les retraits avec des estimations de frais précises
Autorisations
Paramètres de chemin
Exemple:
"{{walletId}}"
Corps
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
Exemple:
[
{
"address": "0xRecipient1Address",
"amount": "10.5",
"id": "{{assetId1}}"
},
{
"address": "0xRecipient2Address",
"amount": "25.0",
"id": "{{assetId2}}"
}
]

