Lo spot
Questa sezione documenta gli endpoint info specifici per lo spot.
Recupero dei metadati spot
POST https://api.hyperliquid.xyz/info
Intestazioni
| Name | Value |
|---|---|
| Content-Type* | "application/json" |
Corpo
| Name | Type | Description |
|---|---|---|
| type* | String | "spotMeta" |
Risposta
{% tabs %}
{
"tokens": [
{
"name": "USDC",
"szDecimals": 8,
"weiDecimals" 8,
"index": 0,
"tokenId": "0x6d1e7cde53ba9467b783cb7c530ce054",
"isCanonical": true,
"evmContract":null,
"fullName":null
},
{
"name": "PURR",
"szDecimals": 0,
"weiDecimals": 5,
"index": 1,
"tokenId": "0xc1fb593aeffbeb02f85e0308e9956a90",
"isCanonical": true,
"evmContract":null,
"fullName":null
},
{
"name": "HFUN",
"szDecimals": 2,
"weiDecimals": 8,
"index": 2,
"tokenId": "0xbaf265ef389da684513d98d68edf4eae",
"isCanonical": false,
"evmContract":null,
"fullName":null
},
],
"universe": [
{
"name": "PURR/USDC",
"tokens": [1, 0],
"index": 0,
"isCanonical": true
},
{
"tokens": [2, 0],
"name": "@1",
"index": 1,
"isCanonical": false
},
]
}
{% endtab %}
Recupero dei contesti degli asset spot
POST https://api.hyperliquid.xyz/info
Intestazioni
| Name | Type | Description |
|---|---|---|
| Content-Type* | String | "application/json" |
Corpo della richiesta
| Name | Type | Description |
|---|---|---|
| type* | String | "spotMetaAndAssetCtxs" |
{% tabs %}
[
{
"tokens": [
{
"name": "USDC",
"szDecimals": 8,
"weiDecimals" 8,
"index": 0,
"tokenId": "0x6d1e7cde53ba9467b783cb7c530ce054",
"isCanonical": true,
"evmContract":null,
"fullName":null
},
{
"name": "PURR",
"szDecimals": 0,
"weiDecimals": 5,
"index": 1,
"tokenId": "0xc1fb593aeffbeb02f85e0308e9956a90",
"isCanonical": true,
"evmContract":null,
"fullName":null
}
],
"universe": [
{
"name": "PURR/USDC",
"tokens": [1, 0],
"index": 0,
"isCanonical": true
}
]
},
[
{
"dayNtlVlm":"8906.0",
"markPx":"0.14",
"midPx":"0.209265",
"prevDayPx":"0.20432"
}
]
]
{% endtab %}
Recupero dei saldi token di un utente
POST https://api.hyperliquid.xyz/info
Visualizza i saldi token di un utente.
Con account unificato o margine di portafoglio, questa è la fonte autorevole per il saldo dell'account di trading tra spot e perp.
Intestazioni
| Name | Type | Description |
|---|---|---|
| Content-Type* | "application/json" |
Corpo della richiesta
| Name | Type | Description |
|---|---|---|
| type* | String | "spotClearinghouseState" |
| user* | String | Indirizzo on-chain in formato esadecimale a 42 caratteri; ad es. 0x0000000000000000000000000000000000000000. |
{% tabs %}
{
"balances": [
{
"coin": "USDC",
"token": 0,
"hold": "0.0",
"total": "14.625485",
"entryNtl": "0.0"
},
{
"coin": "PURR",
"token": 1,
"hold": "0.0",
"total": "2000.0",
"entryNtl": "1234.56"
},
{
"coin": "+1230",
"hold": "0.0",
"total": "25.0",
"entryNtl": "12.5"
}
]
}
{% endtab %}
Recupero delle informazioni sull'asta di deployment spot
POST https://api.hyperliquid.xyz/info
Intestazioni
| Name | Value |
|---|---|
| Content-Type* | "application/json" |
Corpo
| Name | Type | Description |
|---|---|---|
| type* | String | "spotDeployState" |
| user* | String | Indirizzo on-chain in formato esadecimale a 42 caratteri; ad es. 0x0000000000000000000000000000000000000000. |
Risposta
{% tabs %}
{
"states": [
{
"token": 150,
"spec" : {
"name": "HYPE",
"szDecimals": 2,
"weiDecimals": 8,
},
"fullName": "Hyperliquid",
"spots": [107],
"maxSupply": 1000000000,
"hyperliquidityGenesisBalance": "120000",
"totalGenesisBalanceWei": "100000000000000000",
"userGenesisBalances": [
("0xdddddddddddddddddddddddddddddddddddddddd", "428,062,211")...
],
"existingTokenGenesisBalances": [
(1, "0")...
]
}
],
"gasAuction": {
"startTimeSeconds": 1733929200,
"durationSeconds": 111600,
"startGas": "181305.90046",
"currentGas": null,
"endGas": "181291.247358"
}
}
{% endtab %}
Recupero delle informazioni sull'asta di deployment delle coppie spot
POST https://api.hyperliquid.xyz/info
Nota: restituisce lo stato dell'asta olandese per i deployment di coppie spot tra token base e token di quotazione esistenti. La partecipazione a questa asta è permissionless tramite la stessa azione della fase registerSpot del deployment del token base.
Intestazioni
| Name | Value |
|---|---|
| Content-Type* | "application/json" |
Corpo
| Name | Type | Description |
|---|---|---|
| type* | String | "spotPairDeployAuctionStatus" |
{% tabs %}
{
"startTimeSeconds":1755468000,
"durationSeconds":111600,
"startGas":"500.0",
"currentGas":"500.0",
"endGas":null
}
{% endtab %}
Recupero delle informazioni su un token
POST https://api.hyperliquid.xyz/info
Intestazioni
| Name | Value |
|---|---|
| Content-Type* | "application/json" |
Corpo
| Name | Type | Description |
|---|---|---|
| type* | String | "tokenDetails" |
| tokenId* | String | ID on-chain in formato esadecimale a 34 caratteri; ad es. 0x00000000000000000000000000000000. |
Risposta
{% tabs %}
{
"name": "TEST",
"maxSupply": "1852229076.12716007",
"totalSupply": "851681534.05516005",
"circulatingSupply": "851681534.05516005",
"szDecimals": 0,
"weiDecimals": 5,
"midPx": "3.2049",
"markPx": "3.2025",
"prevDayPx": "3.2025",
"genesis": {
"userBalances": [
[
"0x0000000000000000000000000000000000000001",
"1000000000.0"
],
[
"0xffffffffffffffffffffffffffffffffffffffff",
"1000000000.0"
]
],
"existingTokenBalances": []
},
"deployer": "0x0000000000000000000000000000000000000001",
"deployGas": "100.0",
"deployTime": "2024-06-05T10:50:59.434",
"seededUsdc": "0.0",
"nonCirculatingUserBalances": [],
"futureEmissions": "0.0"
}
{% endtab %}
Recupero dei metadati degli outcome
POST https://api.hyperliquid.xyz/info
Per il formato con cui l'API fa riferimento agli outcome, vedere la sezione ID degli asset. Gli outcome e le question distribuiti da un template hanno il name template:<id>, dove <id> è l'id del template nella risposta outcomeTemplates. Per il formato della loro descrizione, vedere la documentazione sul deployment HIP-4.
Gli outcome standalone e le question ricorrenti sono denominati Recurring, e la loro description è un elenco |-separato di coppie key:value che iniziano con class. expiry è un orario UTC nel formato YYYYMMDD-HHMM, e underlying è il nome coin di un perp. Le descrizioni possono contenere altre chiavi, che possono essere ignorate.
class:priceBinaryè un outcome standalone, ad es.class:priceBinary|underlying:BTC|expiry:20260526-0600|targetPrice:77363|period:1d. Si risolve a Yes se il mark price diunderlyingaexpiryè superiore atargetPrice.class:priceBucketè una question, ad es.class:priceBucket|underlying:BTC|expiry:20260615-0600|priceThresholds:63250,65831|period:1d, dovepriceThresholdsè<lower>,<upper>. In base al mark price diunderlyingaexpiry:- L'outcome con descrizione
index:0si risolve a Yes se il prezzo è inferiore alower. - L'outcome con descrizione
index:1si risolve a Yes se il prezzo è almenolowere inferiore aupper. - L'outcome con descrizione
index:2si risolve a Yes se il prezzo è almenoupper.
Intestazioni
| Name | Value |
|---|---|
| Content-Type* | "application/json" |
Corpo
| Name | Type | Description |
|---|---|---|
| type* | String | "outcomeMeta" |
Risposta
{% tabs %}
{
"outcomes": [
{
"outcome": 123,
"name": "Recurring",
"description": "class:priceBinary|underlying:HYPE|expiry:20260310-1100|targetPrice:34.5|period:3m",
"sideSpecs": [
{
"name": "Yes"
},
{
"name": "No"
}
]
}
]
}
{% endtab %}
Recupero dei template degli outcome
POST https://api.hyperliquid.xyz/info
Intestazioni
| Name | Value |
|---|---|
| Content-Type* | "application/json" |
Corpo
| Name | Type | Description |
|---|---|---|
| type* | String | "outcomeTemplates" |
Restituisce tutti i template degli outcome. role è uno tra {"standaloneOutcome": {"sideNames": [...]}}, "question" o {"questionOutcome": {"parent": <question template id>}}. name e description contengono segnaposto {keyword}, e keywords elenca ogni parola chiave con il proprio tipo come coppie [keyword, type]. Per il formato del valore di ciascun tipo, vedere la documentazione sul deployment HIP-4.
Risposta
{% tabs %}
[
{
"id": "binaryPrice",
"role": { "standaloneOutcome": { "sideNames": ["Yes", "No"] } },
"name": "{perp} above {threshold} at {time}?",
"description": "The market resolves to Yes if the {perp} price is above {threshold} at {time}, and otherwise resolves to No. Settlement is according to the {seconds}-second TWAP of {priceDescription} price ending at {time}. If {perp} is delisted before this market settles, settlement is instead according to the {perp} settlement price at delisting. metadata=category:price|subCategory:N/A|semanticRestriction:This market must refer to the price of a Hyperliquid perp.",
"keywords": [["perp", "hlPerp"], ["priceDescription", "string"], ["seconds", "uInt"], ["threshold", "uDecimal"], ["time", "dateTime"]]
},
{
"id": "policyRateDecision",
"role": "question",
"name": "{institution} {decisionLabel} rate decision",
"description": "This market has three possible results: No change, Decrease, or Increase. Exactly one corresponding named outcome resolves to Yes; the other two and the protocol-created fallback resolve to No. It covers the {decisionLabel} {institution} decision concerning {policyMeasure}, scheduled for {scheduledDecision} UTC (the \"Decision\"). The Decision Value is the numeric value of {policyMeasure} announced by {officialSource}. The Prior Value is the value of that same measure in effect immediately before the Decision. No change resolves to Yes if the Decision Value equals the Prior Value. Decrease resolves to Yes if the Decision Value is lower. Increase resolves to Yes if the Decision Value is higher. If the Decision is rescheduled, the rescheduled decision applies if {officialSource} publishes it by {decisionDeadline} UTC. If the Decision is canceled or postponed without a replacement decision, or no official Decision Value is published by {decisionDeadline} UTC, No change resolves to Yes. Policy changes outside the scheduled Decision are ignored except when establishing the Prior Value. If {institution} replaces {policyMeasure}, the closest official successor measure identified by {officialSource} is used. Resolution uses the initially published decision; later revisions do not change the resolution. {officialSource} is the primary resolution source; independent reputable reporting may be used if it has not published the relevant decision. No change resolves to Yes under the deadline rule above only if neither {officialSource} nor independent reputable reporting establishes a Decision Value by {decisionDeadline} UTC. metadata=category:economics|subCategory:N/A|semanticRestriction:This market must refer to a scheduled policy rate decision by an official institution.",
"keywords": [["decisionDeadline", "dateTime"], ["decisionLabel", "string"], ["institution", "string"], ["officialSource", "string"], ["policyMeasure", "string"], ["scheduledDecision", "dateTime"]]
},
{
"id": "policyRateDecrease",
"role": { "questionOutcome": { "parent": "policyRateDecision" } },
"name": "Decrease",
"description": "This outcome resolves to Yes if the Decision Value is lower than the Prior Value under the parent question's rules.",
"keywords": []
}
]
{% endtab %}
Recupero delle informazioni su un outcome regolato
POST https://api.hyperliquid.xyz/info
Intestazioni
| Name | Value |
|---|---|
| Content-Type* | "application/json" |
Corpo
| Name | Type | Description |
|---|---|---|
| type* | String | "settledOutcome" |
| outcome* | int | outcome |
Risposta
{% tabs %}
{
"spec": {
"outcome": 95,
"name": "Recurring",
"description": "class:priceBinary|underlying:BTC|expiry:20260526-0600|targetPrice:77363|period:1d",
"sideSpecs": [
{
"name": "Yes"
},
{
"name": "No"
}
],
"quoteToken": "USDC"
},
"settleFraction": "0.0",
"details": "price:76876.9"
}
{% endtab %}
Recupero dei limiti del deployer di outcome
POST https://api.hyperliquid.xyz/info
Intestazioni
| Name | Value |
|---|---|
| Content-Type* | "application/json" |
Corpo
| Name | Type | Description |
|---|---|---|
| type* | String | "outcomeDeployerLimits" |
| venue* | String | nome venue |
Risposta
{% tabs %}
{
"nDailyOutcomesRemaining": 50,
"nActiveOutcomesRemaining": 14
}
{% endtab %}