curl --request GET \
--url https://api.0xarchive.io/v1/hyperliquid/hip4/instruments \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.0xarchive.io/v1/hyperliquid/hip4/instruments"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.0xarchive.io/v1/hyperliquid/hip4/instruments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.0xarchive.io/v1/hyperliquid/hip4/instruments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"success": true,
"data": [
{
"outcome_id": 0,
"side": 0,
"asset_id": 100000000,
"coin": "#0",
"symbol": "#0",
"name": "BTC ≥ 78213 by 2026-05-03 06:00 UTC — Yes",
"description": "class:priceBinary|underlying:BTC|expiry:20260503-0600|targetPrice:78213|period:1d",
"side_name": "Yes",
"recurring_class": "priceBinary",
"recurring_underlying": "BTC",
"recurring_expiry": "2026-05-03T06:00:00Z",
"recurring_target_px": 78213,
"recurring_period": "1d",
"builder_address": "0x0000000000000000000000000000000000000000",
"is_settled": false,
"settlement_value": 0,
"settlement_at": "2026-05-03T06:00:05.149Z",
"first_seen_at": "2026-05-02T07:47:00Z",
"last_updated_at": "2026-05-02T20:25:00Z",
"display_title": "BTC above 78,213 on May 3 at 06:00 UTC? — Yes",
"slug": "btc-above-78213-yes-may-03-0600"
}
],
"meta": {
"count": 123,
"next_cursor": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"coverage_from": "2023-11-07T05:31:56Z",
"notice": "<string>"
}
}{
"code": 401,
"error": "Missing or invalid API key. Provide X-API-Key header."
}{
"code": 429,
"error": "Rate limit exceeded"
}List HIP-4 instruments
0xArchive API reference for List HIP-4 instruments. Includes authentication, parameters, response shape, examples, and route-safe implementation notes.
curl --request GET \
--url https://api.0xarchive.io/v1/hyperliquid/hip4/instruments \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.0xarchive.io/v1/hyperliquid/hip4/instruments"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.0xarchive.io/v1/hyperliquid/hip4/instruments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.0xarchive.io/v1/hyperliquid/hip4/instruments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"success": true,
"data": [
{
"outcome_id": 0,
"side": 0,
"asset_id": 100000000,
"coin": "#0",
"symbol": "#0",
"name": "BTC ≥ 78213 by 2026-05-03 06:00 UTC — Yes",
"description": "class:priceBinary|underlying:BTC|expiry:20260503-0600|targetPrice:78213|period:1d",
"side_name": "Yes",
"recurring_class": "priceBinary",
"recurring_underlying": "BTC",
"recurring_expiry": "2026-05-03T06:00:00Z",
"recurring_target_px": 78213,
"recurring_period": "1d",
"builder_address": "0x0000000000000000000000000000000000000000",
"is_settled": false,
"settlement_value": 0,
"settlement_at": "2026-05-03T06:00:05.149Z",
"first_seen_at": "2026-05-02T07:47:00Z",
"last_updated_at": "2026-05-02T20:25:00Z",
"display_title": "BTC above 78,213 on May 3 at 06:00 UTC? — Yes",
"slug": "btc-above-78213-yes-may-03-0600"
}
],
"meta": {
"count": 123,
"next_cursor": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"coverage_from": "2023-11-07T05:31:56Z",
"notice": "<string>"
}
}{
"code": 401,
"error": "Missing or invalid API key. Provide X-API-Key header."
}{
"code": 429,
"error": "Rate limit exceeded"
}X-API-Key with this request. See REST authentication.Shared request rules
Shared request rules
Machine schema
Machine schema
Authorizations
API key for authentication. Get yours at https://0xarchive.io/dashboard
Response
List of HIP-4 per-side instruments
API response wrapping an array of HIP-4 per-side instruments
true
Hide child attributes
Hide child attributes
Numeric outcome identifier
0
Side index: 0 = Yes, 1 = No
0, 1 0
Public asset ID. Formula: 100_000_000 + 10*outcome_id + side.
100000000
Coin identifier. Returned in #-prefixed form. REST paths accept either the bare numeric id (e.g. 0) or the #-prefixed form (e.g. #0). Format: 10*outcome_id + side.
"#0"
Same value as coin. Provided for consistency with other venues.
"#0"
Human-readable per-side market name
"BTC ≥ 78213 by 2026-05-03 06:00 UTC — Yes"
Pipe-delimited recurring-market metadata
"class:priceBinary|underlying:BTC|expiry:20260503-0600|targetPrice:78213|period:1d"
Human label for this side (typically Yes or No)
"Yes"
Recurring market class (e.g., priceBinary)
"priceBinary"
Underlying asset for recurring price-binary outcomes
"BTC"
Settlement timestamp (UTC)
"2026-05-03T06:00:00Z"
Target price for the binary outcome
78213
Cadence of the recurring market (e.g., 1d, 1h)
"1d"
Builder wallet address that deployed the outcome
"0x0000000000000000000000000000000000000000"
Whether the outcome has settled. Once settled, live tracking ends for the market, but historical data remains queryable.
false
Settlement value once the outcome settles (0.0 or 1.0 for binary outcomes). Omitted while unsettled.
0
Settlement timestamp (UTC). Omitted while unsettled.
"2026-05-03T06:00:05.149Z"
When this outcome side was first observed by 0xArchive (UTC)
"2026-05-02T07:47:00Z"
Timestamp when the side metadata was last updated
"2026-05-02T20:25:00Z"
Per-side human-readable title, deterministic from parsed metadata.
"BTC above 78,213 on May 3 at 06:00 UTC? — Yes"
Per-side URL slug mirroring Hyperliquid's pattern.
"btc-above-78213-yes-may-03-0600"
Response metadata
Hide child attributes
Hide child attributes
Number of records returned
Cursor for pagination (timestamp). Use this value as the cursor parameter to fetch the next page of results.
Unique request ID for support
Earliest coverage for the requested symbol and data type. Present only when the requested window ends before coverage begins.
Human-readable advisory about the response. Used when the requested window ends before coverage begins for the symbol, and on CVD responses that are one page of several; may carry other advisories in future.
Was this page helpful?