curl --request GET \
--url https://drb.coinbase.com/api/v2/private/verify_block_trade \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "private/verify_block_trade",
"params": {
"nonce": "okpdjkdo",
"role": "maker",
"timestamp": 1565172650935,
"trades": [
{
"amount": 40,
"direction": "buy",
"instrument_name": "BTC-PERPETUAL",
"price": 11624
},
{
"amount": 1.2,
"direction": "buy",
"instrument_name": "BTC-9AUG19-10250-P",
"price": 0.0707
}
]
}
}
'import requests
url = "https://drb.coinbase.com/api/v2/private/verify_block_trade"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "private/verify_block_trade",
"params": {
"nonce": "okpdjkdo",
"role": "maker",
"timestamp": 1565172650935,
"trades": [
{
"amount": 40,
"direction": "buy",
"instrument_name": "BTC-PERPETUAL",
"price": 11624
},
{
"amount": 1.2,
"direction": "buy",
"instrument_name": "BTC-9AUG19-10250-P",
"price": 0.0707
}
]
}
}
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({
id: 1,
jsonrpc: '2.0',
method: 'private/verify_block_trade',
params: {
nonce: 'okpdjkdo',
role: 'maker',
timestamp: 1565172650935,
trades: [
{amount: 40, direction: 'buy', instrument_name: 'BTC-PERPETUAL', price: 11624},
{
amount: 1.2,
direction: 'buy',
instrument_name: 'BTC-9AUG19-10250-P',
price: 0.0707
}
]
}
})
};
fetch('https://drb.coinbase.com/api/v2/private/verify_block_trade', 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://drb.coinbase.com/api/v2/private/verify_block_trade",
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([
'id' => 1,
'jsonrpc' => '2.0',
'method' => 'private/verify_block_trade',
'params' => [
'nonce' => 'okpdjkdo',
'role' => 'maker',
'timestamp' => 1565172650935,
'trades' => [
[
'amount' => 40,
'direction' => 'buy',
'instrument_name' => 'BTC-PERPETUAL',
'price' => 11624
],
[
'amount' => 1.2,
'direction' => 'buy',
'instrument_name' => 'BTC-9AUG19-10250-P',
'price' => 0.0707
]
]
]
]),
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://drb.coinbase.com/api/v2/private/verify_block_trade"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/verify_block_trade\",\n \"params\": {\n \"nonce\": \"okpdjkdo\",\n \"role\": \"maker\",\n \"timestamp\": 1565172650935,\n \"trades\": [\n {\n \"amount\": 40,\n \"direction\": \"buy\",\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"price\": 11624\n },\n {\n \"amount\": 1.2,\n \"direction\": \"buy\",\n \"instrument_name\": \"BTC-9AUG19-10250-P\",\n \"price\": 0.0707\n }\n ]\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://drb.coinbase.com/api/v2/private/verify_block_trade")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/verify_block_trade\",\n \"params\": {\n \"nonce\": \"okpdjkdo\",\n \"role\": \"maker\",\n \"timestamp\": 1565172650935,\n \"trades\": [\n {\n \"amount\": 40,\n \"direction\": \"buy\",\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"price\": 11624\n },\n {\n \"amount\": 1.2,\n \"direction\": \"buy\",\n \"instrument_name\": \"BTC-9AUG19-10250-P\",\n \"price\": 0.0707\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://drb.coinbase.com/api/v2/private/verify_block_trade")
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 \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/verify_block_trade\",\n \"params\": {\n \"nonce\": \"okpdjkdo\",\n \"role\": \"maker\",\n \"timestamp\": 1565172650935,\n \"trades\": [\n {\n \"amount\": 40,\n \"direction\": \"buy\",\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"price\": 11624\n },\n {\n \"amount\": 1.2,\n \"direction\": \"buy\",\n \"instrument_name\": \"BTC-9AUG19-10250-P\",\n \"price\": 0.0707\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"result": {
"signature": "1565172710935.1ESE83qh.g6fbgRd4VWagaJz7xdi2WaV-q-d3J0njoz1jZavuRudZJZif9uH8XdUAx1LHsu0E3e0ZG_xe1UPYlwo41xRVrkWU6OMgygDRafUkEmBuk9iLqjc9rh4"
}
}private/verify_block_trade
Verifies and creates a block trade signature. This is the first step in the block trade workflow - the first party calls this method to generate a signature that must be shared with the second party.
Note: In the API, the direction field is always expressed from the maker’s perspective. This means that when you accept a block trade as a taker, the direction shown in the API represents the opposite side of your trade. For example, if you are buying puts as a taker, the API will show the operation as a “sell put” (maker’s perspective), and you will be verifying and accepting a “sell put” block trade.
📖 Related Article: Block Trading
Scope: rat#trade or wallet:buys:create
curl --request GET \
--url https://drb.coinbase.com/api/v2/private/verify_block_trade \
--header 'Content-Type: application/json' \
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "private/verify_block_trade",
"params": {
"nonce": "okpdjkdo",
"role": "maker",
"timestamp": 1565172650935,
"trades": [
{
"amount": 40,
"direction": "buy",
"instrument_name": "BTC-PERPETUAL",
"price": 11624
},
{
"amount": 1.2,
"direction": "buy",
"instrument_name": "BTC-9AUG19-10250-P",
"price": 0.0707
}
]
}
}
'import requests
url = "https://drb.coinbase.com/api/v2/private/verify_block_trade"
payload = {
"id": 1,
"jsonrpc": "2.0",
"method": "private/verify_block_trade",
"params": {
"nonce": "okpdjkdo",
"role": "maker",
"timestamp": 1565172650935,
"trades": [
{
"amount": 40,
"direction": "buy",
"instrument_name": "BTC-PERPETUAL",
"price": 11624
},
{
"amount": 1.2,
"direction": "buy",
"instrument_name": "BTC-9AUG19-10250-P",
"price": 0.0707
}
]
}
}
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({
id: 1,
jsonrpc: '2.0',
method: 'private/verify_block_trade',
params: {
nonce: 'okpdjkdo',
role: 'maker',
timestamp: 1565172650935,
trades: [
{amount: 40, direction: 'buy', instrument_name: 'BTC-PERPETUAL', price: 11624},
{
amount: 1.2,
direction: 'buy',
instrument_name: 'BTC-9AUG19-10250-P',
price: 0.0707
}
]
}
})
};
fetch('https://drb.coinbase.com/api/v2/private/verify_block_trade', 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://drb.coinbase.com/api/v2/private/verify_block_trade",
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([
'id' => 1,
'jsonrpc' => '2.0',
'method' => 'private/verify_block_trade',
'params' => [
'nonce' => 'okpdjkdo',
'role' => 'maker',
'timestamp' => 1565172650935,
'trades' => [
[
'amount' => 40,
'direction' => 'buy',
'instrument_name' => 'BTC-PERPETUAL',
'price' => 11624
],
[
'amount' => 1.2,
'direction' => 'buy',
'instrument_name' => 'BTC-9AUG19-10250-P',
'price' => 0.0707
]
]
]
]),
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://drb.coinbase.com/api/v2/private/verify_block_trade"
payload := strings.NewReader("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/verify_block_trade\",\n \"params\": {\n \"nonce\": \"okpdjkdo\",\n \"role\": \"maker\",\n \"timestamp\": 1565172650935,\n \"trades\": [\n {\n \"amount\": 40,\n \"direction\": \"buy\",\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"price\": 11624\n },\n {\n \"amount\": 1.2,\n \"direction\": \"buy\",\n \"instrument_name\": \"BTC-9AUG19-10250-P\",\n \"price\": 0.0707\n }\n ]\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://drb.coinbase.com/api/v2/private/verify_block_trade")
.header("Content-Type", "application/json")
.body("{\n \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/verify_block_trade\",\n \"params\": {\n \"nonce\": \"okpdjkdo\",\n \"role\": \"maker\",\n \"timestamp\": 1565172650935,\n \"trades\": [\n {\n \"amount\": 40,\n \"direction\": \"buy\",\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"price\": 11624\n },\n {\n \"amount\": 1.2,\n \"direction\": \"buy\",\n \"instrument_name\": \"BTC-9AUG19-10250-P\",\n \"price\": 0.0707\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://drb.coinbase.com/api/v2/private/verify_block_trade")
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 \"id\": 1,\n \"jsonrpc\": \"2.0\",\n \"method\": \"private/verify_block_trade\",\n \"params\": {\n \"nonce\": \"okpdjkdo\",\n \"role\": \"maker\",\n \"timestamp\": 1565172650935,\n \"trades\": [\n {\n \"amount\": 40,\n \"direction\": \"buy\",\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"price\": 11624\n },\n {\n \"amount\": 1.2,\n \"direction\": \"buy\",\n \"instrument_name\": \"BTC-9AUG19-10250-P\",\n \"price\": 0.0707\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"result": {
"signature": "1565172710935.1ESE83qh.g6fbgRd4VWagaJz7xdi2WaV-q-d3J0njoz1jZavuRudZJZif9uH8XdUAx1LHsu0E3e0ZG_xe1UPYlwo41xRVrkWU6OMgygDRafUkEmBuk9iLqjc9rh4"
}
}Query Parameters
Timestamp, shared with other party (milliseconds since the UNIX epoch) The timestamp (milliseconds since the Unix epoch)
1536569522277
Nonce
"bF1_gfgcsd"
Describes if user wants to be maker or taker of trades
Trade role of the user: maker or taker
maker, taker List of trades for block trade
Show child attributes
Show child attributes
Was this page helpful?