Saltearse al contenido
Operar

Casos de uso

La forma más fácil de usar el agente IA de Bitnxs es escribir peticiones en lenguaje natural en el chat de la app; para automatizar, un bot externo (escrito por ti o por una IA como Claude o ChatGPT) llama a la API de Bitnxs en https://api.bitnxs.com. Abajo tienes prompts que coinciden con lo que el agente de la app puede hacer realmente, y Python que coincide con la API real.

Obtener una opinión clara del mercado

¿Largo o corto en BTC ahora mismo? Da una dirección, con entrada e invalidación.

Consultar tu cuenta

¿Cuál es mi posición y mejor cotización?

Colocar una orden límite

Según tu análisis, compra 0.01 BTC a 65000.

Escalera de entradas (un lote, hasta 20 órdenes)

Coloca 3 compras límite en BTC: 0.01 a 64000, 0.01 a 63000 y 0.02 a 62000.

Usar un estilo predefinido (atajo “Conservador”, texto literal de la app)

A partir de ahora, opera por mí con un estilo "conservador":
- Opera solo BTC
- Usa como máximo el 15% del saldo de mi cartera por posición
- Mantén como máximo 1 posición a la vez
- Mantén el apalancamiento en su ajuste actual — no lo cambies
Cada vez que detectes una oportunidad, explica primero tu razonamiento y deja que confirme antes de colocar la orden.

Estos fragmentos usan la API documentada (Autenticación, Referencia de endpoints). Instala pip install requests eth-account eth-utils y define BITNXS_USER (dirección de la wallet principal) y BITNXS_API_KEY (una API key con permisos limitados) como variables de entorno.

import os, requests
from eth_account import Account
from eth_utils import keccak
BASE = "https://api.bitnxs.com"
USER = os.environ["BITNXS_USER"] # main wallet address
API_KEY = os.environ["BITNXS_API_KEY"] # never hard-code or paste into a prompt
def info(body):
return requests.post(f"{BASE}/info", json=body).json()
def open_session():
chal = requests.post(f"{BASE}/session/start", json={"user": USER}).json()
sig = Account.unsafe_sign_hash(keccak(chal["challenge"].encode()), private_key=API_KEY)
return requests.post(f"{BASE}/session/complete", json={
"challengeId": chal["challengeId"],
"signature": {"r": hex(sig.r), "s": hex(sig.s), "v": sig.v - 27},
}).json()["sessionId"]
meta = info({"type": "meta"}) # asset ids, decimals, max leverage

Entrada programada: compra límite cada hora

Sección titulada «Entrada programada: compra límite cada hora»
import time
SID = open_session() # refresh before the 1-hour session TTL
BTC = 1 # numeric asset id from meta
for i in range(3):
r = requests.post(f"{BASE}/session/order", json={
"sessionId": SID, "requestId": int(time.time() * 1000), # idempotency key
"asset": BTC, "isBuy": True, "limitPx": "65000", "sz": "0.001",
"reduceOnly": False, "orderType": {"type": "limit", "tif": "Gtc"},
}).json()
print(r)
time.sleep(3600)

Requiere el permiso set_triggers. Los disparadores se ejecutan como órdenes de mercado reduce-only cuando el precio de oráculo cruza triggerPx (reglas). TP y SL son dos llamadas separadas.

for is_tp, px in [(True, "72000"), (False, "61000")]:
print(requests.post(f"{BASE}/session/trigger", json={
"sessionId": SID, "asset": BTC, "isTp": is_tp,
"triggerPx": px, "sz": "0.001", "positionSide": 1, # 1 = long, -1 = short
}).json())

Bucle de estrategia simple: el LLM decide, tú pones los límites

Sección titulada «Bucle de estrategia simple: el LLM decide, tú pones los límites»

Un patrón seguro para agentes creados con Claude, ChatGPT o cualquier LLM:

  1. Lee el estado con info({"type": "clearinghouseState", "user": USER}) e info({"type": "allMids"}).
  2. Envía ese estado a tu LLM y pide una decisión en JSON (long / short / wait, precio, tamaño).
  3. Valida en código antes de enviar: tamaño máximo, órdenes máximas por hora, mercados permitidos, precio dentro de una banda alrededor del mid.
  4. Coloca una orden límite y añade los disparadores de TP y SL.
  5. Registra todo; detente si hay errores repetidos.