OKX Exchange WebSocket Skill
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.
Prerequisites
- -
uxc is installed and available in PATH. - Network access to the OKX public WebSocket endpoint.
- A writable sink path for NDJSON output.
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
Endpoint Model
Use the OKX public WebSocket endpoint:
OKX public channels require a subscribe frame after connect, for example:
CODEBLOCK0
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:
- INLINECODE9
Common Subscribe Frames
-
{"op":"subscribe","args":[{"channel":"tickers","instId":"BTC-USDT"}]}
-
{"op":"subscribe","args":[{"channel":"trades","instId":"BTC-USDT"}]}
-
{"op":"subscribe","args":[{"channel":"books5","instId":"BTC-USDT"}]}
- INLINECODE13
Runtime Validation
The following live raw WebSocket flow has been validated successfully through uxc:
- - endpoint: INLINECODE15
- transport: INLINECODE16
- init frame:
- INLINECODE17
Observed sink behavior:
- - initial INLINECODE18
- 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
- INLINECODE26
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.
- INLINECODE32 is required because OKX public channels are multiplexed behind one endpoint.
- INLINECODE33 values use OKX instrument naming such as
BTC-USDT. - INLINECODE35 is the intended execution path for this skill;
uxc link is not the main interface because channel selection lives in the subscribe frame.
References
-
references/usage-patterns.md
- https://www.okx.com/docs-v5/en/
OKX交易所WebSocket技能
使用此技能可通过uxc subscribe原始WebSocket模式运行OKX公共交易所WebSocket频道。
复用uxc技能处理通用运行时行为、数据接收和事件信封解析。
前提条件
- - uxc已安装并可在PATH中找到。
- 可访问OKX公共WebSocket端点。
- 存在可写入的NDJSON输出接收路径。
范围
此技能涵盖OKX公共交易所频道,例如:
此技能不涵盖:
- - OKX OnchainOS MCP
- 私有WebSocket登录流程
- 交易、账户或订单管理频道
- REST API工作流
端点模型
使用OKX公共WebSocket端点:
- - wss://ws.okx.com:8443/ws/v5/public
OKX公共频道在连接后需要发送订阅帧,例如:
json
{op:subscribe,args:[{channel:tickers,instId:BTC-USDT}]}
核心工作流
- 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
- 4. 完成后停止任务:
- uxc subscribe stop
常用订阅帧
- {op:subscribe,args:[{channel:tickers,instId:BTC-USDT}]}
- {op:subscribe,args:[{channel:trades,instId:BTC-USDT}]}
- {op:subscribe,args:[{channel:books5,instId:BTC-USDT}]}
- {op:subscribe,args:[{channel:candle1m,instId:BTC-USDT}]}
运行时验证
以下实时原始WebSocket流程已通过uxc成功验证:
- - 端点:wss://ws.okx.com:8443/ws/v5/public
- 传输方式:--transport websocket
- 初始化帧:
- {op:subscribe,args:[{channel:tickers,instId:BTC-USDT}]}
观察到的接收行为:
- - 初始open
- 订阅确认的JSON data事件
- 重复的data事件,携带行情数据,位于:
- arg.channel
- arg.instId
- data[0].last
- data[0].bidPx
- data[0].askPx
- data[0].ts
使用规范
- - 保持自动化处理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/usage-patterns.md
- https://www.okx.com/docs-v5/en/