Parsed Streams 处于封闭测试阶段。目前仅限于列入白名单的项目 ID,API 可能会在公开可用之前更改。要加入封闭测试,申请请点击这里。
什么是解析流?
解析流是一个WebSocket服务,监控每个已确认的Solana交易(不包括投票交易),对其进行解码,并将符合您定义的过滤条件的交易推送给您。您可以说“我关心Jupiter路径指令”或“我关心任何涉及该账户的事项”,服务器将为您进行监控、解码和匹配。 您将收到完整的交易,已经解码:每个带有命名参数和命名账户的指令,加上费用、完整账户密钥列表、交易级别的summary、自 SOL 和代币转账、以及与您的过滤器匹配的确切指令的指针。所有数据均以确认的承诺交付。
心智模型
如果您已经了解Solana的内部结构,请跳过。如果不了解,这是整个API构建的模型。 交易是一个已签名的消息。它指定了一名付款账户,列出其将接触的每个账户,并携带指令列表。查看时,您会看到:签名(其唯一标识)、其所在的槽位、支付的费用、账户密钥、成功与否以及指令。 指令是一个动作:运行这个程序,使用这些输入和账户。在Jupiter上的交换、代币转移、备忘录。一个交易通常携带多个指令,并按顺序执行。 程序可以调用其他程序。 当Jupiter执行交换时,它本身并不移动代币。它的路线指令调用代币程序来移动代币以及持有流动性的交换程序。这些嵌套调用也是指令,称为内部指令(或CPI,跨程序调用)。这在编写过滤器时很重要:许多实际活动,例如交换中的实际代币移动,发生在内部指令中,因此默认情况下您的过滤器会匹配它们。如果您只想要用户签署的指令,请将includeCpi设置为false。
账户是指令处理的链上实体:钱包、代币余额、池、铸币。每个指令都以地址的有序列表携带它们,顺序即为契约:程序定义每个位置的含义。例如,代币程序期望首先从账户中取出代币,然后是接收账户,再然后是批准转账的所有者。
角色为这些位置命名。大多数知名程序为其接口发布机器可读手册,称为IDL。手册列出了程序的每个指令,其数据字段的含义,以及每个账户位置的用途。Helius为数千个程序保留了这些手册的目录。使用它,一个裸地址列表就变成了命名账户:对代币转移,位置0变为source,位置1变为destination,位置2变为authority。您无需猜测第三个地址的含义,只需读取{"name": "authority", "pubkey": "9xQe...", "isSigner": true}。这些名称是您可以过滤的角色。
解码是应用于指令输入数据的相同概念。在传输中,该数据是模糊的字节。通过程序手册,这些字节变成命名值:{"in_amount": "1000000", "slippage_bps": 50}。并非每个指令都可以解码,因此每个指令有三种状态,您可以直接从其字段中看到:
- 解码:指令携带一个
decoded对象,其中包含命名的args和命名的accounts。 - 识别:在
decoded之上,指令还携带一个summary,其中有一个type(例如swap)、人类可读的description、以及结构化的parsedData有效负载,例如带有数量和铸币的交换元数据。 - 未解码:程序或指令不在目录中,
decoded是null,并且指令携带原始字节(rawData)和纯地址列表(rawAccounts)代替,所以您始终有东西可处理。
programs:指令调用的程序instructionNames:程序手册称之为的操作accounts.include:触及的地址accounts.roles:哪个命名位置必须包含哪个地址includeCpi和includeFailed:是否计算内部指令和失败的交易
对比
对比增强型 WebSockets
增强型 WebSockets 流传输完整交易或账户更新而不解码。Parsed Streams 在指令级匹配并为您解码所有内容。
对比 LaserStream gRPC
LaserStream 是一个高吞吐量的 gRPC 数据流,您在客户端进行过滤和解码。Parsed Streams 是一个在服务器上过滤和解码的 WebSocket API。
对比解析事件
解析事件 对历史交易应用相同的解码:解析签名或按需通过 REST 和 GraphQL 浏览地址的历史记录。Parsed Streams 在交易发生时推送新交易。
支持的程序
Parsed Streams 从其链上 IDL 解码3600+ 个程序,加上 SPL Token、Token-2022 和系统程序等核心程序,通过内置解码器。您可以按任何程序地址进行过滤。服务无法解码的指令将作为原始指令数据流传。 一些使用最多的解码程序:DEXs 及 AMMs
DEXs 及 AMMs
发射台
发射台
借贷及 Perps
借贷及 Perps
NFTs 及压缩
NFTs 及压缩
访问
仅白名单项目 ID 可以在封闭测试期间连接。Helius 团队在您的项目被列入白名单时与您共享连接端点。 通过传递为api-key 查询参数(或 x-api-key 标头)来使用您的项目 API 密钥进行身份验证。连接打开时会检查密钥:缺失、无效或未列入白名单的密钥将被拒绝并显示 HTTP 401,而达到其连接上限的项目将获得 HTTP 429。
入门
快速开始
连接,发送您的第一个过滤器,并阅读通知。
跟踪 Jupiter 交换
构建并订阅一个使用程序发现的真实过滤器。
跟踪 Pump.fun 铸币
一个重新连接安全的监听器,记录每个新的 Pump.fun 代币部署。
处理重连
检测断开连接,暂停重试,重新订阅,并填补错过的时隙。