Onchain Actions
private/get_withdraw_addresses
Lists the account’s withdraw addresses from private/register_withdraw_address: its EVM ones (their recipient is the wallet) and every withdraw address on its whitelisted_recipients. Each entry gives the destination chain id, the address kind (evm or solana), the recipient as registered and whether it is whitelisted, which session keys need before they can withdraw to it. A Solana address that was registered but never whitelisted is not listed.
POST
/
private
/
get_withdraw_addresses
private/get_withdraw_addresses
curl --request POST \
--url https://api.derive.xyz/v3/private/get_withdraw_addresses \
--header 'Content-Type: application/json' \
--data '
{
"wallet": "<string>"
}
'import requests
url = "https://api.derive.xyz/v3/private/get_withdraw_addresses"
payload = { "wallet": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({wallet: '<string>'})
};
fetch('https://api.derive.xyz/v3/private/get_withdraw_addresses', 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.derive.xyz/v3/private/get_withdraw_addresses",
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([
'wallet' => '<string>'
]),
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://api.derive.xyz/v3/private/get_withdraw_addresses"
payload := strings.NewReader("{\n \"wallet\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.derive.xyz/v3/private/get_withdraw_addresses")
.header("Content-Type", "application/json")
.body("{\n \"wallet\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.derive.xyz/v3/private/get_withdraw_addresses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"wallet\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"withdraw_addresses": [
{
"address_kind": "evm",
"chain_id": 1,
"recipient": "<string>",
"recipient_display": "<string>",
"whitelisted": true,
"withdraw_address": "<string>"
}
]
}Body
application/json
20-byte Ethereum address as a 0x-prefixed lowercase hex string.
Required string length:
42Pattern:
^0x[0-9a-fA-F]{40}$Response
Success
The account's EVM withdraw addresses (their recipient is the wallet) and every withdraw address on its whitelisted_recipients, oldest first.
Show child attributes
Show child attributes
private/get_withdraw_addresses
curl --request POST \
--url https://api.derive.xyz/v3/private/get_withdraw_addresses \
--header 'Content-Type: application/json' \
--data '
{
"wallet": "<string>"
}
'import requests
url = "https://api.derive.xyz/v3/private/get_withdraw_addresses"
payload = { "wallet": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({wallet: '<string>'})
};
fetch('https://api.derive.xyz/v3/private/get_withdraw_addresses', 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.derive.xyz/v3/private/get_withdraw_addresses",
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([
'wallet' => '<string>'
]),
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://api.derive.xyz/v3/private/get_withdraw_addresses"
payload := strings.NewReader("{\n \"wallet\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.derive.xyz/v3/private/get_withdraw_addresses")
.header("Content-Type", "application/json")
.body("{\n \"wallet\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.derive.xyz/v3/private/get_withdraw_addresses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"wallet\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"withdraw_addresses": [
{
"address_kind": "evm",
"chain_id": 1,
"recipient": "<string>",
"recipient_display": "<string>",
"whitelisted": true,
"withdraw_address": "<string>"
}
]
}