API-Trading
Nutzen Sie diesen Leitfaden, wenn Sie einen Market Maker, ein Quoting-System oder einen Ausführungsdienst mit Hypercall integrieren.
REST-Basis-URL: https://api.hypercall.xyz
WebSocket-URL: wss://api.hypercall.xyz/ws
Testnet-Status: Das Testnet ist vorübergehend deaktiviert, bis Hypercall weiteres Testnet-HYPE beschafft hat. Neue Market-Maker-Integrationen sollten die Produktionsumgebung verwenden, sofern Hypercall Ihnen keine dedizierte Umgebung bereitstellt.
Indikatives Quote-Provider-Streaming ist noch nicht allgemein verfügbar. Hypercall kann es für freigegebene Integrationen aktivieren, das reguläre Market-Maker-Onboarding sollte jedoch REST-Marktdaten sowie die authentifizierten WebSocket-Kanäle für Orders, Fills und Portfolio verwenden.
Onboarding-Checkliste
- Trading-Wallet: EVM-Wallet, das EIP-712 Typed Data signieren kann.
- Finanzierung: USDC-Einzahlung in der Produktionsumgebung unter app.hypercall.xyz.
- Zugang: Kontaktieren Sie Hypercall, wenn Sie Market-Maker-Limits oder indikatives Quote-Provider-Streaming benötigen.
- Umgebung: die oben genannten produktiven REST- und WebSocket-URLs. Gehen Sie nicht davon aus, dass das Testnet verfügbar ist.
- Abgleich: Speichern Sie Ihre eigenen Client-Order-IDs, Nonces, Orders, Fills und Positions-Snapshots.
Integrationswege
TypeScript SDK
Installieren Sie das offizielle TypeScript-Paket für typisierte REST-Clients, Laufzeitvalidierung von Requests und Hilfsfunktionen für EIP-712-Signaturen:
npm install @hypercallxyz/sdk
Im TypeScript-SDK-Leitfaden finden Sie Informationen zu Marktdatenabfragen, Kontoabfragen, signierten Schreibvorgängen, Fehlerbehandlung und Paket-Einstiegspunkten. Das TypeScript SDK deckt derzeit REST und Signierung ab. Für Streaming-Updates verbinden Sie sich direkt mit der WebSocket-API.
Rust-Crates
Hypercall veröffentlicht öffentliche Rust-Crates für die unterstützte Integrationsoberfläche unter github.com/hypercall-public/hypercall-rust. Sie sind nicht auf crates.io verfügbar. Fügen Sie sie als Git-Abhängigkeiten hinzu und pinnen Sie einen Tag oder Commit.
| Crate | Verwendung |
|---|---|
hypercall-client | REST-Client, WebSocket-Client, Hilfsfunktionen für EIP-712-Signaturen, lokale Signierung und Signierung über AWS KMS |
hypercall-sdk-types | Öffentliche Request- und Response-DTOs, die vom Client gemeinsam genutzt werden |
hypercall-ws-protocol | Öffentliche WebSocket-Nachrichtentypen |
hypercall-hyperliquid | Optionales Hyperliquid-Hilfs-Crate für Integrationen, die zusätzlich auf Hyperliquid hedgen |
hypercall-liquidator | Referenz-Client für die Liquidation im Standard Margin. Für reguläres Market Making nicht erforderlich |
Verwenden Sie nach Möglichkeit die Crates. Sie bilden die aktuelle Signatur-Domain, Request-Strukturen, Routing-Regeln und String-Formatierungsregeln ab, die bei manueller Umsetzung leicht falsch gemacht werden.
Direkte REST- und WebSocket-Anbindung
Wenn Sie nicht Rust verwenden, gelten die Seiten API-Referenz, Authentifizierung & Signierung und WebSocket-API als maßgebliche Quelle.
1. Märkte ermitteln
Laden Sie zunächst die aktiven Märkte und Instrumentenspezifikationen:
curl https://api.hypercall.xyz/markets
curl "https://api.hypercall.xyz/instrument-specs?currency=BTC"
curl "https://api.hypercall.xyz/options-summary?currency=BTC"
Verwenden Sie:
GET /marketsfür gelistete Basiswerte und Verfallsgruppen.GET /instrument-specs?currency=BTCfür handelbare Optionsspezifikationen.GET /options-summary?currency=BTCfür Zusammenfassungsfelder auf Chain-Ebene wie bestes Bid, bestes Ask, Mark und Greeks.
2. Signierung einrichten
Schreibvorgänge verwenden EIP-712-Signaturen.
- Produktions-Chain-ID:
999 - Domain-Name:
Hypercall - Domain-Version:
1 - Verifying Contract:
0x0000000000000000000000000000000000000000
Market Maker sollten in der Regel ein Agent-Wallet verwenden:
- Owner-Wallet genehmigt einen Agent mit
POST /approve-agent. - Agent-Wallet signiert Orders und Stornierungen für das Owner-Wallet.
- Owner-Wallet bleibt die Identität für Portfolio, Finanzierung und Risiko.
Die genauen Structs und Feldnamen finden Sie unter Authentifizierung & Signierung.
3. Quotes mit Bulk-Orders stellen
Verwenden Sie für Market-Maker-Quotes POST /bulk_order mit route: "book_only".
curl -X POST https://api.hypercall.xyz/bulk_order \
-H "Content-Type: application/json" \
-d '{
"orders": [
{
"wallet": "0x...",
"symbol": "BTC-20260131-100000-C",
"price": "100.0",
"size": "0.1",
"side": "Buy",
"tif": "gtc",
"route": "book_only",
"client_id": "mm-bid-1",
"mmp_enabled": true,
"nonce": 1791273600000,
"signature": "0x..."
},
{
"wallet": "0x...",
"symbol": "BTC-20260131-100000-C",
"price": "101.0",
"size": "0.1",
"side": "Sell",
"tif": "gtc",
"route": "book_only",
"client_id": "mm-ask-1",
"mmp_enabled": true,
"nonce": 1791273600001,
"signature": "0x..."
}
]
}'
Wichtige Regeln:
priceundsizesind Strings, sowohl im signierten Payload als auch im JSON-Body.- Die String-Formatierung muss exakt übereinstimmen zwischen Signatur und JSON-Body.
- Bulk-Orders sind auf 50 Orders pro Request begrenzt.
- Die Bulk-Route ist nur für das Orderbuch.
routedarfbook_onlysein oder weggelassen werden.route: "best_execution"wird bei Bulk-Orders abgelehnt; verwenden Sie dafürPOST /order.route: "rfq_only"wird derzeit auf jedem Order-Endpunkt abgelehnt. - Nonces sind Zeitstempel in Millisekunden. Eine Nonce, die mehr als zwei Tage vor oder mehr als einen Tag nach der Serverzeit liegt, wird abgelehnt. Siehe Nonce-Verwaltung.
- Die meisten Trading-Ablehnungen liefern HTTP 200 mit
status: "REJECTED". Prüfen Sie stets jedes einzelne Ergebnis.
4. Quotes aktualisieren
Verwenden Sie PUT /bulk_order, wenn Sie bestehende Quote-Orders stornieren und in einem einzigen Request Ersatz-Orders platzieren möchten.
curl -X PUT https://api.hypercall.xyz/bulk_order \
-H "Content-Type: application/json" \
-d '{
"replacements": [
{
"wallet": "0x...",
"order_id": 12345,
"symbol": "BTC-20260131-100000-C",
"price": "99.5",
"size": "0.1",
"side": "Buy",
"tif": "gtc",
"client_id": "mm-bid-1",
"mmp_enabled": true,
"nonce": 1791273600002,
"signature": "0x..."
}
]
}'
Ersatz-Orders enthalten kein route-Feld und werden als ReplaceOrder signiert, das die alte orderId zu den Order-Feldern hinzufügt. Siehe Authentifizierung & Signierung.
PUT /bulk_order storniert den alten Batch, bevor der neue Batch erstellt wird. Die Ergebnisse werden pro Ersatz-Order in der Reihenfolge des Requests zurückgegeben. Schlägt eine Stornierung fehl, wird die zugehörige Ersatz-Order nicht erstellt.
Für eine einzelne latenzkritische Ersetzung verwenden Sie PUT /order.
5. Updates abonnieren
Verbinden Sie sich mit dem produktiven WebSocket:
const ws = new WebSocket("wss://api.hypercall.xyz/ws");
ws.onopen = () => {
ws.send(JSON.stringify({ type: "Authenticate", wallet: "0xYourWallet" }));
ws.send(JSON.stringify({ type: "Subscribe", channel: "order_updates" }));
ws.send(JSON.stringify({ type: "Subscribe", channel: "fills" }));
ws.send(JSON.stringify({ type: "Subscribe", channel: "portfolio" }));
};
Verwenden Sie:
order_updatesfür Statusänderungen von Orders, einschließlichPARTIALLY_FILLED. Das Feldfilled_sizegibt die kumulierte ausgeführte Menge der Order an.fillsfür einzelne Ausführungen und ihre jeweiligen Mengen pro Fill.portfoliofür Aktualisierungen des Kontostatus.orderbook,trades,options_chainundindex_pricesfür öffentliche Marktdaten.
Kanalformate und Liveness-Verhalten finden Sie unter WebSocket-API.
6. Status abgleichen
Führen Sie eine Abgleichsschleife aus, auch wenn Ihre WebSocket-Verbindung stabil ist.
| Status | REST-Fallback | WebSocket-Kanal |
|---|---|---|
| Orders | GET /orders?wallet=... | order_updates |
| Fills | GET /fills?wallet=... | fills |
| Portfolio | GET /portfolio?wallet=... | portfolio |
| Märkte | GET /markets, GET /instrument-specs | market_updates, options_chain |
Empfohlene Schleife:
- Märkte laden beim Start.
- Offene Orders und letzte Fills laden, bevor Sie quotieren.
- WebSocket-Updates abonnieren.
- Mit deterministischen Client-IDs quotieren.
- REST regelmäßig abfragen, um sich nach Verbindungsabbrüchen oder verpassten Nachrichten zu erholen.
- Bei unbekanntem Status das Quotieren einstellen, bis REST- und WebSocket-Status wieder übereinstimmen.
7. Umfang des Launches verstehen
Mainnet Alpha ist bewusst eingeschränkt.
- Margin: Standard Margin und Portfolio Margin sind beide live. Jedes Konto kann zu Portfolio Margin wechseln, sobald sich sein HyperCore-Konto im Unified-Modus befindet.
- Short-Positionen in Optionen: Short-Positionen in Optionen unter Standard Margin sind aktiviert, vorbehaltlich der Margin und der Limits Ihres Tiers. Prüfen Sie
GET /risk/limits?wallet=...aufstandard_margin_shorts_enabled. - Perps: Perp-Orders verwenden eine separate Signatur-Domain und einen eigenen Endpunkt. Siehe Authentifizierung & Signierung.
- Indikatives Streaming: Quote-Provider-Streams sind nur per Allowlist verfügbar und noch kein allgemeiner öffentlicher Integrationsweg.
- Liquidations-Tooling: Das öffentliche Liquidator-Crate ist für Liquidations-Workflows im Standard Margin gedacht, nicht für reguläres Market Making.
- Testnet: nicht verfügbar, bis Hypercall weiteres Testnet-HYPE beschafft hat.
Häufige Probleme
Signaturprüfung fehlgeschlagen
- Prüfen Sie, ob
priceundsizeJSON-Strings sind. - Prüfen Sie, ob die signierten Strings exakt mit den übermittelten Strings übereinstimmen.
- Verwenden Sie für die Produktionsumgebung die Chain-ID
999. - Verwenden Sie für jeden signierten Schreibvorgang eine neue Nonce.
- Stellen Sie sicher, dass der Signierer das Wallet selbst oder ein genehmigter Agent ist.
Unzureichende Margin
- Prüfen Sie
GET /portfolio?wallet=.... - Fügen Sie Sicherheiten hinzu oder reduzieren Sie die Quote-Größe.
- Stellen Sie sicher, dass Ihr Wallet über die für die quotierte Strategie erforderliche Zugriffsstufe verfügt.
Verkauf wegen Zugriff oder Deckung abgelehnt
- Prüfen Sie
GET /risk/limits?wallet=.... Einige Tiers erlauben nur Verkäufe, die durch ausgeführte Long-Bestände gedeckt sind. - Kontaktieren Sie Hypercall, wenn Ihr Wallet ein anderes Tier benötigt.
Keine Fills über WebSocket
- Senden Sie eine
Authenticate-Nachricht, bevor Sie authentifizierte Kanäle abonnieren. - Abonnieren Sie
fills, nicht nurorder_updates. - Greifen Sie nach einem erneuten Verbindungsaufbau auf
GET /fills?wallet=...zurück.
Nächste Schritte
- Authentifizierung: Authentifizierung & Signierung
- WebSocket-Protokoll: WebSocket-API
- Rate Limits: Rate Limits
- Fehler: Fehler & Ablehnungsgründe
- Referenz: API-Referenz