Skip to main content
cURL
curl --request GET \
  --url https://test.deribit.com/api/v2/private/execute_block_trade \
  --header 'Content-Type: application/json' \
  --data '
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "private/execute_block_trade",
  "params": {
    "nonce": "bszyprbq",
    "timestamp": 1590485535899,
    "role": "maker",
    "trades": [
      {
        "instrument_name": "BTC-PERPETUAL",
        "direction": "sell",
        "price": 8900,
        "amount": 200000
      },
      {
        "instrument_name": "BTC-28MAY20-9000-C",
        "direction": "sell",
        "amount": 5,
        "price": 0.0133
      }
    ],
    "counterparty_signature": "1590485595899.1Mn52L_Q.lNyNBzXXo-_QBT_wDuMgnhA7uS9tBqdQ5TLN6rxbuoAiQhyaJYGJrm5IV_9enp9niY_x8D60AJLm3yEKPUY1Dv3T0TW0n5-ADPpJF7Fpj0eVDZpZ6QCdX8snBWrSJ0TtqevnO64RCBlN1dIm2T70PP9dlhiqPDAUYI4fpB1vLYI"
  }
}
'
import requests

url = "https://test.deribit.com/api/v2/private/execute_block_trade"

payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "private/execute_block_trade",
"params": {
"nonce": "bszyprbq",
"timestamp": 1590485535899,
"role": "maker",
"trades": [
{
"instrument_name": "BTC-PERPETUAL",
"direction": "sell",
"price": 8900,
"amount": 200000
},
{
"instrument_name": "BTC-28MAY20-9000-C",
"direction": "sell",
"amount": 5,
"price": 0.0133
}
],
"counterparty_signature": "1590485595899.1Mn52L_Q.lNyNBzXXo-_QBT_wDuMgnhA7uS9tBqdQ5TLN6rxbuoAiQhyaJYGJrm5IV_9enp9niY_x8D60AJLm3yEKPUY1Dv3T0TW0n5-ADPpJF7Fpj0eVDZpZ6QCdX8snBWrSJ0TtqevnO64RCBlN1dIm2T70PP9dlhiqPDAUYI4fpB1vLYI"
}
}
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/execute_block_trade',
params: {
nonce: 'bszyprbq',
timestamp: 1590485535899,
role: 'maker',
trades: [
{
instrument_name: 'BTC-PERPETUAL',
direction: 'sell',
price: 8900,
amount: 200000
},
{
instrument_name: 'BTC-28MAY20-9000-C',
direction: 'sell',
amount: 5,
price: 0.0133
}
],
counterparty_signature: '1590485595899.1Mn52L_Q.lNyNBzXXo-_QBT_wDuMgnhA7uS9tBqdQ5TLN6rxbuoAiQhyaJYGJrm5IV_9enp9niY_x8D60AJLm3yEKPUY1Dv3T0TW0n5-ADPpJF7Fpj0eVDZpZ6QCdX8snBWrSJ0TtqevnO64RCBlN1dIm2T70PP9dlhiqPDAUYI4fpB1vLYI'
}
})
};

fetch('https://test.deribit.com/api/v2/private/execute_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/execute_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/execute_block_trade',
'params' => [
'nonce' => 'bszyprbq',
'timestamp' => 1590485535899,
'role' => 'maker',
'trades' => [
[
'instrument_name' => 'BTC-PERPETUAL',
'direction' => 'sell',
'price' => 8900,
'amount' => 200000
],
[
'instrument_name' => 'BTC-28MAY20-9000-C',
'direction' => 'sell',
'amount' => 5,
'price' => 0.0133
]
],
'counterparty_signature' => '1590485595899.1Mn52L_Q.lNyNBzXXo-_QBT_wDuMgnhA7uS9tBqdQ5TLN6rxbuoAiQhyaJYGJrm5IV_9enp9niY_x8D60AJLm3yEKPUY1Dv3T0TW0n5-ADPpJF7Fpj0eVDZpZ6QCdX8snBWrSJ0TtqevnO64RCBlN1dIm2T70PP9dlhiqPDAUYI4fpB1vLYI'
]
]),
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/execute_block_trade"

payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"private/execute_block_trade\",\n \"params\": {\n \"nonce\": \"bszyprbq\",\n \"timestamp\": 1590485535899,\n \"role\": \"maker\",\n \"trades\": [\n {\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"direction\": \"sell\",\n \"price\": 8900,\n \"amount\": 200000\n },\n {\n \"instrument_name\": \"BTC-28MAY20-9000-C\",\n \"direction\": \"sell\",\n \"amount\": 5,\n \"price\": 0.0133\n }\n ],\n \"counterparty_signature\": \"1590485595899.1Mn52L_Q.lNyNBzXXo-_QBT_wDuMgnhA7uS9tBqdQ5TLN6rxbuoAiQhyaJYGJrm5IV_9enp9niY_x8D60AJLm3yEKPUY1Dv3T0TW0n5-ADPpJF7Fpj0eVDZpZ6QCdX8snBWrSJ0TtqevnO64RCBlN1dIm2T70PP9dlhiqPDAUYI4fpB1vLYI\"\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/execute_block_trade")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"private/execute_block_trade\",\n \"params\": {\n \"nonce\": \"bszyprbq\",\n \"timestamp\": 1590485535899,\n \"role\": \"maker\",\n \"trades\": [\n {\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"direction\": \"sell\",\n \"price\": 8900,\n \"amount\": 200000\n },\n {\n \"instrument_name\": \"BTC-28MAY20-9000-C\",\n \"direction\": \"sell\",\n \"amount\": 5,\n \"price\": 0.0133\n }\n ],\n \"counterparty_signature\": \"1590485595899.1Mn52L_Q.lNyNBzXXo-_QBT_wDuMgnhA7uS9tBqdQ5TLN6rxbuoAiQhyaJYGJrm5IV_9enp9niY_x8D60AJLm3yEKPUY1Dv3T0TW0n5-ADPpJF7Fpj0eVDZpZ6QCdX8snBWrSJ0TtqevnO64RCBlN1dIm2T70PP9dlhiqPDAUYI4fpB1vLYI\"\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://test.deribit.com/api/v2/private/execute_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/execute_block_trade\",\n \"params\": {\n \"nonce\": \"bszyprbq\",\n \"timestamp\": 1590485535899,\n \"role\": \"maker\",\n \"trades\": [\n {\n \"instrument_name\": \"BTC-PERPETUAL\",\n \"direction\": \"sell\",\n \"price\": 8900,\n \"amount\": 200000\n },\n {\n \"instrument_name\": \"BTC-28MAY20-9000-C\",\n \"direction\": \"sell\",\n \"amount\": 5,\n \"price\": 0.0133\n }\n ],\n \"counterparty_signature\": \"1590485595899.1Mn52L_Q.lNyNBzXXo-_QBT_wDuMgnhA7uS9tBqdQ5TLN6rxbuoAiQhyaJYGJrm5IV_9enp9niY_x8D60AJLm3yEKPUY1Dv3T0TW0n5-ADPpJF7Fpj0eVDZpZ6QCdX8snBWrSJ0TtqevnO64RCBlN1dIm2T70PP9dlhiqPDAUYI4fpB1vLYI\"\n }\n}"

response = http.request(request)
puts response.read_body
{
  "jsonrpc": "2.0",
  "result": {
    "trades": [
      {
        "trade_seq": 37,
        "trade_id": "92437",
        "timestamp": 1565089523719,
        "tick_direction": 3,
        "state": "filled",
        "price": 0.0001,
        "order_type": "limit",
        "order_id": "343062",
        "matching_id": null,
        "liquidity": "T",
        "iv": 0,
        "instrument_name": "BTC-9AUG19-10250-C",
        "index_price": 11738,
        "fee_currency": "BTC",
        "fee": 0.00025,
        "direction": "sell",
        "block_trade_id": "61",
        "amount": 10
      },
      {
        "trade_seq": 25350,
        "trade_id": "92435",
        "timestamp": 1565089523719,
        "tick_direction": 3,
        "state": "filled",
        "price": 11590,
        "order_type": "limit",
        "order_id": "343058",
        "matching_id": null,
        "liquidity": "T",
        "instrument_name": "BTC-PERPETUAL",
        "index_price": 11737.98,
        "fee_currency": "BTC",
        "fee": 0.00000164,
        "direction": "buy",
        "block_trade_id": "61",
        "amount": 190
      }
    ],
    "timestamp": 1565089523720,
    "id": "61"
  }
}

Query Parameters

timestamp
integer
required

Timestamp, shared with other party (milliseconds since the UNIX epoch) The timestamp (milliseconds since the Unix epoch)

Example:

1536569522277

nonce
string
required

Nonce

Example:

"bF1_gfgcsd"

role
enum<string>
required

Describes if user wants to be maker or taker of trades Trade role of the user: maker or taker

Available options:
maker,
taker
trades
object[]
required

List of trades for block trade

counterparty_signature
string
required

Signature of block trade generated by private/verify_block_trade_method Signature of block trade
It is valid only for 5 minutes around given timestamp

Example:

"1565173369982.1M9tO0Q-.z9n9WyZUU5op9pEz6Jtd2CI71QxQMMsCZAexnIfK9HQRT1pKH3clxeIbY7Bqm-yMcWIoE3IfCDPW5VEdiN-6oS0YkKUyXPD500MUf3ULKhfkmH81EZs"

Response

200 - application/json

Success response

jsonrpc
enum<string>
required

The JSON-RPC version (2.0)

Available options:
2.0
result
object
required
id
integer

The id that was sent in the request