> ## 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.

# 解析流参考

> 用于 WebSocket 的解析流 JSON-RPC 方法的 API 参考。通过服务器端过滤订阅解码的 Solana 交易。

<Note>
  解析流处于**封闭测试阶段**。目前访问仅限于白名单中的项目 ID，在正式发布之前 API 可能会有所更改。如需加入封闭测试，请[在此申请](https://form.typeform.com/to/BlFWKbC9)。
</Note>

解析流使用单个 WebSocket 连接上的 **JSON-RPC 2.0**。每个请求都会收到具有相同 `id` 的响应。订阅后会推送 `parsedTransactionNotification` 消息，直到您取消订阅或断开连接。

| 方法                             | 目的              |
| ------------------------------ | --------------- |
| `parsedTransactionSubscribe`   | 使用过滤器启动订阅       |
| `parsedTransactionUnsubscribe` | 停止订阅            |
| `ping`                         | 活跃性检查；返回当前槽位    |
| `describeProgram`              | 列出程序的指令、事件和账户角色 |

<CardGroup cols={2}>
  <Card title="parsedTransactionSubscribe" href="/docs/zh/api-reference/parsed-streams/parsedtransactionsubscribe">
    订阅符合程序、账户和指令过滤器的解码交易。
  </Card>

  <Card title="parsedTransactionUnsubscribe" href="/docs/zh/api-reference/parsed-streams/parsedtransactionunsubscribe">
    按 ID 停止订阅。
  </Card>

  <Card title="ping" href="/docs/zh/api-reference/parsed-streams/ping">
    检查活跃状态并保持安静连接。
  </Card>

  <Card title="describeProgram" href="/docs/zh/api-reference/parsed-streams/describeprogram">
    发现匹配器对比的精确指令和角色名称。
  </Card>
</CardGroup>

## 连接

Helius 团队会将您的项目 ID 列入白名单，并与您共享连接端点。使用您项目的 API 密钥认证，通过 `api-key` 查询参数（或 `x-api-key` 头）：

```bash wscat theme={"system"}
wscat -c "wss://<ENDPOINT>/?api-key=YOUR_API_KEY"
```

缺失、无效或非白名单中的密钥将被拒绝，返回 HTTP 401。达到连接上限的项目将收到 HTTP 429。

## 限制

| 限制                       | 值                |
| ------------------------ | ---------------- |
| 每个项目的并发连接                | 100              |
| 每个连接的订阅                  | 25               |
| 客户端消息                    | 每秒 10 条，爆发时 20 条 |
| 客户端消息大小                  | 64 KiB           |
| `programs` 每个过滤器         | 10               |
| `instructionNames` 每个过滤器 | 50，每个最多 64 个字符   |
| `accounts.include` 每个过滤器 | 100              |
| `accounts.roles` 每个过滤器   | 20，每个名称最多 64 个字符 |
| 每个连接的出站缓冲区               | 2048 个通知，然后连接关闭  |

## 错误

错误遵循 JSON-RPC 2.0：`{ "error": { "code": <int>, "message": "<text>" }, "id": <id> }`。消息精确指出了问题所在。

| 代码       | 含义                         |
| -------- | -------------------------- |
| `-32700` | 解析错误（无效的 JSON）             |
| `-32600` | 无效请求                       |
| `-32601` | 找不到方法                      |
| `-32602` | 无效参数：错误的公钥、未知字段、不支持的承诺或详细值 |
| `-32000` | 超过过滤器限制                    |
| `-32001` | 服务器未准备好；重试需退避              |
| `-32002` | 速率限制（每秒 10 条消息）            |
| `-32006` | 太多订阅（每个连接 25 个）            |

连接也可能由于 WebSocket 关闭代码而关闭 — 参见 [处理重连](/docs/zh/parsed-streams/guides/handling-reconnects) 了解每个代码的含义及恢复方法。

## 了解更多

<CardGroup cols={2}>
  <Card title="解析流概览" href="/docs/zh/parsed-streams">
    解析流是什么以及过滤器背后的思维模型。
  </Card>

  <Card title="快速入门" href="/docs/zh/parsed-streams/quickstart">
    连接、发送您的第一个过滤器，并读取解码的通知。
  </Card>

  <Card title="解析事件参考" href="/docs/zh/api-reference/parsed-events/overview">
    通过 REST 或 GraphQL 按需查询相同的解码交易。
  </Card>

  <Card title="处理重连" href="/docs/zh/parsed-streams/guides/handling-reconnects">
    应对空闲超时和部署，然后精确补全您错过的内容。
  </Card>
</CardGroup>
