public/get_risk_universes
Returns every risk universe (the isolated risk-containment boundaries trades never cross), each with its display name and description, its managers — at most one Standard (SM) and one Portfolio (PM2), each listing the derivative instruments it risk-prices and the collateral assets it accepts with their margin discounts and deposit metadata — and its Security Module. The one call that answers which universe and manager to choose: pick a universe, pick a manager in it, and pass its manager_id when depositing to a new subaccount (the accepted collateral entries carry the asset address for the deposit). The no-margin fallback universe (id 0) is included; it custodies dead-lettered deposits and lists no tradeable instruments. Public endpoint, no authentication required.
curl --request POST \
--url https://api.derive.xyz/v3/public/get_risk_universes \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.derive.xyz/v3/public/get_risk_universes"
payload = {}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.derive.xyz/v3/public/get_risk_universes', 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://api.derive.xyz/v3/public/get_risk_universes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
]),
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://api.derive.xyz/v3/public/get_risk_universes"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", 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.post("https://api.derive.xyz/v3/public/get_risk_universes")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.derive.xyz/v3/public/get_risk_universes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body[
{
"managers": [
{
"collaterals": [
{
"address": "<string>",
"erc20": {
"decimals": 1,
"underlying_erc20": "<string>"
},
"im_discount": "<string>",
"min_deposit_usd": "<string>",
"mm_discount": "<string>",
"name": "<string>"
}
],
"instruments": [
"<string>"
],
"manager_id": 1,
"margin_type": "SM"
}
],
"risk_universe_id": 1,
"security_module": {
"cash_asset": "<string>",
"cash_currency": "<string>",
"subaccount_id": 1
},
"description": "<string>",
"name": "<string>"
}
]Body
This method takes no parameters; send an empty object {}.
Braced rather than a unit struct so schemars emits {"type": "object"}: a unit struct emits null, which contradicts the line above and forced every generated client to cast around the params type.
Response
Success
The universe's managers (at most one Standard and one Portfolio), each with the instruments it risk-prices and the collaterals it accepts.
Show child attributes
Show child attributes
x >= 0The universe's Security Module: the subaccount whose funds absorb insolvent losses before any socialization within the universe.
Show child attributes
Show child attributes
Short description of the universe; null until set by the exchange.
Display name (e.g. "PRIME"), always uppercase; null until set by the exchange.
curl --request POST \
--url https://api.derive.xyz/v3/public/get_risk_universes \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.derive.xyz/v3/public/get_risk_universes"
payload = {}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.derive.xyz/v3/public/get_risk_universes', 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://api.derive.xyz/v3/public/get_risk_universes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
]),
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://api.derive.xyz/v3/public/get_risk_universes"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", 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.post("https://api.derive.xyz/v3/public/get_risk_universes")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.derive.xyz/v3/public/get_risk_universes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body[
{
"managers": [
{
"collaterals": [
{
"address": "<string>",
"erc20": {
"decimals": 1,
"underlying_erc20": "<string>"
},
"im_discount": "<string>",
"min_deposit_usd": "<string>",
"mm_discount": "<string>",
"name": "<string>"
}
],
"instruments": [
"<string>"
],
"manager_id": 1,
"margin_type": "SM"
}
],
"risk_universe_id": 1,
"security_module": {
"cash_asset": "<string>",
"cash_currency": "<string>",
"subaccount_id": 1
},
"description": "<string>",
"name": "<string>"
}
]