curl --request POST \
--url https://api.hotstuff.trade/info \
--header 'Content-Type: application/json' \
--data '{
"method": "instruments",
"params": {
"type": "perps"
}
}'
import requests
url = "https://api.hotstuff.trade/info"
payload = {
"method": "instruments",
"params": {
"type": "perps"
}
}
response = requests.post(url, json=payload)
print(response.json())
const url = "https://api.hotstuff.trade/info";
const payload = {
method: "instruments",
params: {
type: "perps",
},
};
fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data));
<?php
$url = "https://api.hotstuff.trade/info";
$payload = json_encode([
"method" => "instruments",
"params" => [
"type" => "perps"
]
]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
?>
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.hotstuff.trade/info"
payload := map[string]interface{}{
"method": "instruments",
"params": map[string]string{
"type": "perps",
},
}
jsonData, _ := json.Marshal(payload)
resp, _ := http.Post(url, "application/json", bytes.NewBuffer(jsonData))
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.*;
URL url = new URL("https://api.hotstuff.trade/info");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
String jsonPayload = "{\"method\":\"instruments\",\"params\":{\"type\":\"perps\"}}";
OutputStream os = conn.getOutputStream();
os.write(jsonPayload.getBytes());
os.flush();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String response = in.readLine();
System.out.println(response);
require 'net/http'
require 'json'
uri = URI('https://api.hotstuff.trade/info')
payload = {
method: "instruments",
params: {
type: "perps"
}
}
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path, 'Content-Type' => 'application/json')
request.body = payload.to_json
response = http.request(request)
puts JSON.parse(response.body)
{
"perps": [
{
"id": 2,
"name": "ETH-PERP",
"price_index": "ETH/USDC",
"lot_size": 0.0001,
"tick_size": 0.1,
"settlement_currency": 1,
"only_isolated": false,
"max_leverage": 25,
"delisted": false,
"min_notional_usd": 10,
"margin_tiers": [
{
"notional_usd_threshold": "10000000",
"max_leverage": 25,
"mmr": 0.02,
"mmd": 0
},
{
"notional_usd_threshold": "9223372036854.775",
"max_leverage": 3,
"mmr": 0.166666,
"mmd": 1466660
}
],
"listed_at_block_timestamp": 1764944554400
},
{
"id": 4,
"name": "SOL-PERP",
"price_index": "SOL/USDC",
"lot_size": 0.01,
"tick_size": 0.01,
"settlement_currency": 1,
"only_isolated": false,
"max_leverage": 10,
"delisted": false,
"min_notional_usd": 10,
"margin_tiers": [
{
"notional_usd_threshold": "10000000",
"max_leverage": 10,
"mmr": 0.05,
"mmd": 0
},
{
"notional_usd_threshold": "9223372036854.775",
"max_leverage": 3,
"mmr": 0.166666,
"mmd": 1166660
}
],
"listed_at_block_timestamp": 1765288335423
}
],
"spot": [
{
"id": 3,
"name": "USDT/USDC",
"price_index": "USDT/USDC",
"lot_size": 1,
"tick_size": 0.0001,
"base_asset": 2,
"quote_asset": 1,
"stable_pair": true,
"min_size_in_quote_asset": 1,
"listed_at_block_timestamp": 1765205351733
}
]
}{
"error": "<error message>"
}Global
instruments
Send POST request to /info with method: “instruments”
POST
/
info
curl --request POST \
--url https://api.hotstuff.trade/info \
--header 'Content-Type: application/json' \
--data '{
"method": "instruments",
"params": {
"type": "perps"
}
}'
import requests
url = "https://api.hotstuff.trade/info"
payload = {
"method": "instruments",
"params": {
"type": "perps"
}
}
response = requests.post(url, json=payload)
print(response.json())
const url = "https://api.hotstuff.trade/info";
const payload = {
method: "instruments",
params: {
type: "perps",
},
};
fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data));
<?php
$url = "https://api.hotstuff.trade/info";
$payload = json_encode([
"method" => "instruments",
"params" => [
"type" => "perps"
]
]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
?>
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.hotstuff.trade/info"
payload := map[string]interface{}{
"method": "instruments",
"params": map[string]string{
"type": "perps",
},
}
jsonData, _ := json.Marshal(payload)
resp, _ := http.Post(url, "application/json", bytes.NewBuffer(jsonData))
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.*;
URL url = new URL("https://api.hotstuff.trade/info");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
String jsonPayload = "{\"method\":\"instruments\",\"params\":{\"type\":\"perps\"}}";
OutputStream os = conn.getOutputStream();
os.write(jsonPayload.getBytes());
os.flush();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String response = in.readLine();
System.out.println(response);
require 'net/http'
require 'json'
uri = URI('https://api.hotstuff.trade/info')
payload = {
method: "instruments",
params: {
type: "perps"
}
}
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path, 'Content-Type' => 'application/json')
request.body = payload.to_json
response = http.request(request)
puts JSON.parse(response.body)
{
"perps": [
{
"id": 2,
"name": "ETH-PERP",
"price_index": "ETH/USDC",
"lot_size": 0.0001,
"tick_size": 0.1,
"settlement_currency": 1,
"only_isolated": false,
"max_leverage": 25,
"delisted": false,
"min_notional_usd": 10,
"margin_tiers": [
{
"notional_usd_threshold": "10000000",
"max_leverage": 25,
"mmr": 0.02,
"mmd": 0
},
{
"notional_usd_threshold": "9223372036854.775",
"max_leverage": 3,
"mmr": 0.166666,
"mmd": 1466660
}
],
"listed_at_block_timestamp": 1764944554400
},
{
"id": 4,
"name": "SOL-PERP",
"price_index": "SOL/USDC",
"lot_size": 0.01,
"tick_size": 0.01,
"settlement_currency": 1,
"only_isolated": false,
"max_leverage": 10,
"delisted": false,
"min_notional_usd": 10,
"margin_tiers": [
{
"notional_usd_threshold": "10000000",
"max_leverage": 10,
"mmr": 0.05,
"mmd": 0
},
{
"notional_usd_threshold": "9223372036854.775",
"max_leverage": 3,
"mmr": 0.166666,
"mmd": 1166660
}
],
"listed_at_block_timestamp": 1765288335423
}
],
"spot": [
{
"id": 3,
"name": "USDT/USDC",
"price_index": "USDT/USDC",
"lot_size": 1,
"tick_size": 0.0001,
"base_asset": 2,
"quote_asset": 1,
"stable_pair": true,
"min_size_in_quote_asset": 1,
"listed_at_block_timestamp": 1765205351733
}
]
}{
"error": "<error message>"
}Retrieve information about available instruments in the system. Use this endpoint to discover what trading instruments are available.
curl --request POST \
--url https://api.hotstuff.trade/info \
--header 'Content-Type: application/json' \
--data '{
"method": "instruments",
"params": {
"type": "perps"
}
}'
import requests
url = "https://api.hotstuff.trade/info"
payload = {
"method": "instruments",
"params": {
"type": "perps"
}
}
response = requests.post(url, json=payload)
print(response.json())
const url = "https://api.hotstuff.trade/info";
const payload = {
method: "instruments",
params: {
type: "perps",
},
};
fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload),
})
.then((response) => response.json())
.then((data) => console.log(data));
<?php
$url = "https://api.hotstuff.trade/info";
$payload = json_encode([
"method" => "instruments",
"params" => [
"type" => "perps"
]
]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
?>
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.hotstuff.trade/info"
payload := map[string]interface{}{
"method": "instruments",
"params": map[string]string{
"type": "perps",
},
}
jsonData, _ := json.Marshal(payload)
resp, _ := http.Post(url, "application/json", bytes.NewBuffer(jsonData))
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.*;
URL url = new URL("https://api.hotstuff.trade/info");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
String jsonPayload = "{\"method\":\"instruments\",\"params\":{\"type\":\"perps\"}}";
OutputStream os = conn.getOutputStream();
os.write(jsonPayload.getBytes());
os.flush();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String response = in.readLine();
System.out.println(response);
require 'net/http'
require 'json'
uri = URI('https://api.hotstuff.trade/info')
payload = {
method: "instruments",
params: {
type: "perps"
}
}
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path, 'Content-Type' => 'application/json')
request.body = payload.to_json
response = http.request(request)
puts JSON.parse(response.body)