BotRadixBotRadixDocumentación

API: visión general y autenticación

URL base, claves de API, scopes, sesiones de desarrollador firmadas y gestión de claves.

Ver en Markdown

La API del BotRadix DEX (versión 1) permite que un servidor, un bot o una integración lean datos de mercado y la cuenta de una wallet, y que preparen o ejecuten operaciones para esa wallet. Es una API JSON sobre HTTPS.

Resumen#

ElementoValor
URL basehttps://app.botradix.com/api/dex/v1 (la misma API responde también en https://botradix.com/api/dex/v1)
RedBase mainnet, chain ID 8453
FormatoJSON, UTF-8. Cuerpos de petición de hasta 48 KiB
AutenticaciónUna clave de API vinculada a una wallet, con scopes
Cabeceras de versiónX-BotRadix-API-Version: v1 y X-BotRadix-API-Schema: botradix-dex-api-v1.1
TrazabilidadCada respuesta lleva X-Request-ID; puedes enviar el tuyo (8–80 caracteres de A-Z a-z 0-9 . _ : -)
NavegadorSolo mismo origen. Llama a la API desde tu servidor, nunca desde una página pública

Importante

Una clave de API es un secreto que puede actuar sobre la cuenta DEX de tu wallet dentro de sus scopes. Guárdala en un servidor o en un gestor de secretos. Nunca la incluyas en una web, una app móvil o un repositorio público.

Dos tipos de credenciales#

BotRadix separa administrar credenciales de usarlas:

  1. Sesión de desarrollador. Demuestra que controlas una wallet. Se obtiene firmando un mensaje de texto con esa wallet; es gratis y no envía ninguna transacción. Dura 4 horas y solo sirve para crear, rotar y revocar claves de API y para gestionar webhooks.
  2. Clave de API. La usa tu servidor o bot en cada llamada a /api/dex/v1. Cada clave pertenece a una sola wallet y tiene sus propios scopes, caducidad, límites de uso y, opcionalmente, una lista de IP permitidas.

Una clave de trading no puede administrar otras claves, y una sesión de desarrollador no puede llamar a la API de trading.

Enviar la clave de API#

Envía la clave en la cabecera X-BotRadix-API-Key:

bash
curl https://app.botradix.com/api/dex/v1/account \
  -H "X-BotRadix-API-Key: $BOTRADIX_API_KEY"

También se acepta Authorization: Bearer <clave>. Si llegan las dos, manda X-BotRadix-API-Key. Las claves empiezan por BRX.

Sin clave, la API responde 401 API_KEY_REQUIRED. Todos los errores de autenticación están en Errores, límites y versionado.

Obtener una sesión de desarrollador#

  1. Pide un challenge para tu wallet. Caduca a los 5 minutos.
  2. Firma el message devuelto, tal cual, con personal_sign (una firma de mensaje, no una transacción).
  3. Canjea el nonce y la firma por una sesión de desarrollador.
bash
# 1. Challenge
curl -X POST https://app.botradix.com/api/dex/developer/challenge \
  -H "Content-Type: application/json" \
  -d '{"wallet":"0xTuWallet"}'
# → {"success":true,"wallet":"0x…","message":"…","nonce":"…",
#    "expires_at":"…","network":"Base","chain_id":8453}

# 2. Firma "message" con la wallet (personal_sign).

# 3. Sesión
curl -X POST https://app.botradix.com/api/dex/developer/session \
  -H "Content-Type: application/json" \
  -d '{"wallet":"0xTuWallet","nonce":"…","signature":"0x…"}'
# → {"success":true,"wallet":"0x…","developer_session":"brxds1.…",
#    "expires_at_ms":…,"developer":{…}}

El texto del challenge incluye la wallet, el dominio, la red (Base, 8453), el nonce y la caducidad, así que no puede reutilizarse en otro sitio. Tras cinco firmas incorrectas el challenge se descarta.

A partir de ahí, toda la gestión de claves y webhooks usa Authorization: Bearer <developer_session>.

Crear una clave de API#

bash
curl -X POST https://app.botradix.com/api/dex/developer/keys \
  -H "Authorization: Bearer $DEVELOPER_SESSION" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "market-maker-01",
    "scopes": ["market:read", "account:read", "trade:prepare"],
    "expires_in_days": 90,
    "ip_allowlist": ["203.0.113.10"]
  }'
