perpDexs | Hyperliquid Info API
curl --request POST \
--url https://hypercore.goldrushdata.com/info \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "<string>"
}
'import requests
url = "https://hypercore.goldrushdata.com/info"
payload = { "type": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({type: '<string>'})
};
fetch('https://hypercore.goldrushdata.com/info', 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://hypercore.goldrushdata.com/info",
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([
'type' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://hypercore.goldrushdata.com/info"
payload := strings.NewReader("{\n \"type\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://hypercore.goldrushdata.com/info")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hypercore.goldrushdata.com/info")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"[0]": null,
"[1..]": {
"name": "<string>",
"fullName": "<string>",
"deployer": "<string>",
"oracleUpdater": {},
"feeRecipient": {},
"assetToStreamingOiCap": [
{}
],
"assetToFundingMultiplier": [
{}
]
}
}Info API
perpDexs | Hyperliquid Info API
Hyperliquid perpDexs: enumerate every HIP-3 builder-deployed perpetual DEX on HyperCore.
POST
/
info
perpDexs | Hyperliquid Info API
curl --request POST \
--url https://hypercore.goldrushdata.com/info \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "<string>"
}
'import requests
url = "https://hypercore.goldrushdata.com/info"
payload = { "type": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({type: '<string>'})
};
fetch('https://hypercore.goldrushdata.com/info', 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://hypercore.goldrushdata.com/info",
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([
'type' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://hypercore.goldrushdata.com/info"
payload := strings.NewReader("{\n \"type\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://hypercore.goldrushdata.com/info")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hypercore.goldrushdata.com/info")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"[0]": null,
"[1..]": {
"name": "<string>",
"fullName": "<string>",
"deployer": "<string>",
"oracleUpdater": {},
"feeRecipient": {},
"assetToStreamingOiCap": [
{}
],
"assetToFundingMultiplier": [
{}
]
}
}Credit Cost
1 per call
Processing
Realtime
type: "perpDexs" is used to enumerate every HIP-3 builder-deployed perpetual DEX on HyperCore.
Estimate your monthly cost for this API using the Pricing Calculator.
- Wire-equal to
POST api.hyperliquid.xyz/infowith{"type": "perpDexs"}. - The
nullat index0represents the canonical Hyperliquid perp DEX; use meta or metaAndAssetCtxs with the defaultdex: ""to query its universe. - Pass a builder DEX
namefrom this list as thedexfield on meta or metaAndAssetCtxs to fetch a specific HIP-3 perp universe. assetToStreamingOiCapandassetToFundingMultiplierare[coin, value]tuple arrays scoped to that DEX.
0 is null and represents the canonical Hyperliquid perp universe; each subsequent entry is a HIP-3 builder-deployed perp DEX, exposing its short name, full name, deployer address, oracle updater, fee recipient, per-asset streaming open-interest caps, and per-asset funding-rate multipliers.
This is a global, non-user-keyed type. A single cache entry is shared across all callers and is refreshed as new HIP-3 DEXes are deployed or their parameters change.
Endpoint
POST https://hypercore.goldrushdata.com/info
Authorization: Bearer <GOLDRUSH_API_KEY>
Content-Type: application/json
Request
string
required
Always
"perpDexs".Example
curl -X POST https://hypercore.goldrushdata.com/info \
-H "Authorization: Bearer $GOLDRUSH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "perpDexs"
}'
const response = await fetch("https://hypercore.goldrushdata.com/info", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.GOLDRUSH_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
type: "perpDexs",
}),
});
const perpDexs = await response.json();
import os, requests
response = requests.post(
"https://hypercore.goldrushdata.com/info",
headers={"Authorization": f"Bearer {os.environ['GOLDRUSH_API_KEY']}"},
json={"type": "perpDexs"},
)
perp_dexs = response.json()
Response
An array of perpetual DEX entries. Index0 is null and represents the canonical Hyperliquid perp universe (query it via meta / metaAndAssetCtxs with the default empty dex field). Each subsequent element is a HIP-3 builder-deployed perp DEX.
[
null,
{
"name": "test",
"fullName": "test dex",
"deployer": "0x5e89b26d8d66da9888c835c9bfcc2aa51813e152",
"oracleUpdater": null,
"feeRecipient": null,
"assetToStreamingOiCap": [["COIN1", "100000.0"], ["COIN2", "200000.0"]],
"assetToFundingMultiplier": [["COIN1", "1.0"], ["COIN2", "2.0"]]
}
]
Field descriptions
null
The canonical Hyperliquid perp DEX is always represented by
null at index 0. Use meta or metaAndAssetCtxs with the default dex: "" to query its universe.object
HIP-3 builder-deployed perpetual DEX.
Show properties
Show properties
string
Short identifier for the perp DEX. Pass this value as the
dex field to meta or metaAndAssetCtxs to query this DEX’s universe.string
Human-readable name for the perp DEX.
string
Address of the builder that deployed the HIP-3 perp DEX.
string | null
Address authorized to push oracle updates for this DEX.
null when the DEX does not delegate oracle updates.string | null
Address that collects fees generated by this DEX.
null when unset.array<[string, string]>
Per-asset streaming open-interest caps, encoded as
[coin, cap] tuples. Values are decimal strings.array<[string, string]>
Per-asset funding-rate multipliers, encoded as
[coin, multiplier] tuples. Values are decimal strings.Related endpoints
perpDeployAuctionStatus
fetch the current perp-deploy Dutch-auction status.
perpDexLimits
fetch the open-interest, position-size, and transfer limits for a HIP-3 perp DEX.
allPerpMetas
perpetuals universe and margin tables for every perp DEX in one request.
perpsAtOpenInterestCap
list the perp assets currently at their open-interest cap.