Diese Seite wurde maschinell übersetzt. Das englische Original ist maßgeblich. Auf Englisch lesen →
Zum Hauptinhalt springen

API-Trading

Nutzen Sie diesen Leitfaden, wenn Sie einen Market Maker, ein Quoting-System oder einen Ausführungsdienst mit Hypercall integrieren.

Produktions-API

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.

Streams nur per Allowlist

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.

CrateVerwendung
hypercall-clientREST-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-hyperliquidOptionales Hyperliquid-Hilfs-Crate für Integrationen, die zusätzlich auf Hyperliquid hedgen
hypercall-liquidatorReferenz-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 /markets für gelistete Basiswerte und Verfallsgruppen.
  • GET /instrument-specs?currency=BTC für handelbare Optionsspezifikationen.
  • GET /options-summary?currency=BTC fü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:

  1. Owner-Wallet genehmigt einen Agent mit POST /approve-agent.
  2. Agent-Wallet signiert Orders und Stornierungen für das Owner-Wallet.
  3. 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:

  • price und size sind 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. route darf book_only sein oder weggelassen werden. route: "best_execution" wird bei Bulk-Orders abgelehnt; verwenden Sie dafür POST /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_updates für Statusänderungen von Orders, einschließlich PARTIALLY_FILLED. Das Feld filled_size gibt die kumulierte ausgeführte Menge der Order an.
  • fills für einzelne Ausführungen und ihre jeweiligen Mengen pro Fill.
  • portfolio für Aktualisierungen des Kontostatus.
  • orderbook, trades, options_chain und index_prices fü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.

StatusREST-FallbackWebSocket-Kanal
OrdersGET /orders?wallet=...order_updates
FillsGET /fills?wallet=...fills
PortfolioGET /portfolio?wallet=...portfolio
MärkteGET /markets, GET /instrument-specsmarket_updates, options_chain

Empfohlene Schleife:

  1. Märkte laden beim Start.
  2. Offene Orders und letzte Fills laden, bevor Sie quotieren.
  3. WebSocket-Updates abonnieren.
  4. Mit deterministischen Client-IDs quotieren.
  5. REST regelmäßig abfragen, um sich nach Verbindungsabbrüchen oder verpassten Nachrichten zu erholen.
  6. 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=... auf standard_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 price und size JSON-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 nur order_updates.
  • Greifen Sie nach einem erneuten Verbindungsaufbau auf GET /fills?wallet=... zurück.

Nächste Schritte​