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
}
批量操作
该端点支持批量操作,您可以在一次 API 调用中估算多笔提现的网络费用。批量请求格式
如需估算多笔提现的费用,请使用assets 数组:
{
"assets": [
{
"id": "asset-uuid-1",
"address": "0xRecipient1...",
"amount": "100"
},
{
"id": "asset-uuid-2",
"address": "0xRecipient2...",
"amount": "50"
}
]
}
批量响应格式
返回各项费用及合计:{
"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": []
}
}
响应字段
| 字段 | 说明 |
|---|---|
| fees | 每笔提现的费用估算数组 |
| totalNetworkFee | 所有网络费用的总和 |
| totalNetworkFeeInUSD | 网络费用总额(USD) |
| totalTransactionFee | 所有交易手续费的总和 |
| nativeBalance | 当前原生代币余额 |
| estimatedArrivalTime | 总时长(各项时长之和,每项 30 秒) |
| errors | 估算失败项的数组 |
校验规则
| 规则 | 值 |
|---|---|
| 单批最大数量 | 20 个操作 |
| 单批最小数量 | 1 个操作 |
使用场景
- 多收款方提现:估算向多个地址转账的费用
- 批量付款:计算批量支付操作的总成本
- 预算规划:基于准确的费用估算安排提现
授权
路径参数
示例:
"{{walletId}}"
请求体
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
示例:
[ { "address": "0xRecipient1Address", "amount": "10.5", "id": "{{assetId1}}" }, { "address": "0xRecipient2Address", "amount": "25.0", "id": "{{assetId2}}" } ]

