跳到主要内容

subscribe_ohlcv:实时 K 线

一个池子的实时 1 秒 OHLCV K 线。当前时间桶每次变化时服务端推送 ohlcv(每秒最多一次)。传 mintpool 之一。免费,但需要密钥:它和 ohlcv_history 是仅有的两个要求密钥的事件,到 Telegram 群领取。

免费密钥,按需领取

这个事件需要一个免费数据密钥。加入 Telegram 群开口要一个即可;它只是让拉取 K 线的人有个名字对应,不计量、不收费。数据 API 上其他所有东西都无需密钥。

通道Socket.IO 事件
认证握手里的免费密钥,auth: { api_key }
推送ohlcv
费用免费

示例

import { io } from "socket.io-client";

const socket = io("https://sol.shrine.trade", { auth: { api_key: "sk_…" } }); // 免费密钥

socket.on("ohlcv", (rows) => {
for (const [t, o, h, l, c, v] of rows) {
console.log(new Date(t), `o=${o} h=${h} l=${l} c=${c} v=${v}`);
}
});

socket.emit("subscribe_ohlcv", { pool: "4mBL…" });

// 之后要停止(免费):socket.emit("unsubscribe_ohlcv", { pool: "4mBL…" });

响应:ohlcv

一个 K 线元组数组(通常每次一根)。每个元组是 [ timestamp_ms, open, high, low, close, volume ]

[[1779812627000, 0.000000033, 0.000000034, 0.000000033, 0.000000034, 5.12]]

元组格式与 lightweight-charts、TradingView、Chart.js financial 等的预期一致,可以直接喂给图表。

错误

订阅无法创建时,ack 回调收到的是错误对象而不是 { ok: true }

{ "error": "not_found", "message": "pool not found" }
error何时
invalid_requestmintpool 都没传。
not_foundmint 没有活跃池子,或给定的 pool 既没有实时数据也没有 K 线历史。
unavailable后端暂时性错误(服务端已重试)。可安全重试,不是最终的"未找到"。
limit_exceeded这条连接的订阅数已达上限。

不传 ack 回调时,同样的内容以 subscription_error 事件推送。

试一试

说明

  • 免费。密钥只是给拉取 K 线的人留个名字,不计量任何东西。
  • 粒度为 1 秒;想要 1m/5m/1h 在客户端聚合。
  • 先用 ohlcv_history(同一个密钥)填充初始窗口,再在这里保持实时。
  • 逐笔明细用 subscribe_trades
  • 完整可用的图表见示例 → OHLCV 图表