curl --request GET \
--url https://test.deribit.com/api/v2/private/verify_block_trade \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 1,
"method": "private/verify_block_trade",
"params": {
"nonce": "okpdjkdo",
"timestamp": 1565172650935,
"role": "maker",
"trades": [
{
"instrument_name": "BTC-PERPETUAL",
"direction": "buy",
"price": 11624,
"amount": 40
},
{
"instrument_name": "BTC-9AUG19-10250-P",
"direction": "buy",
"amount": 1.2,
"price": 0.0707
}
]
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/verify_block_trade"
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "private/verify_block_trade",
"params": {
"nonce": "okpdjkdo",
"timestamp": 1565172650935,
"role": "maker",
"trades": [
{
"instrument_name": "BTC-PERPETUAL",
"direction": "buy",
"price": 11624,
"amount": 40
},
{
"instrument_name": "BTC-9AUG19-10250-P",
"direction": "buy",
"amount": 1.2,
"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({
jsonrpc: '2.0',
id: 1,
method: 'private/verify_block_trade',
params: {
nonce: 'okpdjkdo',
timestamp: 1565172650935,
role: 'maker',
trades: [
{instrument_name: 'BTC-PERPETUAL', direction: 'buy', price: 11624, amount: 40},
{
instrument_name: 'BTC-9AUG19-10250-P',
direction: 'buy',
amount: 1.2,
price: 0.0707
}
]
}
})
};
fetch('https://test.deribit.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://test.deribit.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([
'jsonrpc' => '2.0',
'id' => 1,
'method' => 'private/verify_block_trade',
'params' => [
'nonce' => 'okpdjkdo',
'timestamp' => 1565172650935,
'role' => 'maker',
'trades' => [
[
'instrument_name' => 'BTC-PERPETUAL',
'direction' => 'buy',
'price' => 11624,
'amount' => 40
],
[
'instrument_name' => 'BTC-9AUG19-10250-P',
'direction' => 'buy',
'amount' => 1.2,
'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://test.deribit.com/api/v2/private/verify_block_trade"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"private/verify_block_trade\",\n \"params\": {\n \"nonce\": \"okpdjkdo\",\n \"timestamp\": 1565172650935,\n \"role\": \"maker\",\n \"trades\": [\n {\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"direction\": \"buy\",\n \"price\": 11624,\n \"amount\": 40\n },\n {\n \"instrument_name\": \"BTC-9AUG19-10250-P\",\n \"direction\": \"buy\",\n \"amount\": 1.2,\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://test.deribit.com/api/v2/private/verify_block_trade")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"private/verify_block_trade\",\n \"params\": {\n \"nonce\": \"okpdjkdo\",\n \"timestamp\": 1565172650935,\n \"role\": \"maker\",\n \"trades\": [\n {\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"direction\": \"buy\",\n \"price\": 11624,\n \"amount\": 40\n },\n {\n \"instrument_name\": \"BTC-9AUG19-10250-P\",\n \"direction\": \"buy\",\n \"amount\": 1.2,\n \"price\": 0.0707\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.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 \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"private/verify_block_trade\",\n \"params\": {\n \"nonce\": \"okpdjkdo\",\n \"timestamp\": 1565172650935,\n \"role\": \"maker\",\n \"trades\": [\n {\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"direction\": \"buy\",\n \"price\": 11624,\n \"amount\": 40\n },\n {\n \"instrument_name\": \"BTC-9AUG19-10250-P\",\n \"direction\": \"buy\",\n \"amount\": 1.2,\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: block_trade:read
curl --request GET \
--url https://test.deribit.com/api/v2/private/verify_block_trade \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 1,
"method": "private/verify_block_trade",
"params": {
"nonce": "okpdjkdo",
"timestamp": 1565172650935,
"role": "maker",
"trades": [
{
"instrument_name": "BTC-PERPETUAL",
"direction": "buy",
"price": 11624,
"amount": 40
},
{
"instrument_name": "BTC-9AUG19-10250-P",
"direction": "buy",
"amount": 1.2,
"price": 0.0707
}
]
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/verify_block_trade"
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "private/verify_block_trade",
"params": {
"nonce": "okpdjkdo",
"timestamp": 1565172650935,
"role": "maker",
"trades": [
{
"instrument_name": "BTC-PERPETUAL",
"direction": "buy",
"price": 11624,
"amount": 40
},
{
"instrument_name": "BTC-9AUG19-10250-P",
"direction": "buy",
"amount": 1.2,
"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({
jsonrpc: '2.0',
id: 1,
method: 'private/verify_block_trade',
params: {
nonce: 'okpdjkdo',
timestamp: 1565172650935,
role: 'maker',
trades: [
{instrument_name: 'BTC-PERPETUAL', direction: 'buy', price: 11624, amount: 40},
{
instrument_name: 'BTC-9AUG19-10250-P',
direction: 'buy',
amount: 1.2,
price: 0.0707
}
]
}
})
};
fetch('https://test.deribit.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://test.deribit.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([
'jsonrpc' => '2.0',
'id' => 1,
'method' => 'private/verify_block_trade',
'params' => [
'nonce' => 'okpdjkdo',
'timestamp' => 1565172650935,
'role' => 'maker',
'trades' => [
[
'instrument_name' => 'BTC-PERPETUAL',
'direction' => 'buy',
'price' => 11624,
'amount' => 40
],
[
'instrument_name' => 'BTC-9AUG19-10250-P',
'direction' => 'buy',
'amount' => 1.2,
'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://test.deribit.com/api/v2/private/verify_block_trade"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"private/verify_block_trade\",\n \"params\": {\n \"nonce\": \"okpdjkdo\",\n \"timestamp\": 1565172650935,\n \"role\": \"maker\",\n \"trades\": [\n {\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"direction\": \"buy\",\n \"price\": 11624,\n \"amount\": 40\n },\n {\n \"instrument_name\": \"BTC-9AUG19-10250-P\",\n \"direction\": \"buy\",\n \"amount\": 1.2,\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://test.deribit.com/api/v2/private/verify_block_trade")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"private/verify_block_trade\",\n \"params\": {\n \"nonce\": \"okpdjkdo\",\n \"timestamp\": 1565172650935,\n \"role\": \"maker\",\n \"trades\": [\n {\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"direction\": \"buy\",\n \"price\": 11624,\n \"amount\": 40\n },\n {\n \"instrument_name\": \"BTC-9AUG19-10250-P\",\n \"direction\": \"buy\",\n \"amount\": 1.2,\n \"price\": 0.0707\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.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 \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"private/verify_block_trade\",\n \"params\": {\n \"nonce\": \"okpdjkdo\",\n \"timestamp\": 1565172650935,\n \"role\": \"maker\",\n \"trades\": [\n {\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"direction\": \"buy\",\n \"price\": 11624,\n \"amount\": 40\n },\n {\n \"instrument_name\": \"BTC-9AUG19-10250-P\",\n \"direction\": \"buy\",\n \"amount\": 1.2,\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
Hide child attributes
Hide child attributes
Instrument name
"BTC-PERPETUAL"
Price for trade
It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin.
Direction of trade from the maker perspective
buy, sell Response
Success response
The JSON-RPC version (2.0)
2.0 Hide child attributes
Hide child attributes
Signature of block trade
It is valid only for 5 minutes around given timestamp
"1565173369982.1M9tO0Q-.z9n9WyZUU5op9pEz6Jtd2CI71QxQMMsCZAexnIfK9HQRT1pKH3clxeIbY7Bqm-yMcWIoE3IfCDPW5VEdiN-6oS0YkKUyXPD500MUf3ULKhfkmH81EZs"
The id that was sent in the request
Was this page helpful?