WebSocket API 基本信息
ZTDX WebSocket API 的连接信息与使用指南。
基础地址
| 网络 | WebSocket 地址 |
|---|---|
| 主网 (Mainnet) | wss://api.prex.world/ws |
| 测试网 (Sepolia) | wss://api.prex.world/ws |
端点说明
| 路径 | 说明 |
|---|---|
/ws | 内部行情数据(订单簿、成交、行情、K线、持仓、订单、余额) |
/ws/internal | 与 /ws 相同 — 内部数据显式端点 |
/ws/external | 外部价格源(Hyperliquid 代理) |
连接说明
- WebSocket 连接使用标准 WebSocket 协议(RFC 6455)。
- 所有消息均以 JSON 文本帧 的格式发送和接收。
- 服务端会自动响应 WebSocket
Ping帧并返回Pong帧。 - 单个 WebSocket 连接可以同时订阅 多个频道。
连接示例
- JavaScript
- Python
const ws = new WebSocket('wss://api.prex.world/ws');
ws.onopen = () => {
console.log('已连接');
// 订阅公共频道
ws.send(JSON.stringify({
type: 'subscribe',
channel: 'ticker:BTCUSDT'
}));
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log('收到消息:', data);
};
import asyncio
import json
import websockets
async def connect():
async with websockets.connect('wss://api.prex.world/ws') as ws:
print('已连接')
# 订阅公共频道
await ws.send(json.dumps({
'type': 'subscribe',
'channel': 'ticker:BTCUSDT'
}))
async for message in ws:
data = json.loads(message)
print('收到消息:', data)
asyncio.run(connect())
消息格式
客户端 → 服务端消息
所有客户端消息必须包含 type 字段。
| 类型 | 说明 | 需要认证 |
|---|---|---|
auth | 通过 EIP-712 签名、JWT 或 fapi listenKey 进行认证 | — |
auth_token | 通过 JWT Token 进行认证 | — |
subscribe | 订阅频道 | 仅私有频道 |
unsubscribe | 取消订阅频道 | 否 |
ping | 心跳 Ping | 否 |
服务端 → 客户端消息
所有服务端消息都包含 type 字段。
| 类型 | 说明 |
|---|---|
auth_result | 认证结果 |
subscribed | 订阅确认 |
unsubscribed | 取消订阅确认 |
trade | 成交更新 |
orderbook | 订单簿快照/更新 |
ticker | 行情数据 |
kline | K线/蜡烛图数据 |
kline_snapshot | 订阅时的K线初始快照 |
position | 持仓更新(私有) |
order | 订单更新(私有) |
balance | 余额更新(私有) |
error | 错误消息 |
pong | 心跳 Pong |
认证
私有频道(positions、orders、balance)在订阅前需要进行认证。支持三种认证方式:
方式一:EIP-712 签名认证
{
"type": "auth",
"address": "0xYourWalletAddress",
"signature": "0x...",
"timestamp": 1711000000
}
address— 以太坊钱包地址。signature— EIP-712 类型化数据签名。timestamp— UNIX 时间戳(秒)。必须在服务器时间 5 分钟 以内。