walletTxs subscription has zero rate limits and scales to thousands of concurrent wallet subscriptions on a single connection.
What you get
- One connection, many wallets. Pass an array of wallet addresses; updates for any of them come through the same stream.
- Pre-decoded events. Fills, funding, vault actions, ledger events, deposits, withdrawals, and delegations come through as typed GraphQL union members - no parsing.
- Liquidation context inline. When a fill is part of a liquidation, the
liquidationblock is attached directly. - Sub-second latency. Tokyo-colocated, validator-peered ingestion.
Subscribe
Patterns
Copy-trading
Subscribe to a curated list of high-PnL wallets. Filter the incoming stream onHypercoreFillTransaction, then mirror the coin, side, and size to your own execution layer.
Live whale feed
Subscribe to the top-N wallets by balance or notional position. Display every fill, liquidation, and large transfer in a chronological tape.Liquidation alerts
Filter the stream onHypercoreFillTransaction events where liquidation is non-null. Push the event payload to a notification channel (Discord, Telegram, push). Each event includes the liquidated user, mark price, and method (Market vs Backstop).
Position monitoring
Pair the stream with periodicclearinghouseState calls to maintain accurate per-wallet position state without polling between fills.
Production considerations
The happy-path example above is enough to prototype. Three things to add before shipping:- Reconnect on close or error. The
completecallback fires on a clean stream close;errorfires on transport errors. In both cases, re-invoke the subscribe function with backoff so the firehose self-heals after network blips:
TypeScript
- Validate addresses up front. Malformed wallet addresses can surface via
errorand tear down the whole subscription. Pre-filter the input list with/^0x[a-fA-F0-9]{40}$/(or your library’s validator) before passing it in. - No gap-fill on reconnect. The subscription delivers events from the moment it opens - events that occurred during a disconnect are not replayed. For continuity across the gap, query
userFillsByTimeover the disconnect window after reconnecting.
Scaling
| Scale | Approach |
|---|---|
| Up to ~1,000 wallets | One subscription with the full address list. |
| 1,000 – 10,000+ wallets | Shard across multiple subscriptions on the same connection. The SDK reuses one WebSocket. |
| Live cohort changes | Unsubscribe and resubscribe with the new address list - no need to tear down the connection. |
Pair address format
Hyperliquid markets use a deployer-prefix naming scheme. The exact string differs by surface, so pass the value each API expects - matching is case- and format-sensitive.| Where it’s used | Format | Examples |
|---|---|---|
WebSocket coin (l2Book, l2BookDiff, l4Book) - canonical perps | <symbol> | BTC, ETH, HYPE |
WebSocket coin - HIP-3 builder markets | <deployer>:<symbol> | xyz:GOLD, flx:OIL |
Streaming pair_addresses (ohlcvCandlesForPair) | <deployer>:<symbol>-<quote>, or <symbol>-<quote> for canonical pairs | xyz:GOLD-USDC, flx:OIL-USDH, BTC-USDC |
Streaming token_addresses (ohlcvCandlesForToken) | <symbol> (no prefix) | GOLD, OIL, BTC |
deployer- wallet address of the HIP-3 builder that deployed the market. Omitted for canonical Hyperliquid markets.symbol- market ticker (e.g.GOLD,OIL).quote- the margin / quote currency, usuallyUSDC(some HIP-3 markets useUSDH).
HIP-4 outcome markets use a separate
#<encoding> scheme (e.g. #1230), not the deployer-prefix - see HIP-4 Markets.perpDexs Info API type) is on the roadmap. Until it ships, call metaAndAssetCtxs - the name field on each universe entry is the canonical pair address.
Related
HypercoreFillTransaction- full type reference.HypercoreLedgerEvent- vault, staking, borrow/lend, rewards subtypes.- Liquidations and vault events - full decoded-event walkthrough.
- Wallet Activity Stream - subscription reference.