跳到主要内容

实时发射与毕业

Flap 代币的完整生命周期,事件发生即刻推送。一条 socket 上会收到两种事件:

  • 发射:一个代币出现在 Flap 的联合曲线上。一天几百次。
  • 毕业:曲线售罄,代币迁移到它永久的 PancakeSwap 池子。

免费,不需要密钥,不需要账号。

wss://api.shrine.trade/bnb/api/launches/ws

试一试

选好过滤条件后连接。最新的一条事件立刻到达,之后的每一条实时推送。

复制这段

点击 Flap 或 PancakeSwap 选择脚本要接收的事件,URL 会跟着变。

const ws = new WebSocket("wss://api.shrine.trade/bnb/api/launches/ws");

ws.onmessage = (e) => {
const t = JSON.parse(e.data);
// t.type: new_launch or graduated
console.log(JSON.stringify(t, null, 2));
};

Save it as launches.js and run node launches.js - no packages needed (Node 22+).

你会收到什么

连接后的第一条消息是最近一次事件的重放,让新连上的客户端不至于空白。之后每条消息都是新的。

消息由两个字段分类:typeprotocol

typeprotocol含义
new_launchFLAP一个代币在 Flap 曲线上发射,立刻可以交易。
graduatedPANCAKESWAP一条 Flap 曲线售罄,代币迁移到了它的 PancakeSwap 池子。

?protocols=FLAP?protocols=PANCAKESWAP 过滤(不加则两者都收),或者用上面的选择器。

不适用的字段会直接省略而不是发 null,所以先看 type 再读其他字段。

{
"type": "new_launch",
"protocol": "FLAP",
"token": "0x2f1952E00F6BA7655993120B8c41E5ab511e7777",
"name": "星际巨舰",
"symbol": "星际巨舰",
"creator": "0xF31b8fcD326e0aD7837af0aefed60cC71Db82595",
"quoteToken": "BNB",
"tokenType": "tax_v3",
"buyTaxBps": 1000,
"sellTaxBps": 1000,
"graduationSupply": "800000000000000000000000000",
"meta": "bafkreidrm6a6ieclmputpy2iw5wxqkpcttpapxidcxpl5z5lj…",
"metaUri": "https://ipfs.io/ipfs/bafkreidrm6a6ieclmputpy2iw5wxqkpcttpapxidcxpl5z5lj…",
"blockNumber": 120101041,
"txHash": "0x…",
"timestamp": 1788610321
}

tokenType、税率和计价资产直接来自 Flap 的 Portal,在事件发生的那一刻读取,所以狙击机器人不用再发请求就能决定:跳过 10% 卖出税的、只要 BNB 计价的、只要股票计价的,随你定规则。支持的计价资产 里的每一种,quoteToken 都是代号(BNBUSD1NVDABTSLAB……);API 不认识的计价资产(比如另一个 Flap 代币)则是地址。meta 是创作者元数据 JSON(图片、简介、社交链接)的 IPFS CID,metaUri 是它经网关的地址。

graduated 事件带的则是 pool(PancakeSwap 池子)、liquidityTokensliquidityQuote(Flap 注入的流动性)。

买入上限与税

有些发射限制单个钱包在曲线上的买入量,大多数带税。两者都在 代币信息买入与卖出 的每一个报价里,所以先读报价再发送的狙击机器人永远不会多付。

注意

  • 断线重连。 长连接会断;重连后会重新收到最近一次发射,不会错过多少。
  • 每个 IP 一条连接。 第二条会被拒绝,返回 too_many_connections。一条不带过滤的连接已经包含所有事件,一条就够。
  • 不保存历史。 服务端不持久化任何东西;除了最近一条事件的重放,没有回放,也无法补拉。