curl --request GET \
--url https://test.deribit.com/api/v2/private/create_deposit_address \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 7538,
"method": "private/create_deposit_address",
"params": {
"currency": "BTC"
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/create_deposit_address"
payload = {
"jsonrpc": "2.0",
"id": 7538,
"method": "private/create_deposit_address",
"params": { "currency": "BTC" }
}
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: 7538,
method: 'private/create_deposit_address',
params: {currency: 'BTC'}
})
};
fetch('https://test.deribit.com/api/v2/private/create_deposit_address', 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/create_deposit_address",
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' => 7538,
'method' => 'private/create_deposit_address',
'params' => [
'currency' => 'BTC'
]
]),
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/create_deposit_address"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 7538,\n \"method\": \"private/create_deposit_address\",\n \"params\": {\n \"currency\": \"BTC\"\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/create_deposit_address")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 7538,\n \"method\": \"private/create_deposit_address\",\n \"params\": {\n \"currency\": \"BTC\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/create_deposit_address")
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\": 7538,\n \"method\": \"private/create_deposit_address\",\n \"params\": {\n \"currency\": \"BTC\"\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 3461,
"result": {
"address": "2N8udZGBc1hLRCFsU9kGwMPpmYUwMFTuCwB",
"creation_timestamp": 1550575165170,
"currency": "BTC",
"type": "deposit"
}
}private/create_deposit_address
Creates a new deposit address for the specified currency. Each currency can have multiple deposit addresses. Use this method to generate a new address for receiving deposits.
Coinbase wallet type
For Coinbase wallet type accounts the network parameter is required and selects the blockchain network of the deposit address. The networks available for each currency are returned by public/get_currencies in the coinbase_networks field; a network that is not configured for the currency is rejected. An optional label can be provided, defaulting to "deposit address". This method is available to institutional Coinbase accounts only.
Note:
For Bitcoin, a new address can be generated every 24 hours.
For ERC20, Solana and XRP only one address can be generated.
Note:
If an ERC20 address is generated, this address will be automatically added for every asset that uses ERC20 addresses.
๐ Related Article: Managing Deposits
Scope: wallet:read_write
curl --request GET \
--url https://test.deribit.com/api/v2/private/create_deposit_address \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 7538,
"method": "private/create_deposit_address",
"params": {
"currency": "BTC"
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/create_deposit_address"
payload = {
"jsonrpc": "2.0",
"id": 7538,
"method": "private/create_deposit_address",
"params": { "currency": "BTC" }
}
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: 7538,
method: 'private/create_deposit_address',
params: {currency: 'BTC'}
})
};
fetch('https://test.deribit.com/api/v2/private/create_deposit_address', 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/create_deposit_address",
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' => 7538,
'method' => 'private/create_deposit_address',
'params' => [
'currency' => 'BTC'
]
]),
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/create_deposit_address"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 7538,\n \"method\": \"private/create_deposit_address\",\n \"params\": {\n \"currency\": \"BTC\"\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/create_deposit_address")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 7538,\n \"method\": \"private/create_deposit_address\",\n \"params\": {\n \"currency\": \"BTC\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/create_deposit_address")
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\": 7538,\n \"method\": \"private/create_deposit_address\",\n \"params\": {\n \"currency\": \"BTC\"\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 3461,
"result": {
"address": "2N8udZGBc1hLRCFsU9kGwMPpmYUwMFTuCwB",
"creation_timestamp": 1550575165170,
"currency": "BTC",
"type": "deposit"
}
}Query Parameters
The currency symbol.
๐ Related Article: Using the currency Parameter
Currency, i.e "BTC", "ETH", "USDC"
BTC, ETH, USDC, USDT, EURR 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"
Label of the deposit address. Coinbase wallet type only. Label of the address book entry
"Main address"
Response
Success response
The JSON-RPC version (2.0)
2.0 Object if address is created, null otherwise
- Option 1
- Option 2
Hide child attributes
Hide child attributes
The timestamp (milliseconds since the Unix epoch)
1536569522277
Currency, i.e "BTC", "ETH", "USDC"
BTC, ETH, USDC, USDT, EURR Address in proper format for currency
"1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
Address type/purpose, allowed values : deposit
The id that was sent in the request
Was this page helpful?