> ## Documentation Index
> Fetch the complete documentation index at: https://hypernode-docs.polynode.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Choosing Your Subscription

> Pick the right filters for your use case

Every WebSocket connection starts with a subscribe message. The filters you choose determine which events you receive.

## By use case

### Whale tracking

See every order placed on HyperLiquid. Filter client-side by notional size.

```json theme={null}
{"action": "subscribe", "filters": {"action_types": ["order"]}}
```

The umbrella type `"order"` matches: `order`, `order_filled`, `order_canceled`, `order_rejected`.

**Volume:** \~2,000 events/sec across all assets.

### Track a specific wallet

```json theme={null}
{"action": "subscribe", "filters": {"addresses": ["0xd071d6d6ea52f5aa34b79e47f908ee48c8215837"]}}
```

### Copy trading

```json theme={null}
{
  "action": "subscribe",
  "filters": {
    "addresses": ["0xd071d6d6ea52f5aa34b79e47f908ee48c8215837"],
    "action_types": ["fill"]
  }
}
```

### Market making signals

Pre-consensus cancels and modifications tell you the order book is about to change.

```json theme={null}
{
  "action": "subscribe",
  "filters": {
    "action_types": ["cancel", "cancelByCloid", "batchModify"],
    "assets": ["BTC"]
  }
}
```

### All activity on one asset

```json theme={null}
{"action": "subscribe", "filters": {"assets": ["BTC"]}}
```

### Liquidation monitoring

```json theme={null}
{"action": "subscribe", "filters": {"action_types": ["order"]}}
```

Filter client-side for `event.type === "order_rejected"` and check `event.data.status` for margin rejections.

### Prediction markets

```json theme={null}
{"action": "subscribe", "filters": {"assets": ["#39890"]}}
```

### Full firehose

```json theme={null}
{"action": "subscribe"}
```

\~6,500 events/sec.

## Multiple subscriptions

You can send multiple subscribe messages on one connection. Each creates a separate subscription. Events matching any subscription are delivered.

```typescript theme={null}
ws.send(JSON.stringify({
  action: "subscribe",
  filters: {assets: ["BTC"], action_types: ["fill"]}
}));

ws.send(JSON.stringify({
  action: "subscribe",
  filters: {addresses: ["0xabc..."]}
}));
```

## Unsubscribe

```json theme={null}
{"action": "unsubscribe", "filters": {"assets": ["BTC"], "action_types": ["fill"]}}
```

## Quick reference

| Goal                            | Filters                                     |
| ------------------------------- | ------------------------------------------- |
| Track a wallet (all activity)   | addresses only                              |
| Track a wallet (trades only)    | addresses + action\_types: fill             |
| Track an asset (orders + fills) | assets + action\_types: order, fill         |
| Early cancel signal             | assets + action\_types: cancel, batchModify |
| Liquidation signals             | action\_types: order, filter client-side    |
| Prediction markets              | assets with # prefix                        |
| Everything (firehose)           | no filters                                  |
