Referencia de la API de Bitnxs
Inicio rápido
Sección titulada «Inicio rápido»Autenticación
Sección titulada «Autenticación»Claves API
Sección titulada «Claves API»Referencia de endpoints
Sección titulada «Referencia de endpoints»Consultas Info
Sección titulada «Consultas Info»Tipos de orden
Sección titulada «Tipos de orden»Disparadores TP / SL
Sección titulada «Disparadores TP / SL»Suscripciones
Sección titulada «Suscripciones»SDK TypeScript
Sección titulada «SDK TypeScript»Referencia de la API de Bitnxs
Sección titulada «Referencia de la API de Bitnxs»Interfaz HTTP y WebSocket para la cadena Nexus. Las sesiones se firman con la wallet PRINCIPAL directamente o — para trading programático — con una API key (una credencial de firma delegada derivada de su wallet mediante una firma única). Sin Bearer tokens, sin secretos compartidos, sin HMAC. La misma interfaz alimenta la UI web, los bots de trading programático, los indexadores y las herramientas de administración.
Base URL: https://api.bitnxs.com · WebSocket: wss://api.bitnxs.com/ws
Inicio rápido
Sección titulada «Inicio rápido»- Conecte su wallet (MetaMask o cualquier proveedor EIP-1193) en la UI web para obtener su dirección on-chain (0xABC).
- Abra la página “More → API Keys” y genere una API key; copie el valor que aparece una única vez en el modal.
- Abra una sesión: POST /session/start → firme el challenge devuelto → POST /session/complete → reciba un sessionId.
- Envíe órdenes, cancelaciones, actualizaciones de apalancamiento y disparadores TP/SL utilizando el sessionId.
Flujo mínimo en Python
Sección titulada «Flujo mínimo en Python»import requestsfrom eth_account import Accountfrom eth_utils import keccak
USER = "0xABC..." # MAIN wallet address — the session is bound to thisAPI_KEY = "0x..." # API key from "More → API Keys" (shown once)BASE = "https://api.bitnxs.com"
# 1. Open sessionchal = requests.post(f"{BASE}/session/start", json={"user": USER}).json()
# 2. Sign challenge with the API key (raw keccak, NOT 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. Submit a limit orderprint(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())