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

# Price Feed Event

> Real-time crypto price updates -- BTC, ETH, SOL, BNB, XRP, DOGE, HYPE.

Real-time crypto price data. Updates arrive approximately once per second per feed, streamed directly over WebSocket.

Subscribe with `"type": "chainlink"` to receive price feed events.

<Info>For the full guide including all 7 available feeds, filtering, and examples, see the **[Crypto Prices](/crypto/overview)** section.</Info>

```json theme={null}
{
  "type": "price_feed",
  "feed": "BTC/USD",
  "timestamp": 1774672089,
  "data": {
    "feed": "BTC/USD",
    "price": 66236.61,
    "bid": 66229.77,
    "ask": 66237.94,
    "timestamp": 1774672089
  }
}
```

## Subscribing

```json theme={null}
{"action": "subscribe", "type": "chainlink"}
```

With feed filter (only receive specific feeds):

```json theme={null}
{
  "action": "subscribe",
  "type": "chainlink",
  "filters": {
    "feeds": ["BTC/USD", "ETH/USD"]
  }
}
```

Omit the `feeds` filter to receive all available price feeds.

## Response

```json theme={null}
{
  "type": "subscribed",
  "subscriber_id": "550e8400-e29b-41d4-a716-446655440000",
  "subscription_type": "chainlink"
}
```

<Note>
  Price feed subscriptions do not include a snapshot. Events start arriving with the next price observation (\~1 second).
</Note>

## Fields

<ResponseField name="type" type="string" required>
  Always `"price_feed"`.
</ResponseField>

<ResponseField name="feed" type="string" required>
  Feed name (e.g. `"BTC/USD"`, `"ETH/USD"`).
</ResponseField>

<ResponseField name="timestamp" type="number" required>
  Observation timestamp in Unix seconds.
</ResponseField>

<ResponseField name="data" type="object" required>
  <Expandable title="data fields">
    <ResponseField name="feed" type="string" required>
      Feed name (e.g. `"BTC/USD"`).
    </ResponseField>

    <ResponseField name="price" type="number" required>
      Mid price in USD.
    </ResponseField>

    <ResponseField name="bid" type="number" required>
      Bid price in USD.
    </ResponseField>

    <ResponseField name="ask" type="number" required>
      Ask price in USD.
    </ResponseField>

    <ResponseField name="timestamp" type="number" required>
      Observation timestamp in Unix seconds.
    </ResponseField>
  </Expandable>
</ResponseField>

## Available feeds

| Feed       | Update rate |
| ---------- | ----------- |
| `BTC/USD`  | \~1/second  |
| `ETH/USD`  | \~1/second  |
| `SOL/USD`  | \~1/second  |
| `BNB/USD`  | \~1/second  |
| `XRP/USD`  | \~1/second  |
| `DOGE/USD` | \~1/second  |
| `HYPE/USD` | \~1/second  |

See **[Available Feeds](/crypto/feeds)** for detailed per-feed documentation.

## Dual subscription

Price feeds run on the same WebSocket connection as settlement subscriptions. Send both subscribe messages to receive both:

```json theme={null}
{"action": "subscribe", "type": "settlements"}
{"action": "subscribe", "type": "chainlink"}
```

Events arrive interleaved. Use the `type` field (`"settlement"` vs `"price_feed"`) to route them in your application.
