प्रस्तावना
हाल ही में, FMZ प्लेटफॉर्म ने हाइपरलिक्विड DEX, एक उच्च-प्रदर्शन विकेन्द्रीकृत एक्सचेंज के लिए समर्थन जोड़ा है, जो उपयोगकर्ताओं को विकेन्द्रीकृत लेनदेन में भाग लेने के लिए अधिक विकल्प प्रदान करता है। वर्तमान में, FMZ प्लेटफॉर्म के कस्टोडियन फ़ंक्शन को हाइपरलिक्विड के स्पॉट और सतत अनुबंध लेनदेन का समर्थन करने और DEX के सभी API फ़ंक्शन को कवर करने के लिए पूरी तरह से अपडेट किया गया है।
हाइपरलिक्विड प्लेटफ़ॉर्म अवलोकन
हाइपरलिक्विड एक उच्च-प्रदर्शन L1 ब्लॉकचेन है, जिसे पूरी तरह से ऑन-चेन खुली वित्तीय प्रणाली के निर्माण की दृष्टि से शुरू से ही अनुकूलित किया गया है। उपयोगकर्ता कुशल मूल घटकों के साथ अंतःक्रिया करके स्वतंत्र रूप से अनुप्रयोग बना सकते हैं, तथा साथ ही अंतिम उपयोगकर्ता के लिए सहज अनुभव सुनिश्चित कर सकते हैं।
हाइपरलिक्विड L1 का प्रदर्शन वित्तीय अनुप्रयोगों के अनुमति रहित पारिस्थितिकी तंत्र का समर्थन करने के लिए पर्याप्त है। सभी ऑर्डर, ऑर्डर निकासी, लेनदेन और परिसमापन पूरी तरह से पारदर्शी तरीके से ऑन-चेन पर पूरे किए जाते हैं, जिसमें ब्लॉक विलंब 1 सेकंड से भी कम होता है। वर्तमान में, यह श्रृंखला प्रति सेकंड 100,000 ऑर्डर तक की प्रसंस्करण क्षमता का समर्थन करती है।
हाइपरलिक्विड L1 हाइपरबीएफटी नामक एक कस्टम सर्वसम्मति एल्गोरिथ्म का उपयोग करता है, जो हॉटस्टफ और उसके उत्तराधिकारियों से प्रेरित है। उच्च-प्रदर्शन ब्लॉकचेन की आवश्यकताओं को पूरा करने के लिए सर्वसम्मति तंत्र और नेटवर्क वास्तुकला दोनों को नीचे से ऊपर तक अनुकूलित किया गया है।
इस गाइड के माध्यम से, हम आशा करते हैं कि हम आपको FMZ प्लेटफॉर्म पर हाइपरलिक्विड DEX के प्रोग्रामेटिक और क्वांटिटेटिव ट्रेडिंग को शीघ्रता से आरंभ करने में मदद करेंगे तथा अधिक ट्रेडिंग अवसरों की खोज करने में सहायता करेंगे।
अभ्यास सामग्री
REST प्रोटोकॉल
- बाजार इंटरफेस अभ्यास.
- ट्रेडिंग इंटरफ़ेस अभ्यास (ऑर्डर देना, ऑर्डर रद्द करना)।
- लेन-देन से संबंधित क्वेरी प्रथाएँ (खाते, आदेश)।
- अन्य कार्य (स्पॉट, अनुबंध हस्तांतरण, वॉल्ट निकासी, परिसंपत्तियों का वॉलेट में हस्तांतरण, आदि)।
वेबसॉकेट प्रोटोकॉल
- एक्सचेंज सूचना सदस्यता अभ्यास (REST इंटरफ़ेस में कोई ट्रेड्स इंटरफ़ेस नहीं है, जो वेबसोकेट इंटरफ़ेस द्वारा पूरक है)
Hyperliquid
-
ट्रेडिंग के प्रकार
हाइपरलिक्विड को ट्रेडिंग वैरायटी के आधार पर स्पॉट और परपेचुअल कॉन्ट्रैक्ट में बांटा गया है। FMZ प्लेटफॉर्म की आर्किटेक्चर के आधार पर, इसे FMZ प्लेटफॉर्म पर हाइपरलिक्विड स्पॉट एक्सचेंज ऑब्जेक्ट और हाइपरलिक्विड फ्यूचर्स एक्सचेंज ऑब्जेक्ट में भी बांटा गया है। वे क्रमशः हाइपरलिक्विड DEX में विभिन्न किस्मों के अनुरूप हैं।FMZ प्लेटफ़ॉर्म के एक्सचेंज जोड़ें पृष्ठ पर, आप हाइपरलिक्विड स्पॉट और फ्यूचर्स एक्सचेंज ऑब्जेक्ट कॉन्फ़िगर कर सकते हैं:
-
पर्यावरण प्रभाग
अधिकांश एक्सचेंजों की तरह, हाइपरलिक्विड में भी एक परीक्षण वातावरण है।-
मेननेट एपीपी पता:
वास्तविक उपयोग अनुभव से, मुख्य नेटवर्क अपेक्षाकृत स्थिर है और गति भी अच्छी है।
संबंधित REST प्रोटोकॉल API इंटरफ़ेस नोड पता:https://api.hyperliquid.xyz。
संदेश हस्ताक्षर से संबंधित जानकारी भी भिन्न है:source == "a",chainId = 42161 -
नेटवर्क APP पता परीक्षण करें:
परीक्षण नेटवर्क अक्सर क्रैश हो जाता है, लेकिन इसका उपयोग केवल परीक्षण इंटरफ़ेस के रूप में और DEX पर ट्रेडिंग कार्यों से परिचित होने के लिए किया जाता है।
संबंधित REST प्रोटोकॉल API इंटरफ़ेस नोड पता:https://api.hyperliquid-testnet.xyz。
संदेश हस्ताक्षर से संबंधित जानकारी भी भिन्न है:source == "b",chainId = 421614
-
वॉलेट कनेक्शन, लॉगिन और कॉन्फ़िगरेशन जानकारी
अधिकांश DEX एक्सचेंजों के वॉलेट कनेक्शन विधि की तरह, आप हाइपरलिक्विड से कनेक्ट करने के लिए QR कोड को स्कैन करने के लिए वॉलेट APP का उपयोग कर सकते हैं (वॉलेट को आर्बिट्रम पर स्विच करें और लॉग इन करने के लिए कोड को स्कैन करें, परीक्षण नेटवर्क और मुख्य नेटवर्क समान हैं) .
-
हाइपरलिक्विड से वॉलेट कनेक्शन
-
टेस्टनेट नल (जमा परीक्षण USDC संपत्ति)
यदि आप पहले टेस्टनेट से परिचित होना चाहते हैं, तो आप अपने वॉलेट को हाइपरलिक्विड से कनेक्ट करने के बाद सीधे हाइपरलिक्विड पेज पर नल पा सकते हैं।
आप परीक्षण परिसंपत्तियों का दावा कर सकते हैं। परीक्षण के लिए USDC प्राप्त करने के बाद, इसे हाइपरलिक्विड में जमा करने के लिए "जमा करें" बटन पर क्लिक करें (आर्बिट्रम परीक्षण नेटवर्क के लिए कुछ ETH रखना सबसे अच्छा है)।
-
मेननेट पर USDC परिसंपत्तियां जमा करें
जमा करने के लिए "जमा" बटन पर क्लिक करें, जिसके लिए वॉलेट सत्यापन की आवश्यकता होगी और यह आर्बिट्रम पर थोड़ा ETH खपत करेगा।
-
प्रॉक्सी वॉलेट कॉन्फ़िगरेशन बनाएँ
हाइपरलिक्विड ऐप पेज पर मैन्युअल लेनदेन करते समय, पेज स्वचालित रूप से एक प्रॉक्सी वॉलेट पता और निजी कुंजी उत्पन्न करेगा, जो ब्राउज़र में रिकॉर्ड किए जाते हैं और ब्राउज़र पेज पर ऑर्डर देने जैसे कार्यों के लिए उपयोग किए जाते हैं। अगर हम प्रोग्रामेटिक और क्वांटिटेटिव करना चाहते हैं लेनदेन को यह कॉन्फ़िगरेशन जानकारी कैसे प्राप्त करनी होगी?
आप हाइपरलिक्विड API पृष्ठ पर आवश्यक प्रॉक्सी वॉलेट पता और संबंधित निजी कुंजी बना सकते हैं:
-
- बनाए जाने वाले प्रॉक्सी वॉलेट को एक नाम दें।
-
- पता और निजी कुंजी उत्पन्न करें.
-
- हाइपरलिक्विड से जुड़े वॉलेट का उपयोग करके प्रॉक्सी वॉलेट को अधिकृत करें।
-
-
FMZ पर प्रॉक्सी वॉलेट पता और निजी कुंजी कॉन्फ़िगर करें
फिर आप इस जानकारी को FMZ प्लेटफॉर्म पर कॉन्फ़िगर कर सकते हैं (कॉन्फ़िगरेशन इंटरफ़ेस ऊपर उल्लिखित है)।
- वॉलेट पता: हाइपरलिक्विड से जुड़ा वॉलेट पता (ध्यान दें, प्रॉक्सी वॉलेट पता नहीं)।
- वॉलेट निजी कुंजी: हाइपरलिक्विड से जुड़ी वॉलेट निजी कुंजी (वैकल्पिक, केवल स्थानांतरण जैसे API को कॉल करते समय आवश्यक, खाली छोड़ा जा सकता है)।
- गुप्त कुंजी: प्रॉक्सी वॉलेट निजी कुंजी (पिछले चरण में उत्पन्न, प्राधिकरण के बाद प्रदर्शित निजी कुंजी)।
FMZ पर हाइपरलिक्विड प्रैक्टिस
एक्सचेंज ऑब्जेक्ट को कॉन्फ़िगर करने के लिए आवश्यक जानकारी:
- वॉलेट एड्रेस का उपयोग उपयोगकर्ता लेनदेन की जानकारी जानने के लिए किया जाता है
- वॉलेट प्राइवेटकी का उपयोग ट्रांसफर, स्थानांतरण और अन्य कार्यों के लिए किया जाता है
- गुप्त कुंजी का उपयोग लेनदेन-संबंधी कार्यों के लिए किया जाता है
एक बार कॉन्फ़िगरेशन पूरा हो जाने के बाद, हम इसे FMZ प्लेटफ़ॉर्म पर परीक्षण कर सकते हैं। हम परीक्षण अभ्यास के लिए सीधे FMZ प्लेटफ़ॉर्म के "डिबगिंग टूल" का उपयोग करते हैं।
यदि आप टेस्टनेट जानकारी के साथ कॉन्फ़िगर किए गए हाइपरलिक्विड एक्सचेंज ऑब्जेक्ट का उपयोग कर रहे हैं, तो आपको इसका उपयोग करते समय कुछ स्विचिंग ऑपरेशन करने की आवश्यकता होगी, उदाहरण के लिए:
javascript
function main() {
// REST协议API地址切换到测试网
exchange.SetBase("https://api.hyperliquid-testnet.xyz")
// source : a 主网 , b 测试网
exchange.IO("source", "b")
return exchange.GetAccount()
}
मेननेट कॉन्फ़िगरेशन को उपरोक्त स्विचिंग ऑपरेशन की आवश्यकता नहीं है। हाइपरलिक्विड DEX एक्सचेंज में स्पॉट और फ्यूचर्स उत्पादों से संबंधित API इंटरफ़ेस लगभग समान हैं, केवल विवरणों में मामूली अंतर है। इसके बाद, हम उपयोग करते हैंमेननेट कॉन्फ़िगरेशन जानकारीऔरटेस्टनेट कॉन्फ़िगरेशन जानकारीका हाइपरलिक्विड फ्यूचर्सपरीक्षण हेतु वस्तुओं का आदान-प्रदान करें।
विविधता की जानकारी
javascript
function main() {
var markets = exchange.GetMarkets()
if (!markets) {
throw "get markets error"
}
var tbl = {
type: "table",
title: "test markets",
cols: [
"key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty",
"MaxQty", "MinNotional", "MaxNotional", "CtVal", "CtValCcy"
],
rows: []
}
for (var symbol in markets) {
var market = markets[symbol]
tbl.rows.push([
symbol, market.Symbol, market.BaseAsset, market.QuoteAsset, market.TickSize, market.AmountSize,
market.PricePrecision, market.AmountPrecision, market.MinQty, market.MaxQty, market.MinNotional, market.MaxNotional, market.CtVal, market.CtValCcy
])
}
LogStatus("`" + JSON.stringify(tbl) + "`")
}
ऑर्डर बुक डेटा
javascript
function main() {
var depth = exchange.GetDepth("ETH_USD.swap")
var asks = depth.Asks
var bids = depth.Bids
Log("买3", bids[2])
Log("买2", bids[1])
Log("买1", bids[0])
Log("卖1", asks[0])
Log("卖2", asks[1])
Log("卖3", asks[2])
}
खाता परिसंपत्तियां
javascript
function main() {
var account = exchange.GetAccount()
return account
}
ऑर्डर करें और जांच करें
javascript
function main() {
var symbols = ["ETH_USD.swap", "XRP_USD.swap", "HYPE_USD.swap"]
var arrDir = ["market_buy", "sell", "buy"]
var markets = exchange.GetMarkets()
var ids = []
for (var i in symbols) {
var symbol = symbols[i]
var side = arrDir[i]
var ticker = exchange.GetTicker(symbol)
var info = markets[symbol]
exchange.SetPrecision(info.PricePrecision, info.AmountPrecision)
// USDC
var qty = 15
var price = null
var amount = null
if (side == "market_buy") {
price = -1
side = "buy"
amount = qty / ticker.Last
} else {
price = side == "buy" ? ticker.Last * 0.9 : ticker.Last * 1.1
amount = qty / price
}
var id = exchange.CreateOrder(symbol, side, price, amount)
ids.push(id)
}
var tbl = {type: "table", title: "test", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
for (var id of ids) {
var order = exchange.GetOrder(id)
tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
Sleep(500)
}
LogStatus("`" + JSON.stringify(tbl) + "`")
}
सभी ऑर्डर रद्द करें
javascript
function main() {
var orders = exchange.GetOrders("USD.swap")
for (var order of orders) {
exchange.CancelOrder(order.Id, order)
Sleep(1000)
}
var tbl = {type: "table", title: "test", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
for (var order of orders) {
tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
}
LogStatus("`" + JSON.stringify(tbl) + "`")
}
लीवरेज स्विच करें, क्रॉस मार्जिन/आइसोलेटेड मार्जिन स्विच करें
javascript
function main() {
// 设置当前为全仓
exchange.IO("cross", true)
// 设置杠杆
exchange.SetMarginLevel("ETH_USD.swap", 10)
return exchange.GetRawJSON()
}
exchange.GetRawJSON() लीवरेज सेटिंग अनुरोध की प्रतिक्रिया जानकारी लौटाता है:
{"status":"ok","response":{"type":"default"}}
अन्य इंटरफेस
चूंकि एक्सचेंज के इंटरफ़ेस पैरामीटर जटिल हैं, इसलिए पैरामीटर पास करने के लिए URL एन्कोडिंग विधि का उपयोग करना संभव नहीं है।exchange.IOफ़ंक्शन को कॉल करते समय, केवल JSON स्ट्रिंग को पैरामीटर के रूप में पास किया जा सकता है। नीचे प्रत्येक इंटरफ़ेस को कॉल करने के उदाहरण दिए गए हैं।
हाइपरलिक्विड संदर्भ दस्तावेज़: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#place-an-order
Schedule Cancel (dead man's switch)
javascript
var params = {"type": "scheduleCancel", "time": new Date().getTime()}
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
{"status":"err","response":"Cannot set scheduled cancel time until enough volume traded. Required: $1000000. Traded: $174.57424."}
इस फ़ंक्शन पर प्रतिबंध हैं: इस फ़ंक्शन का उपयोग करने के लिए खाते को ट्रेडिंग स्तर तक पहुंचना होगा।
twapOrder
एक TWAP ऑर्डर बनाएं.
javascript
function main() {
var params = {
"type": "twapOrder",
"twap": {
"a": 0,
"b": true,
"s": "1",
"r": false,
"m": 10,
"t": false
}
}
// SOL_USDT.swap , 订单量 : 1 , twapOrder 订单有头寸要求,最少100美元价值
// a : 0 , 即 SOL_USDT.swap 这个品种
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
twapCancel
TWAP आदेश रद्द करें.
javascript
function main() {
var params = {
"type": "twapCancel",
"a": 0,
"t": 3805
}
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
approveAgent
टेस्टनेट, एक नया प्रॉक्सी वॉलेट अधिकृत करें।
javascript
function main() {
var params = {
"type": "approveAgent",
"hyperliquidChain": "Testnet",
"signatureChainId": "0x66eee",
"agentAddress": "0xAAAA",
"agentName": "test02",
"nonce": new Date().getTime()
}
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
प्राधिकरण सफलतापूर्वक लौटाता है:
{"status":"ok","response":{"type":"default"}}
- API प्रॉक्सी वॉलेट बनाएँ। 0xAAAA जेनरेट किया गया वॉलेट पता है (सिर्फ एक उदाहरण)। इसे जेनरेट करते समय संबंधित निजी कुंजी को सहेजें।
- "test02" API प्रॉक्सी वॉलेट का नाम है। जनरेट की गई कुंजी जोड़ी हाइपरलिक्विड APP पेज पर प्रदर्शित की जाएगी।
https://app.hyperliquid-testnet.xyz/APIमध्य।
vaultTransfer
तिजोरी से संपत्ति निकालें।
javascript
function main() {
var params = {
"type": "vaultTransfer",
"vaultAddress": "0xAAA",
"isDeposit": true,
"usd": 5000000
}
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
- "usd": 5000000 का अर्थ है 5 USDC.
- "0xAAA": वॉल्ट पता है.
- "isDeposit": सत्य, जमा और जमा को नियंत्रित करता है।
withdraw3
टेस्टनेट, परिसंपत्तियों को वॉलेट में वापस ले जाएं।
javascript
function main() {
var params = {
"type": "withdraw3",
"hyperliquidChain": "Testnet",
"signatureChainId": "0x66eee",
"amount": "5",
"time": new Date().getTime(),
"destination": "0xAAA"
}
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
- अपने वर्तमान वॉलेट पते पर पैसे निकालें: "0xAAA"।
usdClassTransfer
स्पॉट/वायदा (शाश्वत अनुबंध) के बीच परिसंपत्तियों का हस्तांतरण।
javascript
function main() {
var params = {
"type": "usdClassTransfer",
"hyperliquidChain": "Testnet",
"signatureChainId": "0x66eee",
"amount": "5",
"toPerp": false,
"nonce": new Date().getTime()
}
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
- पैरामीटर "toPerp" पर सेट है
falseरोटेशन की दिशा को इंगित करता है: वायदा -> स्पॉट। - पैरामीटर "toPerp" पर सेट है
trueस्थानांतरण दिशा को इंगित करता है: स्पॉट -> वायदा।
वेबसॉकेट इंटरफ़ेस उपयोग
मुख्य नेटवर्क WS इंटरफ़ेस पता:
Mainnet: wss://api.hyperliquid.xyz/ws
चूंकि REST प्रोटोकॉल API इंटरफ़ेस में हालिया लेनदेन डेटा प्राप्त करने के लिए कोई इंटरफ़ेस नहीं है, इसलिए वेबसॉकेट इंटरफ़ेस में यह चैनल है जिसे सब्सक्राइब किया जा सकता है।
सदस्यता संदेश संरचना
{
"method": "subscribe",
"subscription": {
"type": "trades",
"coin": "SOL"
}
}
डिबगर में निष्पादित परीक्षण का उदाहरण:
javascript
function main() {
var loopCount = 20
var subMsg = {
"method": "subscribe",
"subscription": {
"type": "trades",
"coin": "SOL"
}
}
var conn = Dial("wss://api.hyperliquid.xyz/ws")
conn.write(JSON.stringify(subMsg))
if (conn) {
for (var i = 0; i < loopCount; i++) {
var msg = conn.read(1000)
if (msg) {
Log(msg)
}
}
}
conn.close()
Log("测试结束")
}
END
उपरोक्त परीक्षण नवीनतम कस्टोडियन पर आधारित हैं। हाइपरलिक्विड DEX एक्सचेंज का समर्थन करने के लिए आपको नवीनतम कस्टोडियन डाउनलोड करना होगा।
आपके समर्थन के लिए धन्यवाद और पढ़ने के लिए धन्यवाद।
- 1













