跳到主要内容

数据 API

覆盖 PumpFun、PumpSwap、Bonk 与 StonkFun(Raydium LaunchLab)、Meteora DBC 与 DAMM v2、Raydium(CPMM/CLMM/AMM v4)以及 Orca Whirlpool 的实时 + 历史数据。大部分都免费且无需密钥:按代币的流、发行与迁移数据流、历史 K 线、GET /metadata 和 GET /sol-price 都不需要密钥,不用账号,不用注册。实时 K 线(subscribe_ohlcv)需要一个免费密钥,到 Telegram 群申请。Lite 套餐加上 Advanced Data Stream(高级数据流) 和 24 小时回放,Developer 再加上 Ultra Fast Shred Stream(超快分片流)。见套餐与限额。

30 秒上手​

无需密钥——连上就能订阅:

import { io } from "socket.io-client";
const socket = io("https://sol.shrine.trade");
socket.on("token_update", (u) => console.log(u.pool, u.priceUSD));
socket.emit("subscribe", { mint: "Gc6r…pump" });

既要现在也要过去?历史回放按小时归档每一个流事件,免费。

密钥​

免费的流和读取不需要密钥,只有一个例外:实时 K 线(subscribe_ohlcv)在每个套餐上都需要密钥;在 Free 上就是到 Telegram 群申请的免费密钥。其他地方密钥是可选的,带上它就把限额提到你套餐的水平:K 线可跟所有代币而不是一个,历史 K 线每秒一次而不是每分钟一次,更多 socket。Advanced Data Stream(高级数据流) 和 24 小时回放 需要 Lite 或 Developer 的密钥,Ultra Fast Shred Stream(超快分片流) 需要 Developer 的密钥。各套餐的限额见套餐与限额。

有了套餐之后,在控制台拿到你的密钥,并在 Socket.IO 握手中传入:

import { io } from "socket.io-client";
const socket = io("https://sol.shrine.trade", {
auth: { api_key: "sk_…" },
});

不带密钥的连接可以使用 Free 套餐的全部内容。带了密钥的连接必须带一个有效的:未知或已停用的密钥会在握手时被拒绝。超出限额时,调用的 ack 会说明:plan_required(不在你的套餐里)、limit_exceeded(你的套餐为该流允许的 socket 都已占用,或在 Free 上跟第二个代币的 K 线)或 rate_limited 并附 retryAfterMs。每个都带 plan,低于 Developer 时还带 upgrade:见达到限额时。

错误​

所有错误都是形状相同的 JSON:

{ "error": "not_found" }
状态码error含义
400mint_or_pool_required缺少必需参数。
401unknown_key / key_disabled密钥无法识别,或已被一把新密钥取代。使用 Free 时不要带密钥。
403plan_required不在你的套餐里;plan 指明包含它的套餐。
404not_found池/mint(尚)未登记。
429rate_limited超出你套餐的速率(套餐与限额)。Retry-After 和 retryAfterMs 说明何时重试。
503unavailable在第一个 SOL/USD tick 之前调用 GET /sol-price(冷启动);稍后重试。

WebSocket 订阅错误以回调 ack 的形式返回:{ error: "…", message: "…" }。不带密钥的实时 K 线会回 api_key_required;超出你套餐的限额时,K 线事件会回 limit_exceeded 或 rate_limited;socket 已全部占用的流会回 limit_exceeded;你的套餐没有的流会回 plan_required。

限制​

值
每个连接的最大并发 Socket.IO 订阅数50
每种流类型的打开 socket 数按你的套餐:Free 2 个,Lite 5 个,Developer 50 个。按密钥计数,不带密钥时按 IP
REST元数据和 SOL 价格按你套餐的速率;其他读取每个 IP 每秒 3 次请求
OHLCV 历史 limit1 – 500(默认 200)

流类型有 subscribe(价格)、subscribe_trades、subscribe_ohlcv、subscribe_new_tokens、subscribe_migrations、subscribe_sol_price 和 subscribe_stream。在一个 socket 上用同一种类型跟多个池没有问题,只占用该类型的一个 socket;超出你套餐对某类型所允许数量的 socket 会得到 limit_exceeded。交易端点按套餐有各自的速率(套餐与限额),并以 Retry-After: 1 回 rate_limited。