okx-exchange-websocket-skill

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

OKX Exchange WebSocket Skill

OKX交易平台WebSocket技能

Use this skill to run OKX public exchange WebSocket channels through
uxc subscribe
raw WebSocket mode.
Reuse the
uxc
skill for generic runtime behavior, sink handling, and event-envelope parsing.
使用此技能通过
uxc subscribe
原生WebSocket模式运行OKX公开交易平台的WebSocket频道。
复用
uxc
技能实现通用运行时行为、接收器处理和事件信封解析。

Prerequisites

前置条件

  • uxc
    is installed and available in
    PATH
    .
  • Network access to the OKX public WebSocket endpoint.
  • A writable sink path for NDJSON output.
  • 已安装
    uxc
    并可在
    PATH
    中访问。
  • 能够访问OKX公开WebSocket端点的网络权限。
  • 用于NDJSON输出的可写入接收器路径。

Scope

适用范围

This skill covers OKX public exchange channels such as:
  • tickers
  • trades
  • books and books5
  • candle channels
This skill does not cover:
  • OKX OnchainOS MCP
  • private WebSocket login flows
  • trading, account, or order-management channels
  • REST API workflows
此技能覆盖OKX公开交易频道,例如:
  • tickers
  • trades
  • books和books5
  • candle频道
此技能覆盖:
  • OKX OnchainOS MCP
  • 私有WebSocket登录流程
  • 交易、账户或订单管理频道
  • REST API工作流

Endpoint Model

端点模型

Use the OKX public WebSocket endpoint:
  • wss://ws.okx.com:8443/ws/v5/public
OKX public channels require a subscribe frame after connect, for example:
json
{"op":"subscribe","args":[{"channel":"tickers","instId":"BTC-USDT"}]}
使用OKX公开WebSocket端点:
  • wss://ws.okx.com:8443/ws/v5/public
OKX公开频道在连接后需要发送订阅帧,例如:
json
{"op":"subscribe","args":[{"channel":"tickers","instId":"BTC-USDT"}]}

Core Workflow

核心工作流

  1. Start a raw WebSocket subscription:
    • uxc subscribe start wss://ws.okx.com:8443/ws/v5/public --transport websocket --init-frame '{"op":"subscribe","args":[{"channel":"tickers","instId":"BTC-USDT"}]}' --sink file:$HOME/.uxc/subscriptions/okx-btcusdt-ticker.ndjson
  2. Inspect sink output:
    • tail -n 5 $HOME/.uxc/subscriptions/okx-btcusdt-ticker.ndjson
  3. Query runtime status:
    • uxc subscribe list
    • uxc subscribe status <job_id>
  4. Stop the job when finished:
    • uxc subscribe stop <job_id>
  1. 启动原生WebSocket订阅:
    • uxc subscribe start wss://ws.okx.com:8443/ws/v5/public --transport websocket --init-frame '{"op":"subscribe","args":[{"channel":"tickers","instId":"BTC-USDT"}]}' --sink file:$HOME/.uxc/subscriptions/okx-btcusdt-ticker.ndjson
  2. 检查接收器输出:
    • tail -n 5 $HOME/.uxc/subscriptions/okx-btcusdt-ticker.ndjson
  3. 查询运行时状态:
    • uxc subscribe list
    • uxc subscribe status <job_id>
  4. 完成后停止任务:
    • uxc subscribe stop <job_id>

Common Subscribe Frames

常用订阅帧

  • tickers:
    • {"op":"subscribe","args":[{"channel":"tickers","instId":"BTC-USDT"}]}
  • trades:
    • {"op":"subscribe","args":[{"channel":"trades","instId":"BTC-USDT"}]}
  • books5:
    • {"op":"subscribe","args":[{"channel":"books5","instId":"BTC-USDT"}]}
  • candles:
    • {"op":"subscribe","args":[{"channel":"candle1m","instId":"BTC-USDT"}]}
  • tickers:
    • {"op":"subscribe","args":[{"channel":"tickers","instId":"BTC-USDT"}]}
  • trades:
    • {"op":"subscribe","args":[{"channel":"trades","instId":"BTC-USDT"}]}
  • books5:
    • {"op":"subscribe","args":[{"channel":"books5","instId":"BTC-USDT"}]}
  • candles:
    • {"op":"subscribe","args":[{"channel":"candle1m","instId":"BTC-USDT"}]}

Runtime Validation

运行时验证

The following live raw WebSocket flow has been validated successfully through
uxc
:
  • endpoint:
    wss://ws.okx.com:8443/ws/v5/public
  • transport:
    --transport websocket
  • init frame:
    • {"op":"subscribe","args":[{"channel":"tickers","instId":"BTC-USDT"}]}
Observed sink behavior:
  • initial
    open
  • JSON
    data
    event for subscription acknowledgement
  • repeated
    data
    events carrying ticker payloads under:
    • arg.channel
    • arg.instId
    • data[0].last
    • data[0].bidPx
    • data[0].askPx
    • data[0].ts
以下原生WebSocket流程已通过
uxc
成功验证:
  • 端点:
    wss://ws.okx.com:8443/ws/v5/public
  • 传输方式:
    --transport websocket
  • 初始化帧:
    • {"op":"subscribe","args":[{"channel":"tickers","instId":"BTC-USDT"}]}
观察到的接收器行为:
  • 初始
    open
    事件
  • 包含订阅确认信息的JSON
    data
    事件
  • 重复的
    data
    事件,携带ticker负载,包含以下字段:
    • arg.channel
    • arg.instId
    • data[0].last
    • data[0].bidPx
    • data[0].askPx
    • data[0].ts

Guardrails

注意事项

  • Keep automation on the JSON output envelope; do not use
    --text
    .
  • Parse stable event fields first:
    event_kind
    ,
    data
    ,
    meta
    .
  • Always pass
    --transport websocket
    for this skill.
  • Public OKX channels do not require login. Do not mix this skill with private WebSocket auth flows.
  • --init-frame
    is required because OKX public channels are multiplexed behind one endpoint.
  • instId
    values use OKX instrument naming such as
    BTC-USDT
    .
  • uxc subscribe start ... --transport websocket
    is the intended execution path for this skill;
    uxc link
    is not the main interface because channel selection lives in the subscribe frame.
  • 针对JSON输出信封实现自动化,请勿使用
    --text
    参数。
  • 优先解析稳定事件字段:
    event_kind
    data
    meta
  • 使用此技能时务必传入
    --transport websocket
    参数。
  • OKX公开频道无需登录。请勿将此技能与私有WebSocket认证流程混用。
  • 必须传入
    --init-frame
    参数,因为OKX公开频道在单个端点后实现多路复用。
  • instId
    值需使用OKX工具命名规则,例如
    BTC-USDT
  • 此技能的预期执行路径为
    uxc subscribe start ... --transport websocket
    uxc link
    并非主接口,因为频道选择需在订阅帧中设置。

References

参考资料