curl --request GET \
--url https://test.deribit.com/api/v2/private/coinbase/estimate_withdrawal_fee \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 42,
"method": "private/coinbase/estimate_withdrawal_fee",
"params": {
"currency": "BTC",
"network_name": "networks/bitcoin-mainnet"
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/coinbase/estimate_withdrawal_fee"
payload = {
"jsonrpc": "2.0",
"id": 42,
"method": "private/coinbase/estimate_withdrawal_fee",
"params": {
"currency": "BTC",
"network_name": "networks/bitcoin-mainnet"
}
}
headers = {"Content-Type": "application/json"}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
jsonrpc: '2.0',
id: 42,
method: 'private/coinbase/estimate_withdrawal_fee',
params: {currency: 'BTC', network_name: 'networks/bitcoin-mainnet'}
})
};
fetch('https://test.deribit.com/api/v2/private/coinbase/estimate_withdrawal_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://test.deribit.com/api/v2/private/coinbase/estimate_withdrawal_fee",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'id' => 42,
'method' => 'private/coinbase/estimate_withdrawal_fee',
'params' => [
'currency' => 'BTC',
'network_name' => 'networks/bitcoin-mainnet'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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://test.deribit.com/api/v2/private/coinbase/estimate_withdrawal_fee"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 42,\n \"method\": \"private/coinbase/estimate_withdrawal_fee\",\n \"params\": {\n \"currency\": \"BTC\",\n \"network_name\": \"networks/bitcoin-mainnet\"\n }\n}")
req, _ := http.NewRequest("GET", url, payload)
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.get("https://test.deribit.com/api/v2/private/coinbase/estimate_withdrawal_fee")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 42,\n \"method\": \"private/coinbase/estimate_withdrawal_fee\",\n \"params\": {\n \"currency\": \"BTC\",\n \"network_name\": \"networks/bitcoin-mainnet\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/coinbase/estimate_withdrawal_fee")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"id\": 42,\n \"method\": \"private/coinbase/estimate_withdrawal_fee\",\n \"params\": {\n \"currency\": \"BTC\",\n \"network_name\": \"networks/bitcoin-mainnet\"\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 42,
"result": {
"estimated_fee": "0.0005",
"estimated_fee_before_subsidy": "0.001",
"expires_at": "2026-04-06T12:00:00Z"
}
}private/coinbase/estimate_withdrawal_fee
Estimates the network fee for a withdrawal on the given currency and network. Available to institutional Coinbase wallet type accounts only.
The network_name parameter is not validated against coinbase_networks; it is passed through to the custodian. The networks available for each currency are returned by public/get_currencies in the coinbase_networks field.
๐ Related Article: Managing Withdrawals
Scope: wallet:read
curl --request GET \
--url https://test.deribit.com/api/v2/private/coinbase/estimate_withdrawal_fee \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 42,
"method": "private/coinbase/estimate_withdrawal_fee",
"params": {
"currency": "BTC",
"network_name": "networks/bitcoin-mainnet"
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/coinbase/estimate_withdrawal_fee"
payload = {
"jsonrpc": "2.0",
"id": 42,
"method": "private/coinbase/estimate_withdrawal_fee",
"params": {
"currency": "BTC",
"network_name": "networks/bitcoin-mainnet"
}
}
headers = {"Content-Type": "application/json"}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
jsonrpc: '2.0',
id: 42,
method: 'private/coinbase/estimate_withdrawal_fee',
params: {currency: 'BTC', network_name: 'networks/bitcoin-mainnet'}
})
};
fetch('https://test.deribit.com/api/v2/private/coinbase/estimate_withdrawal_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://test.deribit.com/api/v2/private/coinbase/estimate_withdrawal_fee",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'id' => 42,
'method' => 'private/coinbase/estimate_withdrawal_fee',
'params' => [
'currency' => 'BTC',
'network_name' => 'networks/bitcoin-mainnet'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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://test.deribit.com/api/v2/private/coinbase/estimate_withdrawal_fee"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 42,\n \"method\": \"private/coinbase/estimate_withdrawal_fee\",\n \"params\": {\n \"currency\": \"BTC\",\n \"network_name\": \"networks/bitcoin-mainnet\"\n }\n}")
req, _ := http.NewRequest("GET", url, payload)
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.get("https://test.deribit.com/api/v2/private/coinbase/estimate_withdrawal_fee")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 42,\n \"method\": \"private/coinbase/estimate_withdrawal_fee\",\n \"params\": {\n \"currency\": \"BTC\",\n \"network_name\": \"networks/bitcoin-mainnet\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/coinbase/estimate_withdrawal_fee")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"id\": 42,\n \"method\": \"private/coinbase/estimate_withdrawal_fee\",\n \"params\": {\n \"currency\": \"BTC\",\n \"network_name\": \"networks/bitcoin-mainnet\"\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 42,
"result": {
"estimated_fee": "0.0005",
"estimated_fee_before_subsidy": "0.001",
"expires_at": "2026-04-06T12:00:00Z"
}
}Query Parameters
The currency symbol (any portfolio currency)
Currency, i.e "BTC", "ETH", "USDC"
BTC, ETH, USDC, USDT, EURR "BTC"
Network resource name (e.g. "networks/bitcoin-mainnet"). Passed through to the custodian; not validated against coinbase_networks. Use a resource_name from public/get_currencies.
"networks/bitcoin-mainnet"
Response
Success response
The JSON-RPC version (2.0)
2.0 Hide child attributes
Hide child attributes
Estimated network fee for the withdrawal, in the given currency
"0.0005"
Estimated network fee before subsidy, in the given currency
"0.001"
Timestamp when the fee estimate expires (RFC 3339), null when not provided
"2026-04-06T12:00:00Z"
The id that was sent in the request
Related topics
Coinbase Wallet APIprivate/withdrawprivate/set_coinbase_subaccount_withdrawals_allowedprivate/cancel_withdrawalpublic/get_currenciesWas this page helpful?