CampoReglas
labelUn nombre para identificarla
scopesCualquiera de los scopes de abajo. Los desconocidos se ignoran; si no queda ninguno válido, la petición falla. Si no se indica, la clave recibe todos los scopes salvo collateral:manage
expires_in_daysDe 1 a 2000. Por defecto 180
ip_allowlistLista opcional (o texto separado por comas) de IP o rangos CIDR. Las peticiones desde otras direcciones reciben 403 IP_NOT_ALLOWED
quotasLímites de uso propios de la clave, dentro de los máximos de Errores, límites y versionado

La respuesta (201) contiene la clave completa en api_key. Solo se muestra una vez. Una wallet puede tener hasta 10 claves activas.

Nota

Las claves creadas desde la vista API del terminal DEX son "listas para bots": la wallet firma además una autorización única para un agente de trading, y la clave recibe los scopes por defecto. Para elegir los scopes tú mismo, crea la clave por API como se muestra arriba.

Scopes#

ScopePermite
market:readMercados, velas, resúmenes, funding, open interest, libro de órdenes y vault
account:readLa wallet de la clave: cuenta, posiciones, órdenes, colateral, transacciones, operaciones, historial y estado de ejecuciones
trade:preparePreparar aperturas, cierres, inversiones, cambios de TP/SL y de margen aislado
trade:executeEjecución delegada mediante /orders/execute, cuando la clave tiene un ejecutor vinculado
orders:manageCancelar y reemplazar órdenes, y las primitivas de TP/SL en ejecución delegada
collateral:managePreparar depósitos y retiros de colateral

Da a cada clave solo los scopes que necesite.

Gestión de claves y webhooks#

MétodoRutaPara qué
POST/api/dex/developer/challengeMensaje que la wallet debe firmar
POST/api/dex/developer/sessionVerifica la firma y entrega una sesión de desarrollador de 4 horas
GET/api/dex/developer/keysLista las claves de la wallet (hasta 64)
POST/api/dex/developer/keysCrea una clave
POST/api/dex/developer/keys/preparePaso 1 de una clave lista para bots: un agente de trading nuevo y la autorización que la wallet firma una vez. No se crea nada hasta que esa firma llega con POST /keys (válido 30 minutos)
POST/api/dex/developer/keys/{key_id}/rotateGenera un secreto nuevo. El anterior deja de funcionar al instante
PUT/api/dex/developer/keys/{key_id}/expiryFija la validez desde ahora: 30, 90, 360 o 2000 días
POST/api/dex/developer/keys/{key_id}/agentCrea (o devuelve) el agente de trading de la clave y la autorización a firmar
POST/api/dex/developer/keys/{key_id}/agent/grantGuarda la autorización firmada por la wallet tras verificarla
PUT/api/dex/developer/keys/{key_id}/executorVincula la clave a un ejecutor para la ejecución delegada
POST/api/dex/developer/keys/{key_id}/execution-paymentPrepara una transacción que firma la wallet; administrar claves nunca concede permisos de gasto por sí mismo
DELETE/api/dex/developer/keys/{key_id}Revoca la clave (y su agente). Se puede repetir sin riesgo
GET/api/dex/developer/auditRegistro de auditoría de la actividad de credenciales
GET, POST/api/dex/developer/webhooksLista o crea suscripciones de webhook
DELETE/api/dex/developer/webhooks/{webhook_id}Desactiva una suscripción de webhook

Las rutas de desarrollador admiten hasta 10 peticiones por segundo por IP.

Lista de seguridad#

  • Usa una clave por bot o servicio, para poder revocar una sin parar las demás.
  • Concede los scopes mínimos, fija una caducidad y, si tu servidor tiene IP fija, una lista de IP permitidas.
  • Guarda las claves en un gestor de secretos o en variables de entorno, nunca en el código ni en los registros.
  • Rota las claves periódicamente y de inmediato si sospechas una filtración; revoca las que ya no uses.
  • Verifica la firma de los webhooks y descarta duplicados por su ID (ver Tiempo real y webhooks).

Última actualización: 2026-10-12