Overzicht
Hyperliquid gRPC is een krachtige streaming-API die realtime toegang tot blockchain-gegevens mogelijk maakt via gRPC-interfaces. Het is een krachtig hulpmiddel voor ontwikkelaars die:
- Blockchain-gegevens in realtime streamen
- On-chain-activiteiten volgen (transacties, orders, liquidaties, funding-gebeurtenissen)
- De statussen van de HyperCore-blockchain efficiënt opvragen
- Volg TWAP-uitvoeringen en wijzigingen in het orderboek met minimale vertraging
De API biedt betrouwbaarheid op bedrijfsniveau en gedetailleerde controle over gegevensstromen, en ondersteunt zowel HyperCore- als HyperEVM-gegevens.
Toegang tot /hypercore (JSON-RPC en WebSocket) en HyperCore gRPC-streaming vereisen een Quicknode Build-abonnement of hoger. Prijzen bekijken om te upgraden.
Protocol Buffers en gRPC
Hyperliquid gRPC maakt gebruik van Protocol Buffers (protobuf) als interface-definitietaal en als formaat voor gegevensserialisatie. Protocol Buffers is het taalonafhankelijke en platformonafhankelijke mechanisme van Google voor het serialiseren van gestructureerde gegevens.
Waarom Proto-bestanden?
Proto-bestanden (.proto bestanden) fungeren als de overeenkomst tussen client en server, waarin het volgende wordt vastgelegd:
- Gegevensstructuren – De exacte indeling van de uitgewisselde berichten (velden, typen, verplicht versus optioneel)
- Servicemethoden - Beschikbare RPC-aanroepen en hun verzoek-/antwoordtypen
- Typeveiligheid – Validatie tijdens het compileren om de juistheid van gegevens te waarborgen
- Versiebeheer – Ingebouwde achterwaartse compatibiliteit naarmate API’s zich verder ontwikkelen
Waarom gRPC gebruikmaakt van Proto-bestanden
- Taalonafhankelijk – Schrijf de proto-definitie één keer en genereer clientbibliotheken voor meer dan 10 talen (Go, Python, JavaScript, Java, C++, enz.). Hetzelfde proto-bestand werkt op alle platforms.
- Hoge prestaties - Binaire serialisatie is aanzienlijk sneller en neemt minder ruimte in beslag dan JSON. Protobuf-berichten zijn doorgaans 3 tot 10 keer kleiner dan vergelijkbare JSON-berichten, waardoor er minder bandbreedte nodig is en de latentie wordt verbeterd.
- Strikte typecontrole – Proto-definities zorgen ervoor dat typen tijdens het compileren strikt worden nageleefd, waardoor fouten al vóór de uitvoering worden opgespoord. Veldtypen, berichtenstructuren en opsommingen worden automatisch gevalideerd.
- Codegeneratie - De
protocDe compiler genereert automatisch client-stubs, server-interfaces en berichtklassen op basis van proto-bestanden. Hierdoor is handmatige serialisatiecode overbodig en worden er minder fouten gemaakt. - Schema-evolutie - Proto-bestanden ondersteunen zowel achterwaartse als voorwaartse compatibiliteit door middel van veldnummering. Je kunt nieuwe velden toevoegen zonder dat dit gevolgen heeft voor bestaande clients, waardoor naadloze API-updates mogelijk zijn.
- Ondersteuning voor streaming – Proto-definities bieden standaard ondersteuning voor unaire, server-streaming, client-streaming en bidirectionele streamingpatronen, die Hyperliquid op grote schaal gebruikt voor realtime gegevens.
Proto-bestanden gebruiken met Hyperliquid
Als je met Hyperliquid gRPC werkt, download je de proto-bestanden en gebruik je die om clientcode te genereren. Hyperliquid biedt twee proto-bestanden voor verschillende services:
1. streaming.proto - Belangrijkste blockchain-streamingdiensten:
- Ping - Controles van de verbindingsstatus
- StreamBlocks - Streaming van ruwe blockchain-gegevens
- StreamData - Abonnementen op gegevens uit meerdere streams (transacties, orders, gebeurtenissen, enz.)
2. orderbook.proto - Streamingdiensten voor orderboeken:
- StreamL2Book - Geaggregeerde gegevens over het prijsniveau
- StreamL4Book - Gegevens op individueel bestelniveau
- StreamBboBook - Wijzigingen in de hoogste bied- en laatkoersen aan het begin van het boek
- StreamL2BookDiff - Incrementele veranderingen in het L2-prijsniveau
- StreamL4BookUpdates - Getypeerde verschillen per bestelling (toevoegingen/wijzigingen/verwijderingen)
- StreamTpslUpdates - Trigger (TP/SL) updates voor het toevoegen/verwijderen van orders
# Voorbeeld: Een Go-client genereren op basis van proto-bestanden
protoc --go_out=. --go-grpc_out=. streaming.proto
protoc --go_out=. --go-grpc_out=. orderbook.proto
De gegenereerde code biedt typveilige methoden zoals:
// Type-safe subscription with auto-complete
const request = new Subscribe({
stream_type: StreamType.TRADES,
filters: {
coin: { values: ['BTC', 'ETH'] }
}
});
Alle installatiehandleidingen in de volgende paragrafen bevatten instructies voor het downloaden van proto-bestanden en het genereren van clientcode voor jouw programmeertaal.
Toegang
Om toegang te krijgen tot Hyperliquid gRPC, moet je beschikken over een Quicknode-eindpunt waarop gRPC-streaming is ingeschakeld. gRPC-streaming is beschikbaar op zowel het Mainnet als het Testnet.
Configuratie van eindpunten en tokens
Hyperliquid gRPC werkt op poort 10000. Dit is een speciale, beveiligde poort voor gRPC-communicatie, die losstaat van het standaard Hyperliquid RPC-eindpunt. Bij het verbinden met de service moet de poort in de URL worden opgegeven:
- Eindpunt: De naam van je gRPC-endpunt, gevolgd door
.hype-mainnet.quiknode.pro(voor Mainnet) of.hype-testnet.quiknode.pro(voor Testnet) en het poortnummer10000- Voorbeeld van het mainnet:
voorbeeld-handleiding-demo.hype-mainnet.quiknode.pro:10000 - Voorbeeld van een testnet:
voorbeeld-handleiding-demo.hype-testnet.quiknode.pro:10000
- Voorbeeld van het mainnet:
- Token: Je API-sleutel die je kunt genereren via het tabblad ‘Endpoint Security’ in het Quicknode-dashboard.
Voorbeeld van het mainnet:
Gegeven de URL van de HTTP-provider: https://example-guide-demo.hype-mainnet.quiknode.pro/abc123def456/, dan zouden je inloggegevens als volgt zijn:
- Eindpunt:
voorbeeld-handleiding-demo.hype-mainnet.quiknode.pro:10000 - Token:
abc123def456
Voorbeeld van een testnet:
Gegeven de URL van de HTTP-provider: https://example-guide-demo.hype-testnet.quiknode.pro/abc123def456/, dan zouden je inloggegevens als volgt zijn:
- Eindpunt:
voorbeeld-handleiding-demo.hype-testnet.quiknode.pro:10000 - Token:
abc123def456
Hier volgt een voorbeeld van hoe je dit eindpunt kunt gebruiken om verbinding te maken met Node.js:
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');
// Voorbeeld voor het mainnet
// Voor de URL van de HTTP-provider: https://example-guide-demo.hype-mainnet.quiknode.pro/abc123def456/
const ENDPOINT = 'example-guide-demo.hype-mainnet.quiknode.pro:10000';
const TOKEN = 'abc123def456';
// Voorbeeld voor het testnet
// Voor HTTP-provider-URL: https://example-guide-demo.hype-testnet.quiknode.pro/abc123def456/
// const ENDPOINT = 'example-guide-demo.hype-testnet.quiknode.pro:10000';
// const TOKEN = 'abc123def456';
const client = new hyperliquid.Hyperliquid(EINDPUNT, inloggegevens);
const metadata = new grpc.Metadata();
metadata.toevoegen('x-token', TOKEN);
Tarieven voor gedateerde gegevens
Alle gRPC-methoden van Hyperliquid worden gefactureerd op basis van het dataverbruik:
- Standaardmethoden (Ping, StreamBlocks, StreamData):
0,1 MB = 10 API-credits - OrderBook-methoden (StreamL2Book, StreamL4Book, StreamBboBook, StreamL2BookDiff, StreamL4BookUpdates, StreamTpslUpdates):
0,0165 MB = 10 API-credits
Beschikbare gRPC-methoden
Hyperliquid biedt de volgende gRPC-streamingmethoden:
Belangrijkste streamingmethoden (streaming.proto)
- Ping - Controleer de verbinding en houd de verbinding in stand
- StreamBlocks - Raw HyperCore-blockchaingegevens streamen
- StreamData - Bidirectionele streaming voor transacties, orders, gebeurtenissen en meer
Methoden voor het streamen van orderboeken (orderbook.proto)
- StreamL2Book - Stream het geaggregeerde orderboek met configureerbare prijsniveaus (L2-gegevens)
- StreamL4Book - Stream individuele bestelgegevens met volledige momentopnames en incrementele verschillen (L4-gegevens)
- StreamBboBook - Stream de wijzigingen in de hoogste bied- en laatkoersen aan het begin van het boek voor één of meer munten
- StreamL2BookDiff - Stroom van incrementele L2-prijsveranderingen met volgnummers
- StreamL4BookUpdates - Stream met getypeerde verschillen per bestelling (nieuw/bijgewerkt/verwijderd)
- StreamTpslUpdates - Updates voor het toevoegen/verwijderen van orders via de streamtrigger (TP/SL)
StreamData-streamtypen
De StreamData -methode ondersteunt de volgende streamtypen voor realtime blockchain-gegevens:
| Stroomtype | Beschrijving | Belangrijkste gebruiksscenario |
|---|---|---|
| BEROEPEN | Alle uitgevoerde transacties met koers, omvang en richting | Handelsanalyses, prijsvolging |
| BESTELLINGEN | Gebeurtenissen in de levenscyclus van een order (meer dan 18 statustypen, waaronder uitvoeringen en annuleringen) | Orderbeheer, toezicht op de uitvoering |
| BOEK_UPDATES | Wijzigingen in het orderboek (Level 2-gegevens) | Analyse van de marktdiepte, monitoring van de liquiditeit |
| TWAP | Gegevens over TWAP-uitvoering en voortgang van het algoritme | Algoritmische handel, analyse van de uitvoering |
| EVENEMENTEN | Systeemgebeurtenissen (financiering, liquidaties, bestuur) | Risicobeheer, systeemmonitoring |
| BLOKKEN | Ruwe HyperCore-blockchaingegevens (alle transactietypen) – te filteren op actietype of gebruiker | Blockchain-analyse, gegevensarchivering |
| WRITER_ACTIONS | Systeemprocedures voor directe tokenoverdrachten | Asset-tracking en systeemmonitoring in verschillende omgevingen |
| MEMPOOL_TXS | Transacties in de mempool die nog moeten worden bevestigd door een blok | MEV-detectie, transactiemonitoring, analyse vóór bevestiging |
| ORDER_PRIORITY | Genormaliseerde gebeurtenissen met betrekking tot de volgorde van prioriteitsvergoedingen uit de mempool en bevestigde blokken | Monitoring van de orderstroom op basis van prioriteitsvergoedingen, vergoedingsanalyse |
| GOSSIP_PRIORITEIT | Genormaliseerde ‘gossip’-/‘read-priority’-biedingen uit de mempool en bevestigde blokbronnen | Toezicht op veilingen met prioriteit voor roddels, analyse met prioriteit voor lezen |
Stroomfiltering
Alle Hyperliquid gRPC-streams bieden krachtige filtermogelijkheden, zodat u alleen de gegevens ontvangt die u nodig hebt. Met filters kunt u zich richten op specifieke handelsparen, gebruikers, gebeurtenistypen en meer, waardoor het bandbreedteverbruik aanzienlijk wordt verminderd en de prestaties worden verbeterd.
Voorbeeld van een gRPC-filter:
Subscribe {
stream_type: TRADES,
filters: {
"coin": FilterValues { values: ["BTC", "ETH"] },
"side": FilterValues { values: ["B"] }
}
}
Volledige handleiding voor het filteren - Gedetailleerde documentatie met syntaxis, voorbeelden en veldreferenties voor alle streamtypen.
Streamingbeperkingen - Limieten voor het aantal gelijktijdige streams, zogenaamde filterlimieten en limieten per veldwaarde, afhankelijk van het abonnement.
Hyperliquid gRPC-verzoeken verzenden
Configuratie van de Core Streaming API
Om met verschillende programmeertalen verzoeken te doen aan de kern-streaming-API (StreamData, StreamBlocks, Ping):
Configuratie van de OrderBook Streaming API
Om orderboekgegevens te streamen met behulp van de OrderBookStreaming methoden (StreamL2Book, StreamL4Book, StreamBboBook, StreamL2BookDiff, StreamL4BookUpdates, StreamTpslUpdates):
- Go OrderBook instellen – Volledige handleiding met stapsgewijze instructies, van het opzetten van het project tot het verzenden van verzoeken
- Python OrderBook instellen – Volledige handleiding met stapsgewijze instructies, van het opzetten van het project tot het verzenden van verzoeken
- Node.js OrderBook instellen – Volledige handleiding met stapsgewijze instructies, van het opzetten van het project tot het verzenden van verzoeken
We ❤️ feedback!
Mocht je opmerkingen of vragen hebben over deze documentatie, laat het ons dan weten. We horen graag van je!