Docs
Docs
Home
Getting Started
Agent Tooling
CLI
Supported Chains
Acala
Aptos
Arbitrum
Arc
Asset Hub
Astar
Avalanche
Base
Berachain
Bifrost
Binance Smart Chain
Bittensor
Blast
Boba Network
Bridge Hub
Celo
Centrifuge
Chiliz
Cronos
Enjin
Ethereum
Etherlink
Flow EVM Gateway
Gnosis
Hydration
Hyperliquid
Immutable
Ink
IoTeX
Kusama
Linea
LISK
Manta Atlantic
Manta Pacific
Mantle
MegaETH
Monad
Movement
Neuroweb
opBNB
Optimism
Plasma
Polkadot
Polygon
Pulsechain
Robinhood
Ronin
Scroll
Sonic
Starknet
Taiko
Tempo
Sui
TRON
Unichain
Viction
World Chain
XDC Network
XX Network
Zetachain
zkSync Era
Zora
Supported ChainsHyperliquidHyperliquid HyperCoregRPC Streaming API

StreamLiquidationFills - Stream Liquidation Fills

Subscribe to live Hyperliquid liquidation fills and optionally filter by coin or liquidated account over V3 gRPC.

Hyperliquid RPC endpoint: endpoint URLs, plans and pricing.

StreamLiquidationFills sends fills that carry liquidation metadata. liquidated_users targets fill.liquidation.liquidated_user, not the account in fill.user.

Request and live-only behavior

Empty coins and liquidated_users lists select all liquidation fills. Coins match exactly. Liquidated-user addresses match case-insensitively, and the two filters combine using AND semantics. Unknown coin values simply never match.

The stream has no opening snapshot or backfill. Frames emptied by filtering remain present so the per-subscription sequence stays contiguous.

Go request
package main

import (
    "context"
    "crypto/tls"
    "log"
    "os"

    pb "example.com/hyperliquid-v3-client/gen/v3"
    "google.golang.org/grpc"
    "google.golang.org/grpc/credentials"
    "google.golang.org/grpc/metadata"
)

func main() {
    endpoint, apiKey := os.Getenv("HYPERLIQUID_GRPC_ENDPOINT"), os.Getenv("DWELLIR_API_KEY")
    if endpoint == "" || apiKey == "" {
        log.Fatal("set HYPERLIQUID_GRPC_ENDPOINT and DWELLIR_API_KEY")
    }
    conn, err := grpc.NewClient(endpoint, grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{MinVersion: tls.VersionTLS12})))
    if err != nil {
        log.Fatal(err)
    }
    defer conn.Close()
    ctx := metadata.AppendToOutgoingContext(context.Background(), "x-api-key", apiKey)
    stream, err := pb.NewMarketStreamingClient(conn).StreamLiquidationFills(ctx, &pb.LiquidationFillsRequest{
        Coins: []string{"BTC", "ETH"},
        LiquidatedUsers: []string{"0x3333333333333333333333333333333333333333"},
    })
    if err != nil {
        log.Fatal(err)
    }
    var last uint64
    for {
        update, err := stream.Recv()
        if err != nil {
            log.Fatal(err)
        }
        if update.GetSequence() != last+1 {
            log.Fatalf("sequence gap: got=%d expected=%d", update.GetSequence(), last+1)
        }
        last = update.GetSequence()
        log.Printf("block=%d sequence=%d fills=%d", update.GetBlockNumber(), update.GetSequence(), len(update.GetFills()))
    }
}

Sequencing and recovery

Require contiguous sequence values. A gap or ABORTED means loss; reconnect for live data and recover the missing blocks through StreamFills or historical data. See the gRPC overview for shared errors.

Related references: StreamAllFills and StreamTrades.

StreamBuilderFills - Stream Builder Fills

Subscribe to live Hyperliquid fills attributed to one builder, optionally scoped by coin, over the V3 gRPC API.

StreamCandle - Stream Live OHLCV Candles

Subscribe to sparse, live Hyperliquid OHLCV bucket snapshots for one coin and interval over the V3 gRPC API.

On this page

Request and live-only behaviorSequencing and recovery