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
rpc ListFeeds(ListFeedsRequest) returns (ListFeedsResponse) {}The authenticated request has no parameters:
grpcurl -format json \
-proto v3.proto \
-H "x-api-key: ${DWELLIR_API_KEY}" \
-d '{}' \
"${HYPERLIQUID_GRPC_ENDPOINT}" \
hyperliquid_l1_gateway.v3.HyperliquidL1Gateway/ListFeedsgrpcurl -format json \
-proto v3.proto \
-H "x-api-key: ${DWELLIR_API_KEY}" \
-d '{}' \
"${HYPERLIQUID_GRPC_ENDPOINT}" \
hyperliquid_l1_gateway.v3.HyperliquidL1Gateway/ListFeedsCurrent feed inventory
An endpoint that serves every raw feed lists these seven:
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
| Field | Meaning |
|---|---|
feeds[].id | Stable feed identifier used by the gateway |
feeds[].source | Stable source identifier for the feed |
feeds[].position_kinds | Cursor 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_fields | Valid V3 FieldFilter.field values; empty means the feed is not filterable |
feeds[].progress | Default, 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
UNAUTHENTICATEDorPERMISSION_DENIEDmeans the request did not include usable credentials.- Transport failures and
UNAVAILABLEshould 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.