跳转到主要内容
使用 LaserStream SDK 实时流传每一个 Pump.fun 账户更新和交易。本页面提供一个完整的 TypeScript 脚本,您可以从头到尾运行:它在每笔交易到达时打印信息,每分钟报告滚动统计(吞吐量、唯一费用支付者、Sol 中的总费用),并在重连时自动保持连接。 这是对任何需要持续 Pump.fun 可见性项目的有用起点——交易机器人、分析仪表板、警报管道,或者只是探索数据形态以便您在其基础上构建更专业的东西。
先决条件: 一 个 Helius API 密钥(用于 Mainnet LaserStream 的商务或专业计划)和 Node.js 18+。熟悉 账户订阅交易监控 有帮助但不是必须的。

设置

创建一个新项目,安装 SDK + bs58(用于解码交易签名),并设置您的 API 密钥:
选择离此脚本运行位置最近的端点——参见 LaserStream 区域

脚本

将其另存为 index.ts,然后运行 npx ts-node index.ts

脚本的功能

一个订阅,两个过滤块

一个 subscribe(...) 调用包含两个命名的过滤组:
  • accounts 过滤接收每当数据变化时 Pump.fun 程序拥有的每个账户(债券曲线、铸造状态等)。
  • transactions 过滤接收每个与 Pump.fun 程序交互的交易。 vote: false, failed: false 标记在到达您的处理程序之前删除投票和失败的交易。
两者通过单个 gRPC 流到达,因此 SDK 只需管理一个连接。如果连接断开,SDK 会自动重新连接,您将继续从两个过滤器接收更新。

读取原始字段

负载中的几个值需要进行小的转换,以便于使用:
  • tx.signature 是一个 Buffer。通过 bs58.encode(...) 运行它,以获得在资源管理器或 getTransaction 响应中看到的 base58 签名。
  • tx.meta.fee 是一个以字符串存储的 u64,以确保在 JavaScript 中不会丢失 Number.MAX_SAFE_INTEGER 以上的精度。在进行算术运算之前,将其包裹在 Number(...) 中。同样的 u64 字符串约定也适用于多个区块级字段 — 请参阅 Slot & Block Monitoring 以了解完整的数据结构。

滚动统计

setInterval 每 60 秒打印一次快照:总交易数、成功与失败、吞吐量、唯一费用支付者和 SOL 中的总费用。在脚本退出之前按下 Ctrl+C 可获得最后一次快照。

扩展脚本

一些进一步发展的方向:
  • 解码指令判别码,将交易标记为 buy / sell / create — 请参阅 Decoding Transaction Data 以获取解析模式。
  • 持久化 滚动统计数据到数据库(Postgres,Redis,ClickHouse),而不是在内存中 Set / 计数器。
  • 警报 阈值 — 大型费用支付者、突然的交易量飙升、新的债券曲线账户。
  • 重放 启动时错过的活动,通过设置 fromSlotSubscribeRequest 上(最多 24 小时 — 请参阅 Historical Replay)。
  • 组合 使用 Slot & Block Monitoring 以获取区块级上下文。

后续步骤

交易监控

此脚本使用的一般交易过滤模式。

解码交易数据

将二进制交易负载解析为可读的Solana交易。

账户订阅

使用过滤器监控特定账户状态更改。

历史重放

从起始槽重放过去最多24小时的Pump.fun活动。