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

# blockSubscribe

> 订阅以在新的区块被 `confirmed` 或 `finalized` 时接收通知。

<Note>
  此订阅被视为**不稳定的**，仅当验证器以 `--rpc-pubsub-enable-block-subscription` 标志启动时可用。此订阅的格式可能会在未来发生变化。
</Note>

<Warning>
  这是一个不稳定的 RPC 方法，**Helius 不支持**。此文档仅供参考。
</Warning>

## 端点

主网和开发网上可用 Websockets，使用以下 URL：

* **Mainnet** `wss://mainnet.helius-rpc.com/?api-key=<api-key>`
* **Devnet** `wss://devnet.helius-rpc.com/?api-key=<api-key>`

<Note>Websockets 有 10 分钟的不活动计时器；强烈建议实施健康检查并每分钟发送 ping 以保持 websocket 连接活跃。</Note>

## 授权

<ParamField query="api-key" type="string" required>
  您的 Helius API 密钥。您可以在[仪表板](https://dashboard.helius.dev/api-keys)中免费获取一个。
</ParamField>

## 正文

<ParamField body="params" type="array" required>
  <Expandable title="properties" defaultOpen>
    <ParamField body="filter" type="string | object" required>
      日志接收结果的筛选条件，根据账户类型；当前支持：

      * `all` - 包含块中的所有交易
      * 一个 JSON 对象，具有以下字段：
        * `mentionsAccountOrProgram: <string>` - 仅返回提到提供的公钥（以 base-58 编码字符串）的交易。如果在给定区块中没有提到，则不会发送通知。
    </ParamField>

    <ParamField body="config" type="object">
      包含以下字段的配置对象：

      <ParamField body="commitment" type="string">
        订阅的承诺级别。可以是 `finalized`, `confirmed`, 或 `processed`。
      </ParamField>

      <ParamField body="encoding" type="string">
        交易数据的编码格式。
      </ParamField>

      <ParamField body="transactionDetails" type="string">
        返回的交易详细水平。
      </ParamField>

      <ParamField body="maxSupportedTransactionVersion" type="number">
        响应中返回的最大交易版本。
      </ParamField>

      <ParamField body="showRewards" type="boolean">
        是否在响应中显示奖励。
      </ParamField>
    </ParamField>
  </Expandable>
</ParamField>

## 响应

<ResponseField name="result" type="integer">
  订阅ID（取消订阅时需要）
</ResponseField>

## 通知格式

通知将是一个具有以下字段的对象：

* `slot: <u64>` - 相应的槽位。
* `err: <object|null>` - 如果发布通知出错则为错误，否则为空。
* `block: <object|null>` - 在 `getBlock` RPC HTTP 方法中看到的块对象。

<RequestExample>
  ```json Request theme={"system"}
  {
    "jsonrpc": "2.0",
    "id": "1",
    "method": "blockSubscribe",
    "params": [
      {
        "mentionsAccountOrProgram": "LieKvPRE8XeX3Y2xVNHjKlpAScD12lYySBVQ4HqoJ5op"
      },
      {
        "commitment": "confirmed",
        "encoding": "base64",
        "showRewards": true,
        "transactionDetails": "full"
      }
    ]
  }
  ```
</RequestExample>

<ResponseExample>
  代码\_占位符\_7e5a019e03cd8517\_END

  代码\_占位符\_cbf0b64559e6bbf1\_END
</ResponseExample>
