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

ListFeeds - Discover V3 Raw Feeds

Discover the raw feeds available from a Hyperliquid V3 gRPC endpoint, including supported cursors and server-side filter fields.

Hyperliquid RPC endpoint: endpoint URLs, plans and pricing.

ListFeeds returns the V3 raw feeds available on the selected endpoint. Call it during startup or capability refresh instead of assuming that every declared raw RPC is available.

Method signature

protobuf
rpc ListFeeds(ListFeedsRequest) returns (ListFeedsResponse) {}

The authenticated request has no parameters:

Bash
grpcurl -format json \
  -proto v3.proto \
  -H "x-api-key: ${DWELLIR_API_KEY}" \
  -d '{}' \
  "${HYPERLIQUID_GRPC_ENDPOINT}" \
  hyperliquid_l1_gateway.v3.HyperliquidL1Gateway/ListFeeds
cURL request
grpcurl -format json \
  -proto v3.proto \
  -H "x-api-key: ${DWELLIR_API_KEY}" \
  -d '{}' \
  "${HYPERLIQUID_GRPC_ENDPOINT}" \
  hyperliquid_l1_gateway.v3.HyperliquidL1Gateway/ListFeeds

Current feed inventory

An endpoint that serves every raw feed lists these seven:

protobuf
feeds: {
  id: "blocks"
  source: "replica_cmds"
  position_kinds: POSITION_KIND_TIMESTAMP
  position_kinds: POSITION_KIND_BLOCK_NUMBER
  progress: {
    default_interval_ms: 20000
    min_interval_ms: 10000
    max_interval_ms: 60000
  }
}
feeds: {
  id: "fills"
  source: "node_fills_by_block"
  position_kinds: POSITION_KIND_TIMESTAMP
  position_kinds: POSITION_KIND_BLOCK_NUMBER
  filter_fields: "users"
  filter_fields: "coins"
  filter_fields: "dexes"
  progress: {
    default_interval_ms: 20000
    min_interval_ms: 10000
    max_interval_ms: 60000
  }
}
feeds: {
  id: "mempool-txs"
  source: "mempool_txs"
  position_kinds: POSITION_KIND_TIMESTAMP
  position_kinds: POSITION_KIND_TIMESTAMP_NS
}
feeds: {
  id: "misc-events"
  source: "misc_events_by_block"
  position_kinds: POSITION_KIND_TIMESTAMP
  position_kinds: POSITION_KIND_BLOCK_NUMBER
  filter_fields: "users"
  progress: {
    default_interval_ms: 20000
    min_interval_ms: 10000
    max_interval_ms: 60000
  }
}
feeds: {
  id: "order-statuses"
  source: "node_order_statuses_by_block"
  position_kinds: POSITION_KIND_TIMESTAMP
  position_kinds: POSITION_KIND_BLOCK_NUMBER
  filter_fields: "users"
  filter_fields: "coins"
  filter_fields: "dexes"
  progress: {
    default_interval_ms: 20000
    min_interval_ms: 10000
    max_interval_ms: 60000
  }
}
feeds: {
  id: "raw-book-diffs"
  source: "node_raw_book_diffs_by_block"
  position_kinds: POSITION_KIND_TIMESTAMP
  position_kinds: POSITION_KIND_BLOCK_NUMBER
  filter_fields: "users"
  filter_fields: "coins"
  filter_fields: "dexes"
  progress: {
    default_interval_ms: 20000
    min_interval_ms: 10000
    max_interval_ms: 60000
  }
}
feeds: {
  id: "twap-statuses"
  source: "node_twap_statuses_by_block"
  position_kinds: POSITION_KIND_TIMESTAMP
  position_kinds: POSITION_KIND_BLOCK_NUMBER
  filter_fields: "users"
  filter_fields: "coins"
  filter_fields: "dexes"
  progress: {
    default_interval_ms: 20000
    min_interval_ms: 10000
    max_interval_ms: 60000
  }
}

Registries can vary by endpoint, and the mempool feed is not served everywhere. Call ListFeeds at runtime and refresh the inventory after changing endpoints.

Response fields

FieldMeaning
feeds[].idStable feed identifier used by the gateway
feeds[].sourceStable source identifier for the feed
feeds[].position_kindsCursor kinds accepted by that feed. mempool-txs accepts POSITION_KIND_TIMESTAMP and POSITION_KIND_TIMESTAMP_NS; the block-envelope feeds accept POSITION_KIND_TIMESTAMP and POSITION_KIND_BLOCK_NUMBER
feeds[].filter_fieldsValid V3 FieldFilter.field values; empty means the feed is not filterable
feeds[].progressDefault, minimum, and maximum progress frame interval in milliseconds; unset means the feed does not support progress frames

Order-book snapshots are intentionally outside the registry because they are generated from periodic ABCI state rather than exposed as a block-envelope feed. StreamOrderbookSnapshots and GetOrderbookSnapshot are the public methods for accessing them. Snapshot availability and maximum response size vary by endpoint. Oversized responses return RESOURCE_EXHAUSTED.

Errors

  • UNAUTHENTICATED or PERMISSION_DENIED means the request did not include usable credentials.
  • Transport failures and UNAVAILABLE should be handled with a bounded retry; keep the last known capabilities only if that fallback is acceptable for your application.

See the gRPC overview for positioning, filtering, retention, and recovery semantics shared by raw methods.

gRPC API

Versioned reference for Dwellir's Hyperliquid V3 raw feeds and market streams, with V2 compatibility guidance and Protocol Buffer contracts.

StreamBlocks - Real-time Block Streaming

Stream continuous block data from Hyperliquid L1 Gateway via gRPC. Complete reference for all 47 action types.

On this page

Method signatureCurrent feed inventoryResponse fieldsErrors