subscribe_new_tokens:实时发射
你选定的 DEX 上新池子/新代币创建的实时流。服务端推送 new_token。传 protocols,可以是 PUMPFUN、PUMPSWAP、METEORA、RAYDIUM、ORCA、BONK、STONKFUN 的任意子集(每个协议一个房间;重新订阅即可更改集合)。
new_token 事件在每个协议上都免费推送,也不需要 API 密钥,可以无密钥连接并一直订阅。
| 通道 | Socket.IO 事件 |
| 认证 | 无,不需要 API 密钥 |
| 推送 | new_token |
| 费用 | 免费,所有协议 |
示例
- JavaScript
- Python
点击图标切换。示例会实时重新生成,可以直接粘贴进你的客户端。
socket.on("new_token", (n) => {
console.log(`[${n.protocol}] ${n.symbol ?? ''} (${n.name ?? ''}) by ${(n.creator ?? '').slice(0, 4)}…`);
// AMM 类 DEX 不带 name/symbol/uri/creator,注意字段可能缺失
});
socket.emit("subscribe_new_tokens", {
protocols: ["PUMPFUN", "RAYDIUM"],
});
import socketio
sio = socketio.Client()
@sio.on("new_token")
def on_new(n):
# AMM 类 DEX 不带 name/symbol/uri/creator,用 .get() 给默认值
print(f"[{n['protocol']}] {n.get('symbol','')} ({n.get('name','')}) by {n.get('creator','')[:4]}…")
# 你的过滤 / 提醒 / 自动买入写在这里
sio.connect("https://sol.shrine.trade") # 无需密钥
sio.emit("subscribe_new_tokens", {"protocols": ["PUMPFUN", "RAYDIUM"]})
sio.wait()
# 之后要停止(免费):
# sio.emit("unsubscribe_new_tokens", {"protocols": ["PUMPFUN", "RAYDIUM"]})
响应:new_token
你订阅的每个 DEX 在每次池子/代币创建时都推送 new_token。字段 protocol、mint、pool、decimals、quote、supply 和 timestamp 总是存在。链上元数据字段(name、symbol、creator、uri)只在创建指令确实携带时才包含,所以要按可能缺失来处理(不只是为空)。
常见的 quote mint
quote 是新池子的计价代币(发射的代币与之交易)的 mint 地址。绝大多数发射以 SOL 计价;对照这些地址来过滤或正确标注价格:
| 计价代币 | mint 地址 | 出现场合 |
|---|---|---|
| WSOL(包装 SOL) | So11111111111111111111111111111111111111112 | 每个 DEX 的默认计价;几乎所有发射 |
| USDC | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v | 对 USDC 开的 AMM 池子(Raydium、Orca、Meteora、PumpSwap) |
| USD1 | USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB | USD1 计价池子上的 Bonk 发射 |
PumpFun(和 Bonk)内联发出 name/symbol/uri,所以事件是完整的:
{
"protocol": "PUMPFUN",
"mint": "3StpvEPanQtd25SvBamVjvyRaawNapjUTmygnVsPpump",
"pool": "Hm9HUNoF3Ua2tSZM1Uzk6HM6tS5LxmR8p7wtxUeYcD6E",
"name": "Mayhem",
"symbol": "Venum",
"decimals": 6,
"quote": "So11111111111111111111111111111111111111112",
"creator": "7ZbfkTHfyeMdXt98sdvJHT2kY9hrYntJm2A5aepK8ypn",
"uri": "https://ipfs.io/ipfs/Qmdq5na6gt6xtEjCS4Lb83yPVCwYTmZ8CKufX1iFPQFE3b",
"supply": 1000000000,
"timestamp": 1779825514
}
普通 AMM 池子创建(PumpSwap、Raydium、Orca 以及 Meteora 的 AMM 池子)通常是在已存在的代币上开池,创建交易不带代币元数据,这些字段会被省略。一条 Raydium 事件像这样:
{
"protocol": "RAYDIUM",
"mint": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
"pool": "58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2",
"decimals": 6,
"quote": "So11111111111111111111111111111111111111112",
"creator": "GThUX1Atko4tqhN2NaiTazWSeFWMuiUvfFnyJyUghFMJ",
"supply": 1000000000,
"timestamp": 1779825514
}
发射台创建是例外:当创建交易本身铸造代币时(PumpFun、Bonk 和 Meteora 动态联合曲线),name/symbol/uri/creator 直接从同一笔交易读取并包含。Meteora DBC 代币走 METEORA 流并保留 protocol: "METEORA_DBC",所以它们和 PumpFun 事件一样完整:
{
"protocol": "METEORA_DBC",
"mint": "CRkgM1oyuYpCLjg39xDAyEwiicEE4xr8hXXRhjDEaQRc",
"pool": "B31Kz7nxfPrWSd9avAto6CZfiANN22LKbAW3g3AktbQ",
"name": "market dead send this",
"symbol": "bread",
"decimals": 6,
"quote": "So11111111111111111111111111111111111111112",
"creator": "9RvZ8kgeHVzpc1f3pWn21i51QMXFsLyvXLXp3uqLxPJM",
"uri": "https://meta.uxento.io/data/b9fe1da7-6a1c-4f93-a3fe-a2cd1798ac9f",
"supply": 1000000000,
"timestamp": 1779825514
}
在 PumpFun 上创建的代币之后迁移到 AMM 时,AMM 事件仍不带 name/symbol/uri,但存储的代币记录保留原始 PumpFun 元数据。实时
new_token事件始终只反映创建指令里的内容。
试一试
说明
STONKFUN是 Raydium LaunchLab 上的 StonkFun:与代币化股票(xStocks)、Pre-IPO 代币、加密资产或 SOL 配对的币。quote告诉你交易对,它常常不是 WSOL。奖励型发射是带转账费的 Token-2022 mint。- 所有订阅的 DEX 都推送
new_token。PumpFun 只是发射量最大的来源,所以它在流里占主导。 - 发射台创建带 name/symbol/uri:PumpFun、Bonk 和 StonkFun 内联携带,Meteora DBC 代币(走
METEORA流,protocol: "METEORA_DBC")从同一笔创建交易读取。普通 AMM 池子创建(PumpSwap、Raydium、Orca 和 Meteora AMM 池子)通常在已有代币上开池,这些键会被省略。务必做空值检查。 new_token事件是实时的,只反映链上创建数据。链下元数据(图片、社交链接)要另外从代币的uri获取,不在这个事件里。- 对应的迁移事件(如 PumpFun 到 PumpSwap)见
subscribe_migrations。