跳转到内容
去交易

Bitnxs API 参考

Nexus 链的 HTTP / WebSocket 接口。Session 由主钱包直接签名,或——程序化交易场景下——由 API key(从主钱包一次性签名派生出的委托签名凭据)签名。不使用 Bearer token、共享密钥或 HMAC。Web 前端、程序化做市机器人、indexer、管理工具共用同一套接口。

Base URL: https://api.bitnxs.com · WebSocket: wss://api.bitnxs.com/ws

  1. 在 Web UI 连接钱包(MetaMask 或任意 EIP-1193 钱包)以拿到链上地址(0xABC)。
  2. 打开「更多 → API Keys」页面创建一把 API key,把弹窗里只显示一次的值复制下来。
  3. 开 session:POST /session/start → 用 API key 签 challenge → POST /session/complete → 拿到 sessionId。
  4. 后续所有交易接口(下单、改单、撤单、调杠杆、TP/SL)都带上 sessionId。
import requests
from eth_account import Account
from eth_utils import keccak
USER = "0xABC..." # 主钱包地址 — session 绑到这个地址
API_KEY = "0x..." # API key(「更多 → API Keys」弹窗只显示一次)
BASE = "https://api.bitnxs.com"
# 1. 开 session
chal = requests.post(f"{BASE}/session/start", json={"user": USER}).json()
# 2. 用 API key 签 challenge(裸 keccak,**不能用** EIP-191 / personal_sign)
sig = Account.unsafe_sign_hash(
keccak(chal["challenge"].encode()),
private_key=API_KEY,
)
ses = requests.post(f"{BASE}/session/complete", json={
"challengeId": chal["challengeId"],
"signature": {"r": hex(sig.r), "s": hex(sig.s), "v": sig.v - 27},
}).json()
SESSION_ID = ses["sessionId"]
# 3. 下一笔限价单
print(requests.post(f"{BASE}/session/order", json={
"sessionId": SESSION_ID,
"asset": 1,
"isBuy": True,
"limitPx": "65000.00",
"sz": "0.01",
"reduceOnly": False,
"orderType": {"type": "limit", "tif": "Gtc"},
}).json())