curl --request GET \
--url https://test.deribit.com/api/v2/private/update_in_address_book \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 42,
"method": "private/update_in_address_book",
"params": {
"currency": "BTC",
"type": "withdrawal",
"address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj",
"label": "Main address",
"beneficiary_vasp_name": "Money`s Gone",
"beneficiary_vasp_did": "did:example:123456789abcdefghi",
"beneficiary_first_name": "John",
"beneficiary_last_name": "Doe",
"beneficiary_address": "NL, Amsterdam, Street, 1",
"agreed": true,
"personal": false
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/update_in_address_book"
payload = {
"jsonrpc": "2.0",
"id": 42,
"method": "private/update_in_address_book",
"params": {
"currency": "BTC",
"type": "withdrawal",
"address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj",
"label": "Main address",
"beneficiary_vasp_name": "Money`s Gone",
"beneficiary_vasp_did": "did:example:123456789abcdefghi",
"beneficiary_first_name": "John",
"beneficiary_last_name": "Doe",
"beneficiary_address": "NL, Amsterdam, Street, 1",
"agreed": True,
"personal": False
}
}
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/update_in_address_book',
params: {
currency: 'BTC',
type: 'withdrawal',
address: 'bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj',
label: 'Main address',
beneficiary_vasp_name: 'Money`s Gone',
beneficiary_vasp_did: 'did:example:123456789abcdefghi',
beneficiary_first_name: 'John',
beneficiary_last_name: 'Doe',
beneficiary_address: 'NL, Amsterdam, Street, 1',
agreed: true,
personal: false
}
})
};
fetch('https://test.deribit.com/api/v2/private/update_in_address_book', 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/update_in_address_book",
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/update_in_address_book',
'params' => [
'currency' => 'BTC',
'type' => 'withdrawal',
'address' => 'bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj',
'label' => 'Main address',
'beneficiary_vasp_name' => 'Money`s Gone',
'beneficiary_vasp_did' => 'did:example:123456789abcdefghi',
'beneficiary_first_name' => 'John',
'beneficiary_last_name' => 'Doe',
'beneficiary_address' => 'NL, Amsterdam, Street, 1',
'agreed' => true,
'personal' => false
]
]),
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/update_in_address_book"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 42,\n \"method\": \"private/update_in_address_book\",\n \"params\": {\n \"currency\": \"BTC\",\n \"type\": \"withdrawal\",\n \"address\": \"bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj\",\n \"label\": \"Main address\",\n \"beneficiary_vasp_name\": \"Money`s Gone\",\n \"beneficiary_vasp_did\": \"did:example:123456789abcdefghi\",\n \"beneficiary_first_name\": \"John\",\n \"beneficiary_last_name\": \"Doe\",\n \"beneficiary_address\": \"NL, Amsterdam, Street, 1\",\n \"agreed\": true,\n \"personal\": false\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/update_in_address_book")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 42,\n \"method\": \"private/update_in_address_book\",\n \"params\": {\n \"currency\": \"BTC\",\n \"type\": \"withdrawal\",\n \"address\": \"bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj\",\n \"label\": \"Main address\",\n \"beneficiary_vasp_name\": \"Money`s Gone\",\n \"beneficiary_vasp_did\": \"did:example:123456789abcdefghi\",\n \"beneficiary_first_name\": \"John\",\n \"beneficiary_last_name\": \"Doe\",\n \"beneficiary_address\": \"NL, Amsterdam, Street, 1\",\n \"agreed\": true,\n \"personal\": false\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/update_in_address_book")
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/update_in_address_book\",\n \"params\": {\n \"currency\": \"BTC\",\n \"type\": \"withdrawal\",\n \"address\": \"bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj\",\n \"label\": \"Main address\",\n \"beneficiary_vasp_name\": \"Money`s Gone\",\n \"beneficiary_vasp_did\": \"did:example:123456789abcdefghi\",\n \"beneficiary_first_name\": \"John\",\n \"beneficiary_last_name\": \"Doe\",\n \"beneficiary_address\": \"NL, Amsterdam, Street, 1\",\n \"agreed\": true,\n \"personal\": false\n }\n}"
response = http.request(request)
puts response.read_bodyprivate/update_in_address_book
Updates beneficiary information for an address in the address book. This method allows you to add or modify beneficiary details required for compliance purposes when making withdrawals to certain addresses.
Coinbase wallet type
For Coinbase wallet type accounts the method behaves differently:
- Required parameters are
currency(portfolio currencies or"all") andtype, plus one ofaddressorid(the entry identifier returned byprivate/get_address_book). Usenetworkandtagtogether withaddressto disambiguate entries sharing the same address. typeaccepts onlywithdrawalandtransfer.labelis optional.- Travel rule data is provided with the fields
name,country,address,financial_institution,account,account_location,entity_type(organizationorindividual),wallet_type(exchangeorself_hosted) andis_selfinstead of the legacybeneficiary_*,agreedandpersonalfields. - The response contains the updated Coinbase address book entry object instead of
"ok".
๐ Related Article: Managing Withdrawals
Scope: wallet:read_write
curl --request GET \
--url https://test.deribit.com/api/v2/private/update_in_address_book \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 42,
"method": "private/update_in_address_book",
"params": {
"currency": "BTC",
"type": "withdrawal",
"address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj",
"label": "Main address",
"beneficiary_vasp_name": "Money`s Gone",
"beneficiary_vasp_did": "did:example:123456789abcdefghi",
"beneficiary_first_name": "John",
"beneficiary_last_name": "Doe",
"beneficiary_address": "NL, Amsterdam, Street, 1",
"agreed": true,
"personal": false
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/update_in_address_book"
payload = {
"jsonrpc": "2.0",
"id": 42,
"method": "private/update_in_address_book",
"params": {
"currency": "BTC",
"type": "withdrawal",
"address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj",
"label": "Main address",
"beneficiary_vasp_name": "Money`s Gone",
"beneficiary_vasp_did": "did:example:123456789abcdefghi",
"beneficiary_first_name": "John",
"beneficiary_last_name": "Doe",
"beneficiary_address": "NL, Amsterdam, Street, 1",
"agreed": True,
"personal": False
}
}
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/update_in_address_book',
params: {
currency: 'BTC',
type: 'withdrawal',
address: 'bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj',
label: 'Main address',
beneficiary_vasp_name: 'Money`s Gone',
beneficiary_vasp_did: 'did:example:123456789abcdefghi',
beneficiary_first_name: 'John',
beneficiary_last_name: 'Doe',
beneficiary_address: 'NL, Amsterdam, Street, 1',
agreed: true,
personal: false
}
})
};
fetch('https://test.deribit.com/api/v2/private/update_in_address_book', 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/update_in_address_book",
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/update_in_address_book',
'params' => [
'currency' => 'BTC',
'type' => 'withdrawal',
'address' => 'bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj',
'label' => 'Main address',
'beneficiary_vasp_name' => 'Money`s Gone',
'beneficiary_vasp_did' => 'did:example:123456789abcdefghi',
'beneficiary_first_name' => 'John',
'beneficiary_last_name' => 'Doe',
'beneficiary_address' => 'NL, Amsterdam, Street, 1',
'agreed' => true,
'personal' => false
]
]),
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/update_in_address_book"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 42,\n \"method\": \"private/update_in_address_book\",\n \"params\": {\n \"currency\": \"BTC\",\n \"type\": \"withdrawal\",\n \"address\": \"bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj\",\n \"label\": \"Main address\",\n \"beneficiary_vasp_name\": \"Money`s Gone\",\n \"beneficiary_vasp_did\": \"did:example:123456789abcdefghi\",\n \"beneficiary_first_name\": \"John\",\n \"beneficiary_last_name\": \"Doe\",\n \"beneficiary_address\": \"NL, Amsterdam, Street, 1\",\n \"agreed\": true,\n \"personal\": false\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/update_in_address_book")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 42,\n \"method\": \"private/update_in_address_book\",\n \"params\": {\n \"currency\": \"BTC\",\n \"type\": \"withdrawal\",\n \"address\": \"bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj\",\n \"label\": \"Main address\",\n \"beneficiary_vasp_name\": \"Money`s Gone\",\n \"beneficiary_vasp_did\": \"did:example:123456789abcdefghi\",\n \"beneficiary_first_name\": \"John\",\n \"beneficiary_last_name\": \"Doe\",\n \"beneficiary_address\": \"NL, Amsterdam, Street, 1\",\n \"agreed\": true,\n \"personal\": false\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/update_in_address_book")
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/update_in_address_book\",\n \"params\": {\n \"currency\": \"BTC\",\n \"type\": \"withdrawal\",\n \"address\": \"bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj\",\n \"label\": \"Main address\",\n \"beneficiary_vasp_name\": \"Money`s Gone\",\n \"beneficiary_vasp_did\": \"did:example:123456789abcdefghi\",\n \"beneficiary_first_name\": \"John\",\n \"beneficiary_last_name\": \"Doe\",\n \"beneficiary_address\": \"NL, Amsterdam, Street, 1\",\n \"agreed\": true,\n \"personal\": false\n }\n}"
response = http.request(request)
puts response.read_bodyQuery Parameters
The currency symbol. Legacy wallet type: wallet currencies only. Coinbase wallet type: any portfolio currency or "all".
Currency, i.e "BTC", "ETH", "USDC"
BTC, ETH, USDC, USDT, EURR "BTC"
Address book type
transfer, withdrawal, deposit_source "withdrawal"
Address in currency format, it must be in address book. Required for legacy wallet type. Coinbase wallet type: required when id is not provided; use network and tag to disambiguate entries sharing the same address. For Coinbase wallet type the same value is also stored as the beneficiary address travel rule field.
Address in proper format for currency
"bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj"
Blockchain network for the wallet operation, given as a network resource name (e.g. "networks/ethereum-mainnet"). Coinbase wallet type only. The networks available for each currency are returned by public/get_currencies in the coinbase_networks field. Required for operations that target an on-chain address or a deposit address; also used to disambiguate address book entries when the same address exists on multiple networks.
"networks/ethereum-mainnet"
Destination tag / memo for networks that support one. Coinbase wallet type only. Used together with address and network; also serves to disambiguate address book entries that share the same address.
Unique identifier (UUID7) of the address book entry, as returned in the id field of private/get_address_book results. Coinbase wallet type only. Can be used instead of address (with network and tag) to identify the entry.
"0190a1b2-7c3d-7e5f-8a9b-0c1d2e3f4a5b"
Label of the address book entry
"Main address"
Name of beneficiary VASP
"Moneys Gone"`
DID of beneficiary VASP
"did:example:123456789abcdefghi"
Website of the beneficiary VASP
First name of beneficiary (if beneficiary is a person) First name of the beneficiary (if beneficiary is a person)
"John"
First name of beneficiary (if beneficiary is a person) Last name of the beneficiary (if beneficiary is a person)
"Doe"
Beneficiary company name (if beneficiary is a company) Company name of the beneficiary (if beneficiary is a company)
"Company Name"
Geographical address of the beneficiary
"NL, Amsterdam, Street, 1"
Indicates that the user agreed to shared provided information with 3rd parties
true
The user confirms that he provided address belongs to him and he has access to it via an un-hosted wallet software
false
Full name of the beneficiary (person or organization). Coinbase wallet type only. Travel rule data.
"Alice Smith"
Country code of the beneficiary (ISO 3166-1 alpha-2). Coinbase wallet type only. Travel rule data.
"NL"
Name of the financial institution holding the beneficiary account. Coinbase wallet type only. Travel rule data.
Account identifier of the beneficiary at the financial institution. Coinbase wallet type only. Travel rule data.
Location of the beneficiary account. Coinbase wallet type only. Travel rule data.
Type of the beneficiary entity. Coinbase wallet type only. Travel rule data.
organization, individual Type of the beneficiary wallet. Coinbase wallet type only. Travel rule data.
exchange, self_hosted Indicates that the beneficiary is the account owner. Coinbase wallet type only. Travel rule data.
Was this page helpful?