# BotRadix Documentation — Español > BotRadix is a trading platform with an on-chain perpetual futures exchange (BotRadix DEX) on Base (chain ID 8453), automated trading bots (Quant and Grid) that run on connected exchanges or on the BotRadix DEX, the BAQ token, and a developer API. These docs explain how every part works, its fees, limits and risks. # Documentación de BotRadix > Qué es BotRadix, qué puedes hacer con él y dónde encontrar cada respuesta. Source: https://docs.botradix.com/es/ BotRadix es una plataforma de trading construida en torno a tres productos: - **BotRadix DEX**: un exchange de futuros perpetuos en la red Base. Operas desde tu propia wallet, con USDC y BAQ como colateral, en 150 mercados: cripto, acciones, índices, materias primas, divisas y pares sintéticos cruzados. - **Bots de trading**: **Quant** (seguimiento de tendencia con DCA) y **Grid** (trading en rango), que operan en tu propia cuenta en el BotRadix DEX, Hyperliquid o Uniswap. - **BAQ**: el token de la plataforma en Base, que define los niveles de acceso y sirve como colateral complementario en el DEX. Esta documentación explica cómo funciona cada parte, cuánto cuesta, cuáles son sus límites y qué riesgos tiene. Describe el sistema tal como funciona hoy y se actualiza cuando cambia. BotRadix funciona en la red principal de Base y está en una fase de consolidación deliberada: sus contratos se mantienen abiertos para poder añadir funciones y corregir problemas con rapidez, y está previsto sellarlos por componentes cuando el sistema haya demostrado su estabilidad. La versión 2.2 se desplegó el 11 de octubre de 2026; comprueba la verificación del código de cada dirección en BaseScan. Cada usuario puede [salir directamente desde BaseScan](https://docs.botradix.com/es/exit/) y los cambios del router del DEX pasan por una puerta de aviso previo en la cadena (aviso actual: 0 horas). Mientras dure esta fase, el administrador puede cambiar la lógica de cualquier contrato en cualquier momento, sin aviso previo obligatorio; no se garantiza custodia absoluta. Está prevista una red de oráculos distribuida que crecerá con el ecosistema ([Precios y oráculo](https://docs.botradix.com/es/oracle/#hoja-de-ruta)). ## Datos clave | | | |---|---| | Red | Base mainnet (chain ID 8453) | | Activo de liquidación y de margen | USDC | | Colateral del DEX | USDC (100 %) y BAQ (crédito limitado en margen cruzado) | | Mercados | 150 mercados perpetuos | | Apalancamiento máximo | 100x, por tramos que bajan a medida que crece la posición | | Comisión de apertura | 0,06 % taker / 0,03 % maker, más la comisión de servicio de BotRadix del 0,03 %. El cierre no tiene comisión | | Funding | Continuo, con un tope del 0,03 % cada 8 horas (política operativa vigente; el contrato admite como máximo ±1 %) | | Fuente de precios | Oráculo PairForge: hoy 3 reporters, quórum de firma de 2 de 3 (configurable) y agregación de varios exchanges | | Mercados de los bots | BotRadix DEX, Hyperliquid y Uniswap (Base) | | API para desarrolladores | API REST v1 con claves con scopes y webhooks firmados | | Salida independiente | Cierra y retira desde BaseScan con tu wallet. Consulta [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/) | ## Por dónde empezar ```cards Primeros pasos | Tu primera operación en el DEX o tu primer bot, paso a paso. | page:quickstart Conceptos clave | Colateral, margen, apalancamiento, funding y liquidación explicados con claridad. | page:concepts Cómo funciona el DEX | Contra quién operas, cómo se fijan los precios y dónde está tu colateral. | page:dex-overview Comisiones | Todos los costes de operar, en una tabla y con ejemplos. | page:fees Bot Quant | Automatización de tendencia con DCA, toma de beneficios y stop. | page:quant Desarrolladores | Autenticación, endpoints, trading y webhooks. | page:api ``` ## Transparencia ante todo El [Direcciones oficiales de los contratos v2.2](https://docs.botradix.com/es/security-contracts/#direcciones-oficiales) explica las direcciones fijas que guardan el dinero y la lógica sustituible de cada pieza, con sus funciones de cambio y firmantes. **Fase de consolidación con sellado previsto por componentes; hoy, aviso 0 h y sellado no: el administrador puede cambiar la lógica en cualquier momento, sin aviso previo.** Las protecciones dependen del código vigente. BotRadix explica abiertamente sus decisiones de diseño y sus contrapartidas: - Los contratos del DEX son **actualizables** por el administrador de BotRadix. Los cambios del router pasan por una puerta de aviso previo cuyo aviso hoy es de 0 horas, y el contrato de margen cruzado que custodia el colateral y las demás lógicas pueden actualizarse al instante, sin aviso previo obligatorio. El sellado está previsto por componentes y no está activo. Consulta [Seguridad y contratos](https://docs.botradix.com/es/security-contracts/). - Los precios proceden de PairForge, proveedor de datos de mercado y oráculo, y llegan a Base firmados por reporters que opera BotRadix. Cerrar una posición requiere normalmente un precio firmado y actual; si los precios se detienen, el contrato de salida tiene respaldos por plazos. Consulta [Precios y oráculo](https://docs.botradix.com/es/oracle/) y [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/). - La contraparte del DEX es un vault de liquidez propiedad del protocolo. Cada posición tiene un beneficio máximo y, cuando el vault está en riesgo, las posiciones ganadoras pueden reducirse o cerrarse antes (desapalancamiento automático); lo que la liquidez no cubra queda como pago diferido, sin plazo ni cobro garantizados. Consulta [Cómo funciona el DEX](https://docs.botradix.com/es/dex-overview/) y [Apalancamiento y margen](https://docs.botradix.com/es/margin/). - El trading apalancado puede hacerte perder todo tu colateral en poco tiempo. Lee [Riesgos](https://docs.botradix.com/es/risks/) antes de operar. ## Los tres sitios | Sitio | Para qué sirve | |---|---| | [botradix.com](https://botradix.com) | Cuenta, bots, BAQ, foro, soporte y textos legales | | [app.botradix.com](https://app.botradix.com) | El terminal de trading del DEX y la API para desarrolladores | | [docs.botradix.com](https://docs.botradix.com) | Esta documentación, en inglés y en español | > [!NOTE] > Para asistentes de IA y herramientas: hay un índice legible por máquinas en [/llms.txt](https://docs.botradix.com/llms.txt), el texto completo en español en [/es/llms-full.txt](https://docs.botradix.com/es/llms-full.txt), y cada página está disponible en Markdown añadiendo `.md` a su ruta (por ejemplo, `/es/fees.md`). --- # Primeros pasos > De cero a tu primera operación en el DEX o tu primer bot, paso a paso. Source: https://docs.botradix.com/es/quickstart/ Hay tres formas de usar BotRadix. El DEX solo necesita una wallet; los bots necesitan una cuenta de BotRadix. ## Operar en el DEX **Qué necesitas:** una wallet EVM (por ejemplo MetaMask, Rabby, Coinbase Wallet, OKX Wallet, Rainbow, Trust Wallet, Phantom o Brave Wallet) en la red **Base**, con USDC en Base. Ten también un poco de ETH en Base para las pocas acciones que requieren una transacción de la wallet, como los retiros clásicos o las acciones de salida desde BaseScan. 1. **Abre el terminal** en [app.botradix.com](https://app.botradix.com) y conecta tu wallet. 2. **Lee la guía de riesgos y acepta los Términos.** Firmas los Términos de uso completos y la Política de privacidad (versión 2026-10-12.2) con una firma gratuita, no una transacción, y se descarga tu contrato en PDF. 3. **Activa el trading.** La primera vez que operas, tu wallet firma una única autorización para una clave de trading que se guarda en tu navegador. A partir de ahí, las órdenes no piden firmar a la wallet cada vez. Con el código vigente, esta clave puede operar y ajustar margen aislado, pero no autorizar retiradas. Traer USDC de tu wallet exige que tu wallet firme o cofirme esa operación concreta, además de un permiso por el importe exacto. Consulta [Firmas y sesiones de trading](https://docs.botradix.com/es/sessions/). 4. **Deposita colateral.** Un depósito de USDC es una sola firma (permit EIP-2612) sin gas. También puedes depositar BAQ (con una transacción de la wallet). Consulta [Colateral, depósitos y retiros](https://docs.botradix.com/es/collateral/). 5. **Abre una posición.** Elige el mercado, LONG o SHORT, el tamaño de la posición (mínimo 18 USDC), el apalancamiento y el margen cruzado o aislado. Antes de confirmar, revisa la comisión, el precio de liquidación y el beneficio máximo. Si quieres, fija take profit y stop loss. Consulta [Órdenes y posiciones](https://docs.botradix.com/es/orders/). 6. **Gestiona y cierra.** Cierra toda la posición o una parte a mercado o con precio límite, edita el TP/SL o añade margen a una posición aislada. 7. **Retira** el colateral libre a tu wallet con una firma gratuita que envía el protocolo, o una transacción de la wallet. Se aplican las condiciones de margen, precios, deuda y pausas. Para salir sin la web, desde BaseScan con el contrato de salida verificado, consulta [Salir sin la web](https://docs.botradix.com/es/exit/). > [!WARNING] > Con apalancamiento, un pequeño movimiento del precio en tu contra puede liquidar tu posición y hacerte perder su margen. Empieza con poco y lee [Liquidación](https://docs.botradix.com/es/liquidation/). ## Usar un bot 1. **Inicia sesión** en [botradix.com](https://botradix.com). 2. **Conecta un exchange** en **Configuración**: una clave de API del BotRadix DEX, una agent wallet de Hyperliquid o una wallet vinculada para Uniswap. Consulta [Conectar exchanges](https://docs.botradix.com/es/exchanges/). 3. **Comprueba tu nivel de acceso.** En el BotRadix DEX son gratis dos bots Quant, seis pares y un Grid. Los límites superiores, y los bots en Hyperliquid o Uniswap, dependen del BAQ que tengas. Consulta [BAQ](https://docs.botradix.com/es/baq/#niveles-de-acceso). 4. **Crea un bot.** Configura [Quant](https://docs.botradix.com/es/quant/) (en botradix.com/Quant) o [Grid](https://docs.botradix.com/es/grid/) (en botradix.com/Grid), ponlo en marcha y, si quieres, conecta las alertas de Telegram. 5. **Haz el seguimiento** en el panel de Posiciones, con resultados realizados y no realizados; desde su papelera puedes cerrar a mercado una posición abierta y quitarla de BotRadix. Consulta [Historial, PnL y exportaciones](https://docs.botradix.com/es/history/). > [!IMPORTANT] > El registro de cuentas nuevas está cerrado temporalmente. Las cuentas existentes pueden iniciar sesión con normalidad, y el DEX sigue abierto a cualquier wallet. Detener o pausar un bot **no** cierra sus posiciones. Gestiónalas o ciérralas tú cuando detengas la automatización. ## Integrar con la API 1. Crea una clave de API desde la vista **API** del DEX o con los endpoints para desarrolladores. 2. Lee datos de mercado y de tu cuenta con `/api/dex/v1`. 3. Prepara acciones y fírmalas o ejecútalas. Empieza por [API: visión general y autenticación](https://docs.botradix.com/es/api/). --- # App móvil (Android) > Instala la app oficial de Android, verifícala y usa el DEX y los bots desde el móvil. Source: https://docs.botradix.com/es/mobile/ La app de BotRadix es de **solo lectura desde la versión 0.1.1**, y la **0.1.2** sigue siéndolo. Permite consultar mercados, posiciones y bots desde Android. No conecta wallets, firma operaciones, abre o cierra posiciones ni gestiona bots. La 0.1.2 pone al día los textos con los contratos v2.2 y A13: los motivos de cierre de cada posición, las órdenes en espera por cupo del mercado, la versión 2026-10-12.2 de los Términos con su huella SHA-256 y accesos a **Mi contrato (PDF)**, a las secciones **/Quant** y **/Grid** y a la guía de salida, que se abren en la web. Comprueba siempre la versión y la huella que muestre la ventana de descarga de la web. ## Descarga y actualizaciones La app se distribuye desde botradix.com para Android 7.0 o superior, con el paquete `com.botradix.app`. Consulta la versión descargable, el tamaño y la huella SHA-256 en la ventana de descarga de la web; la versión instalada aparece en **Cuenta → Actualizaciones**. 1. Abre [botradix.com](https://botradix.com) y elige **Descargar app**. 2. Comprueba la versión y la huella SHA-256 mostradas para ese archivo. No uses una huella de una versión anterior. 3. Abre el archivo descargado. Si Android lo solicita, permite la instalación desde tu navegador. Descarga la app únicamente desde botradix.com. Para buscar una actualización, usa **Buscar actualización** en la pantalla Cuenta o consulta la web. ## Qué puedes consultar - Mercados del DEX, precios, gráficos de velas y favoritos; el gráfico admite pantalla completa. - Patrimonio, posiciones, órdenes e historial de la dirección DEX vinculada a tu cuenta. También puedes consultar una dirección pública sin conectarla como wallet. - Estado y resultados disponibles de tus bots Quant y Grid. - Historial y resumen mensual con los costes informados por el servidor. - Niveles de acceso y capacidad de bots y pares. El acceso incluido no elimina las comisiones de operativa. Los datos se actualizan mediante consultas periódicas. Una lectura guardada o un precio pendiente de actualización no confirma el estado actual ni el cobro de un resultado. ## Uso con el DEX v2.2 El tope de referencia para exposición nueva es **20 veces el tamaño de la posición en beneficio bruto**, distinto del apalancamiento. Cada posición conserva el límite que le corresponde según su apertura y los cambios posteriores; no se debe calcular aplicando 20x a todas las posiciones existentes. El ADL puede reducir o cerrar posiciones ganadoras sin TP respaldado válido. Los pagos diferidos no son saldo disponible para retirar y su parte sin respaldo depende de la reposición de liquidez, sin cobro ni plazo garantizados. Consulta [Apalancamiento y margen](https://docs.botradix.com/es/margin/), [Riesgos](https://docs.botradix.com/es/risks/) y [Comisiones](https://docs.botradix.com/es/fees/). Las operaciones, autorizaciones y gestiones se realizan en la web. La sesión de acceso a la app dura hasta 8 horas y es independiente de las sesiones de trading de la web. Cerrar sesión (en todos los dispositivos) cierra tu sesión de cuenta también en la web; no detiene los bots ni revoca esas autorizaciones. Consulta [Firmas y sesiones de trading](https://docs.botradix.com/es/sessions/). ## Protección del dispositivo - Bloqueo biométrico en dispositivos compatibles. - Protección de pantalla activada por defecto y opción de ocultar saldos. - La app no solicita frases de recuperación ni claves privadas de wallet. Estas medidas protegen el acceso en el dispositivo; no eliminan el riesgo del DEX. La documentación v2.2 describe contratos abiertos y modificables por el administrador sin aviso previo obligatorio. Consulta [Seguridad](https://docs.botradix.com/es/security/). La app está disponible en español e inglés. El registro no está habilitado en la app; puedes usar una cuenta existente o explorar los mercados. --- # Conceptos clave > Wallets, colateral, margen, apalancamiento, PnL, funding y liquidación explicados con claridad. Source: https://docs.botradix.com/es/concepts/ Estas ideas aparecen en toda la plataforma. Cada una se explica con palabras sencillas y un ejemplo breve. ## Wallet y red Una **wallet** (como MetaMask o Rabby) guarda tus criptoactivos y firma en tu nombre. El BotRadix DEX funciona en **Base**, una red de Ethereum de bajo coste (chain ID 8453). En Base, **USDC** es un dólar digital y **ETH** paga las comisiones de la red ("gas"). Una **firma** demuestra que has aprobado algo y no cuesta nada; una **transacción** modifica la cadena y paga un poco de gas. ## Futuros perpetuos Un futuro perpetuo ("perp") te permite ganar o perder con el movimiento de un precio sin tener el activo y sin fecha de vencimiento. - **Long:** ganas si el precio sube. - **Short:** ganas si el precio baja. ## Tamaño de la posición y apalancamiento El **tamaño de la posición** (nocional) es el valor sobre el que se calcula tu beneficio o tu pérdida. El **apalancamiento** es el tamaño dividido entre el margen que comprometes. > **Ejemplo.** Un long de 1.000 USDC a 10x compromete 100 USDC de margen. Si el precio sube un 2 %, la posición gana unos 20 USDC: el 20 % del margen. Si baja un 2 %, pierde unos 20 USDC. El apalancamiento multiplica las ganancias y las pérdidas en la misma proporción. ## Margen - El **margen inicial** es lo que compromete una posición al abrirse: tamaño ÷ apalancamiento. - El **margen de mantenimiento** es el mínimo que debe conservar tu cuenta: en el BotRadix DEX, valor de referencia del 0,5 % del tamaño de la posición (ajustable entre el 0,1 % y el 5 % para exposición nueva). ## Margen cruzado y aislado - **Cruzado:** todo tu colateral libre respalda a la vez todas tus posiciones cruzadas. Las ganancias de una posición sostienen a otra, pero una pérdida grande afecta a toda la cuenta. - **Aislado:** cada posición tiene su propio margen. Como mucho pierdes ese margen; el resto de tu colateral no se ve afectado. ## Beneficio y pérdida (PnL) - **PnL no realizado:** el resultado de una posición abierta al precio actual. - **PnL realizado:** el resultado que queda fijado al cerrar una posición (o una parte). - **PnL neto:** el PnL realizado después de comisiones y funding. ## Precio de marca y oráculo El **precio de marca** es el que se usa para valorar posiciones, ejecutar órdenes y decidir liquidaciones. En el BotRadix DEX procede del **oráculo PairForge**, que agrega precios de varios exchanges y los firma antes de publicarlos en la cadena. ## Funding El **funding** es un pago pequeño y continuo que mantiene equilibradas las posiciones long y short. Cuando hay más interés abierto en long que en short, los longs pagan y los shorts cobran (y al revés). En el BotRadix DEX la política operativa vigente lo limita al 0,03 % cada 8 horas. ## Factor de salud y liquidación El **factor de salud** compara el patrimonio de tu cuenta con su margen de mantenimiento. Por encima de 1 la cuenta está a salvo; en 1 o por debajo, las posiciones pueden **liquidarse**, es decir, cerrarse automáticamente para frenar más pérdidas. > **Ejemplo.** Un patrimonio de 50 USDC frente a un margen de mantenimiento de 5 USDC da un factor de salud de 10. Si las pérdidas reducen el patrimonio a 5 USDC, el factor de salud es 1 y empieza la liquidación. ## Órdenes - **Orden a mercado:** se ejecuta ya al precio actual, dentro del deslizamiento máximo que aceptas. - **Orden limitada:** solo se ejecuta a tu precio o a uno mejor. - **Orden stop:** se convierte en orden a mercado cuando se alcanza un precio de activación. - **Take profit (TP) / stop loss (SL):** precios a los que una posición se cierra automáticamente para asegurar una ganancia o limitar una pérdida. - **Deslizamiento (slippage):** la diferencia entre el precio esperado y el precio ejecutado. - **Maker / taker:** en el BotRadix DEX es maker una orden limitada comprobada con un precio válido que no podía ejecutarse y quedó en espera; el resto (mercado, stop y limitadas colocadas con el mercado cerrado, en su primera ejecución) es taker. Los makers pagan una comisión menor. ## Beneficio máximo En el BotRadix DEX cada posición tiene un **beneficio máximo**: al lanzar la v2.2, 20 veces su tamaño para la exposición nueva (en un largo, que el precio se multiplique por 21). Cuando el vault está en riesgo, las posiciones ganadoras pueden reducirse o cerrarse antes (desapalancamiento automático), salvo que tengan un take profit respaldado válido; lo que la liquidez no cubra queda como pago diferido. Consulta [Apalancamiento y margen](https://docs.botradix.com/es/margin/#beneficio-maximo). ## BAQ **BAQ** es el token de BotRadix en Base. Tenerlo desbloquea límites más altos para los bots, y puede depositarse como colateral complementario en el DEX. Es un token de utilidad, no una participación en la empresa. Consulta [BAQ](https://docs.botradix.com/es/baq/). --- # Cómo funciona el DEX > Futuros perpetuos en Base: contra quién operas, cómo se fijan los precios y dónde está tu colateral. Source: https://docs.botradix.com/es/dex-overview/ El BotRadix DEX es un exchange de futuros perpetuos implementado como contratos inteligentes en Base. Operas desde tu wallet, tu colateral lo guardan los contratos del DEX y cada operación se liquida en la cadena. ## Contra quién operas No hay un libro de órdenes en el que los traders se crucen entre sí. Las posiciones se toman contra un **vault de liquidez propiedad del protocolo**: - Primero se compensan entre sí las posiciones opuestas de distintos traders. - El vault respalda la exposición **neta** que queda, y paga o cobra el resultado. - El vault no tiene proveedores de liquidez externos. Con los parámetros de referencia de v2.2, la comisión de apertura del protocolo se reparte entre el vault (90 %) y la reserva de BAQ (10 %); la comisión de servicio se paga aparte a su destinatario. ## Cómo se fijan los precios Cada mercado usa un único precio, publicado por el **oráculo PairForge**: es el precio al que se ejecutan las órdenes, se valoran las posiciones y se deciden las liquidaciones. No hay un precio índice aparte ni un diferencial de libro. - Una orden a mercado se ejecuta al precio del oráculo, dentro del deslizamiento máximo que fijes; si el precio se ha movido más allá, la orden se rechaza en lugar de ejecutarse a un precio peor. - Los pares sintéticos cruzados (por ejemplo ETH/BTC) se valoran como el cociente de sus dos patas, que deben observarse con menos de 5 segundos de diferencia. Consulta [Precios y oráculo](https://docs.botradix.com/es/oracle/). ## Cómo se ejecuta una operación 1. Eliges en el terminal el mercado, el lado, el tamaño, el apalancamiento y el modo de margen. 2. BotRadix valida la orden frente al mercado, tu cuenta y los contratos, y la simula. 3. Tu clave de trading (o tu wallet) firma la orden. No hace falta ETH para esto. 4. Un ejecutor del protocolo publica el precio firmado actual y envía tu orden en el mismo flujo, pagando el gas de la red. 5. Los contratos comprueban el precio, tu margen y los límites del mercado, y abren o actualizan la posición. Las órdenes limitadas y stop en espera, el take profit y el stop loss los ejecuta más tarde el **keeper** del protocolo cuando se cumplen sus condiciones. ## Límites de capacidad y protección Para que el vault siga siendo solvente, los contratos reservan capacidad para lo que podrían ganar los traders en un escenario de estrés (un movimiento del precio del 15 % al 50 %, según la configuración de cada mercado): - Solo se aceptan posiciones nuevas mientras la capacidad que requieren todos los mercados sea como mucho el 80 % del vault, y ningún mercado por sí solo requiera más del 50 %. - Cada mercado tiene límites de interés abierto y tramos de apalancamiento según el tamaño de la posición. - Si se alcanza un límite de capacidad, se rechazan entradas que aumenten el riesgo hasta que vuelva a haber sitio. Ese bloqueo no impide por sí mismo cerrar, pero el cierre sigue necesitando precios válidos y cumplir las condiciones del contrato. Además, cada posición tiene un [beneficio máximo](https://docs.botradix.com/es/margin/#beneficio-maximo). ## Pago de beneficios Los beneficios se pagan desde el vault; después, desde una reserva de seguro, y luego desde una reserva de emergencia. - **Desapalancamiento automático (ADL).** Si un movimiento fuerte más del precio dejara al vault sin poder pagar, el keeper reduce o cierra posiciones ganadoras (dentro de cada lote, primero las de mayor beneficio en relación con su tamaño del mismo lado y mercado), al precio del oráculo y sin comisión de cierre, y se detiene al bajar al objetivo. Se aplica el tope y el funding; lo que la liquidez no cubra queda diferido. Las posiciones con take profit respaldado válido no se cierran así. Consulta [Take profit respaldado y desapalancamiento automático](https://docs.botradix.com/es/margin/#take-profit-respaldado-y-desapalancamiento-automatico). - **Pagos diferidos.** Si, tras un salto de precio extremo, el vault y las reservas aún no bastaran, el importe pendiente se registraría como pago diferido, no como saldo retirable, y solo podría cobrarse si aportaciones o ingresos del vault reponen su respaldo, sin plazo ni garantía; mientras tanto, el DEX bloquea el riesgo nuevo (modo protegido de insolvencia). ## Dónde está tu colateral Tu colateral lo guardan los contratos del DEX en Base, a nombre de la dirección de tu wallet: - Los retiros los autoriza tu wallet, con una transacción o con una firma gratuita, y van siempre a esa wallet. Con el código actual, ni BotRadix ni tu clave de trading pueden retirar a otra dirección. - Puedes cerrar tus posiciones y retirar directamente desde BaseScan, sin la web. Consulta [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/). - El administrador **sí puede** pausar el DEX, ponerlo en modo de solo reducción, pausar los retiros (como mucho 72 horas seguidas) y retirar la liquidez **libre** del vault (no el colateral de los traders). - Los contratos son **actualizables**: los cambios del router pasan por una puerta de aviso previo (hoy de 0 horas) y el contrato de margen cruzado puede actualizarse al instante. Por tanto, las garantías anteriores dependen de que BotRadix gestione correctamente sus claves de administración. Es una fase temporal de consolidación; está previsto sellar por componentes cuando el sistema haya demostrado su estabilidad. Consulta [Seguridad y contratos](https://docs.botradix.com/es/security-contracts/), [Contratos inteligentes](https://docs.botradix.com/es/contracts/) para ver las direcciones y los controles de administración, y [Riesgos](https://docs.botradix.com/es/risks/). ## Versión Los contratos actuales son la **versión 2.2**, en funcionamiento desde el 11 de octubre de 2026: salida independiente desde BaseScan, puerta de aviso previo para los cambios del router, desapalancamiento automático con take profit respaldado, beneficio máximo de 20 veces el tamaño, parámetros ajustables dentro de límites escritos en los contratos y 150 mercados. Consulta las [Novedades](https://docs.botradix.com/es/changelog/). --- # Colateral, depósitos y retiros > USDC y BAQ como colateral, margen cruzado y aislado, y las comprobaciones de cada retiro. Source: https://docs.botradix.com/es/collateral/ El colateral es lo que respalda tus posiciones. El DEX acepta dos activos, con funciones muy distintas. ## USDC y BAQ | | USDC | BAQ | |---|---|---| | Cuenta como margen | El 100 % de su valor | Un crédito limitado, solo en margen cruzado | | Absorbe pérdidas | Sí | No; con el código vigente, el BAQ no se vende para cubrir pérdidas | | Venta para liquidar pérdidas de trading con el código vigente | Sí | No; persisten riesgos de precio y de cambios de código | | Depósito | Una firma (permit), sin gas | Transacción de la wallet (aprobación + depósito) | | Retiro | Firma gratuita o transacción de la wallet | Firma gratuita o transacción de la wallet | **USDC** es el activo de liquidación: las comisiones, el funding, las pérdidas y los beneficios se pagan en USDC. **Crédito de BAQ.** En margen cruzado, el BAQ depositado añade a tu patrimonio un crédito igual al **menor** de estos valores: - el 5 % del valor de tu BAQ al precio válido del oráculo descontado según su confianza; - el 20 % de tu USDC elegible (tu USDC menos lo bloqueado en posiciones aisladas); - lo que queda del 70 % utilizable de la reserva de BAQ del protocolo después de lo comprometido por otras cuentas. Con el código vigente, tus BAQ no se venden ni se consumen para cubrir pérdidas de trading: después del USDC se usa el respaldo comprometido de la reserva en USDC. Esto no elimina el riesgo de precio de BAQ, de fallos de los contratos ni de cambios de lógica durante la fase abierta. Más detalles y un ejemplo en [BAQ](https://docs.botradix.com/es/baq/#baq-como-colateral-del-dex). El 5 %, el 20 % y el 70 % son los valores de referencia de v2.2. El administrador puede ajustarlos dentro de los límites del código vigente, y un cambio se aplica **al momento** a las cuentas existentes: bajar el crédito puede acercar a la liquidación una cuenta que usa BAQ como margen. El crédito vivo es cero cuando no hay un precio válido de BAQ (más de 10 segundos de antigüedad, sesión no abierta o confianza fuera del límite); un fallo de precio no libera por sí solo el respaldo ya comprometido a una pérdida pendiente. Como el BAQ no absorbe pérdidas, las pérdidas se pagan primero con tu USDC; si no alcanza, con la reserva de BAQ comprometida, después con el vault y con las reservas de seguro. ## Depositar - **USDC (recomendado):** una firma gratuita (permit EIP-2612). Un ejecutor del protocolo envía el depósito y paga el gas; no hace falta una aprobación aparte. - **USDC (alternativa):** una aprobación por el importe exacto más una transacción de depósito desde tu wallet, con gas en ETH. - **BAQ:** una aprobación por el importe exacto más una transacción de depósito desde tu wallet. Los depósitos se abonan a la wallet que los hizo. ## Retirar Con el código vigente, un retiro lo autoriza tu wallet y envía los fondos a esa misma wallet; las claves de trading y las sesiones no tienen permiso de retiro. Durante la fase abierta el administrador puede cambiar esta lógica sin aviso previo obligatorio (0 horas); las direcciones que guardan el dinero son fijas, pero su comportamiento es sustituible. Puedes autorizarlo de dos formas: - **Firma gratuita (recomendada).** Firmas un mensaje; un ejecutor del protocolo envía el retiro con precios recientes en la misma transacción y paga el gas. No necesitas ETH. - **Transacción de la wallet (clásica).** Envías tú el retiro; necesita un poco de ETH en Base para el gas. Un retiro solo se acepta si, **después** de hacerlo: 1. el patrimonio de tu cuenta sigue cubriendo el margen inicial de tus posiciones cruzadas más el margen reservado por las órdenes en espera; 2. queda USDC suficiente para las comisiones pendientes, el funding y cualquier deuda; 3. los precios cumplen las reglas de valoración de las posiciones cruzadas. La valoración ordinaria requiere precios recientes (como mucho 10 segundos); los mercados congelados o en emergencia usan su precio e índice de funding fijados. Un mercado cerrado puede restringir las retiradas ordinarias. El terminal comprueba todo esto antes de pedirte la firma, y los precios de tus mercados abiertos viajan en la misma transacción que el retiro. Si el retiro dejara muy poco margen libre, muestra **"Margen libre insuficiente para retirar esa cantidad. Retira menos o cierra posiciones."** El margen bloqueado en una posición aislada y las fianzas reembolsables de las órdenes vuelven a tu colateral libre cuando se cierra la posición o la orden. > [!NOTE] > El administrador puede pausar los retiros por seguridad (por ejemplo, durante una incidencia). Una pausa dura como mucho **72 horas** y otra solo puede empezar tras **24 horas** sin pausa; lo exigen los contratos. Mientras estén pausados, el terminal indica cuándo se reanudan. Si la web no está disponible, consulta [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/). ## Margen cruzado y aislado | | Cruzado (por defecto) | Aislado | |---|---|---| | Margen | Compartido por todas las posiciones cruzadas | Independiente para cada posición | | Crédito de BAQ | Cuenta | No cuenta | | Liquidación | Se decide a nivel de cuenta | Se decide por posición | | Pérdida máxima | Tu colateral cruzado | El margen de esa posición | Una cuenta puede tener posiciones cruzadas en hasta 32 mercados a la vez. La comisión de apertura de una posición aislada se cobra de tu USDC libre. ## ¿Cuánto puedo retirar? El colateral libre se estima a partir del patrimonio, el margen comprometido, las reservas de órdenes, las comisiones, el funding y la deuda. El crédito BAQ no es USDC retirable. La estimación del terminal puede cambiar antes de ejecutar; el contrato comprueba el estado real al procesar la retirada. --- # Órdenes y posiciones > Órdenes a mercado y limitadas, take profit y stop loss, cierres parciales, inversión y límites de tamaño. Source: https://docs.botradix.com/es/orders/ ## Tipos de orden | Tipo | Cómo se ejecuta | |---|---| | A mercado | De inmediato, al precio del oráculo, si está dentro de tu deslizamiento máximo. Si no, se rechaza. Siempre es inmediata o se cancela | | Limitada | Solo a tu precio o a uno mejor. Si puede ejecutarse al crearla, se ejecuta al instante; si no, queda en espera hasta que se alcanza el precio | | Stop | Se convierte en una ejecución a mercado cuando se alcanza el precio de activación | Las opciones de vigencia son GTC (válida hasta cancelarla), IOC (inmediata o cancelada) y FOK (completa o nada). Las órdenes limitadas admiten **post-only**. No hay órdenes stop-limit ni trailing. ## Deslizamiento Las órdenes a mercado requieren un deslizamiento máximo. El terminal usa la preferencia de deslizamiento guardada para abrir e invertir: un 8 % por defecto, ajustable hasta un 10 %. La API de inversión admite hasta un 20 % y usa un 1 % si se omite el valor. El deslizamiento limita el precio aceptado: un valor bajo protege tu precio, pero hace más probable el rechazo en mercados rápidos; no asegura la ejecución. ## Límites de tamaño - Tamaño mínimo de posición: **18 USDC** en los mercados del catálogo de v2.2 (configuración de cada mercado; el mínimo técnico del código es 1 USDC). - Tamaño máximo: limitado por los tramos de apalancamiento y los límites de interés abierto del mercado (consulta [Apalancamiento y margen](https://docs.botradix.com/es/margin/)). - Cada mercado define su incremento de precio y su paso de cantidad, que se leen de los contratos. ## Límites por cuenta Para acotar el trabajo de valoración y cierre, cada wallet puede tener los siguientes máximos. Estos límites no garantizan una ejecución rápida: | Límite | Valor | |---|---| | Mercados con posiciones cruzadas | 32 | | Posiciones abiertas | 128 | | Órdenes de entrada abiertas (limitadas y stop en espera) | 256 (valor de referencia de v2.2, ajustable entre 32 y 1.000) | Si llegas al límite de órdenes abiertas, las órdenes nuevas se rechazan hasta que alguna se ejecute o se cancele; las órdenes que ya existen no se ven afectadas. ## Órdenes en espera Una orden limitada o stop en espera reserva su margen, su comisión de apertura y una fianza reembolsable de **0,025 USDC** (valor de referencia de v2.2; el código la limita a 1 USDC) hasta que la orden termina, incluida su cancelación o invalidación. Las órdenes grandes en espera se ejecutan en tramos de hasta 100.000 USDC cada uno (valor de referencia de v2.2; las FOK no se recortan). Las órdenes en espera las ejecuta el keeper del protocolo; para ello hace falta un **permiso de ejecución**, que se concede una sola vez con una firma gratuita y tiene una pequeña comisión por ejecución (consulta [Comisiones](https://docs.botradix.com/es/fees/#permiso-de-ejecucion)). ## Posiciones Una posición se identifica por su mercado, su lado, su modo de margen y su apalancamiento. Puedes tener a la vez un long y un short en el mismo mercado (por ejemplo, con distinto apalancamiento o modo de margen); las órdenes con las mismas características se suman a la misma posición neta. Al abrir no se acepta la opción de solo reducción. ## Take profit y stop loss - En un long, el take profit debe estar por encima del precio actual y el stop loss por debajo; al revés en un short. - Cuando se activan, cierran **toda** la posición a mercado. - Cuando fijas un take profit, el vault intenta reservar capacidad para su beneficio dentro del tope. Mientras un take profit **respaldado** siga válido, su posición queda excluida del desapalancamiento automático; el respaldo no es una garantía de cobro en todos los escenarios. La ventana de confirmación te indica si tu take profit está respaldado. Consulta [Take profit respaldado y desapalancamiento automático](https://docs.botradix.com/es/margin/#take-profit-respaldado-y-desapalancamiento-automatico). - Editar el TP/SL con tu clave de trading no pide firma a la wallet, y hasta 200 ediciones al día no pagan gas (valor de referencia de v2.2, ajustable entre 1 y 2.000). ## Cerrar - Cierra a **mercado** o con precio **limitado**, la parte de la posición que quieras (del 0,01 % al 100 %). El terminal ofrece atajos del 5, 10, 20, 50, 75 y 100 %. - Un cierre limitado es una orden de solo reducción que espera hasta ejecutarse; una por posición. - Si un cierre parcial dejara menos que el tamaño mínimo de posición del mercado (18 USDC en el catálogo de v2.2; se usa el mínimo vigente de su mercado), se cierra la posición entera. La ventana de confirmación te avisa antes de firmar. - Hoy cerrar no tiene comisión del protocolo. El código actual permite una comisión de cierre de hasta el 0,10 %; la confirmación muestra una estimación y una orden pendiente paga la comisión vigente al ejecutarse; el desapalancamiento automático, las salidas, las emergencias y las liquidaciones nunca la pagan. Tu resultado realizado, descontado el funding, se liquida en tu colateral. ## Invertir **Invertir** cierra una posición (o una parte) y abre el lado contrario en un solo paso atómico, pagando la comisión de apertura (y la de servicio) de la parte abierta. Si ya tienes una posición del lado contrario con la misma clave (mercado, modo de margen y apalancamiento), la parte invertida se une a esa posición neta en lugar de abrir otra, y el tramo de apalancamiento se comprueba sobre el tamaño resultante; si no cabe, la inversión entera se rechaza. En ese caso la inversión devuelve el id de la posición neta existente: en la cadena no aparece un `DexPositionOpened` nuevo, sino un `DexPositionChanged` de esa neta. En los mercados con reglas de riesgo V2, la parte abierta se ejecuta comprometida con un precio observado después de tu orden, así que la inversión pasa por tu clave de trading (o por la ruta delegada de la API con un ejecutor del protocolo); sin ella, el terminal te pide activarla (`INVERT_NEEDS_AGENT`). ## Margen aislado En una posición aislada puedes: - **Añadir margen** (botón "Margen +"), lo que aleja su precio de liquidación. Solo se puede usar USDC libre: si tus posiciones cruzadas necesitan ese USDC, la acción se rechaza con un mensaje claro. - **Retirar margen**, siempre que el margen que quede siga cubriendo tamaño ÷ apalancamiento más la pérdida no realizada de la posición y el funding que deba (los beneficios no cuentan). Necesita un precio de como mucho 10 segundos, y el DEX y ese mercado deben estar abiertos a riesgo nuevo. - **Cambiar el apalancamiento.** Al bajarlo se añade el margen necesario. Subirlo se permite hasta el máximo del tramo para el tamaño actual de la posición, y solo devuelve el margen sobrante con la misma regla que una retirada. Tu clave de trading puede hacer todo esto sin ventana de la wallet; el protocolo paga el gas. El margen solo se mueve entre tu cuenta y tus propias posiciones aisladas, nunca fuera del DEX. **Con un mercado cruzado en sesión cerrada.** Si un mercado de tu cuenta cruzada tiene la sesión cerrada (por ejemplo, un índice en fin de semana), tu saldo del DEX no se puede valorar y no sirve como margen aislado. Entonces el margen de una apertura aislada o de "Margen +" sale de tu wallet: el contrato trae el margen (en una apertura a mercado, más un 0,30 % del tamaño para las comisiones máximas; en una orden limitada o stop, más un 0,31 % del tamaño y la fianza de la orden, 0,025 USDC como valor de referencia de v2.2; lo que no se gaste queda como saldo del DEX) y lo usa en la misma transacción. Tu wallet firma esa operación concreta: la cofirma junto a tu clave de trading, o la firma ella misma si no usas clave de trading; una sesión de trading no puede hacerlo. Si lo envía BotRadix, además firmas un permiso de USDC por ese importe exacto (gratis, sin gas); el contrato solo trae ese importe y el permiso queda a cero. La ventana de confirmación te explica las firmas antes de abrirlas. Si tu wallet no tiene USDC suficiente, se rechaza (`WALLET_MARGIN_BALANCE_REQUIRED`); "Margen +" sin clave de trading, `WALLET_MARGIN_NEEDS_AGENT`. El dinero de tus posiciones cruzadas nunca se usa mientras no se pueda valorar, y cuando la sesión reabre vuelves a usar tu saldo del DEX. ## Cancelar y reemplazar Las órdenes en espera pueden cancelarse o reemplazarse con tu clave de trading, sin firma de la wallet. --- # Apalancamiento y margen > Tramos de apalancamiento, margen inicial y de mantenimiento, factor de salud y beneficio máximo por posición. Source: https://docs.botradix.com/es/margin/ ## Tramos de apalancamiento El apalancamiento va de 1x a 100x. El máximo depende del grupo del mercado y del **tamaño de la posición resultante**: cuanto mayor es la posición, menor es el apalancamiento máximo. También lo limita el mantenimiento: 2 × mantenimiento (en puntos básicos) × apalancamiento ≤ 10.000; por ejemplo, un mantenimiento del 5 % permite como máximo 10x. Los mercados, tramos, límites de interés abierto y escenarios de estrés son configuración consultable de cada mercado: la tabla describe el catálogo de v2.2 al lanzar y el administrador puede cambiarlo. | Grupo de mercados | Mercados | Hasta 100x | Hasta 50x | Tercer tramo | Por encima | Límite de interés abierto por mercado | |---|---|---|---|---|---|---| | BTC y ETH | 2 | 10.000 USDC | 50.000 USDC | 25x hasta 250.000 USDC | 10x | Sin límite | | Cripto principales (precios de varias fuentes) | 70 | 2.000 USDC | 10.000 USDC | 20x hasta 50.000 USDC | 10x | 250.000 USDC | | Otras cripto y activos tradicionales | 64 | 1.000 USDC | 5.000 USDC | 20x hasta 20.000 USDC | 10x | 50.000 USDC | | Mercados de BAQ | 14 | 200 USDC | 1.000 USDC | 20x hasta 5.000 USDC | 10x | 10.000 USDC | **Ejemplo.** En BTC, una posición de 30.000 USDC puede usar hasta 50x; por encima de 50.000 USDC, el máximo es 25x. Si una orden superara un tramo, un límite de interés abierto o la capacidad de liquidez disponible, el terminal te lo indica antes de firmar (`LEVERAGE_TIER_EXCEEDED`, `OPEN_INTEREST_CAP` o `LIQUIDITY_CAPACITY`). El apalancamiento de una posición aislada existente puede subirse hasta el máximo del tramo que corresponde a su tamaño actual. Estos tramos se aplican a todas las formas de operar: el terminal, las sesiones de trading, las órdenes firmadas y la API. ## Margen inicial y de mantenimiento | | Fórmula | Ejemplo: 1.000 USDC a 10x | |---|---|---| | Margen inicial | tamaño ÷ apalancamiento | 100 USDC | | Margen de mantenimiento | 0,5 % del tamaño (cada mercado puede tener su propio valor, entre el 0,1 % y el 5 %) | 5 USDC | El margen de mantenimiento de una posición se fija al abrirla: si después cambia el valor de un mercado, solo se aplica a las posiciones nuevas y a lo que añadas a las existentes. ## Patrimonio y factor de salud El **patrimonio** de tu margen cruzado es: ```text patrimonio = USDC elegible (saldo USDC − USDC bloqueado en aisladas) + PnL no realizado (pérdidas completas; el beneficio de cada posición cuenta hasta el menor entre su tope y su tamaño × su porcentaje de crédito) − comisiones pendientes − funding adeudado − deuda + crédito de BAQ ``` Una posición puede ganar más del 100 % de su tamaño al cerrarse (consulta [Beneficio máximo](https://docs.botradix.com/es/margin/#beneficio-maximo)), pero mientras está abierta su beneficio solo cuenta como margen cruzado hasta su porcentaje de crédito (al lanzar, el 100 % del tamaño), para que tu margen no se apoye en beneficios que el vault quizá no pueda pagar. Ese porcentaje se toma al abrir, se combina por tamaño al ampliar y nunca queda por debajo del valor vigente: bajarlo no recorta la exposición antigua que no amplíes; subirlo ayuda también a las posiciones existentes. **Ejemplo:** abrir 1.000 USDC con el crédito al 100 % y añadir otros 1.000 con el parámetro al 50 % deja un porcentaje combinado del 75 %. El margen disponible para abrir descuenta además los márgenes comprometidos y las reservas de órdenes. El **factor de salud** es el patrimonio dividido entre el margen de mantenimiento total de tus posiciones cruzadas: - Por encima de **1,25**: saludable. - Entre **1** y **1,25**: aviso; la cuenta está cerca de la liquidación. - **1 o menos**: las posiciones pueden liquidarse. Una posición aislada se evalúa por sí sola: puede liquidarse cuando su margen más su PnL, menos el funding, cae a su mantenimiento guardado (valor de referencia 0,5 % de su tamaño) o menos. Consulta [Liquidación](https://docs.botradix.com/es/liquidation/) para ver el precio y el proceso de liquidación. ## Beneficio máximo Cada posición tiene un **beneficio máximo** bruto: al lanzar la v2.2, **20 veces su tamaño** para la exposición nueva. Un largo solo llega a él si el precio sube hasta 21 veces su entrada con la posición abierta; un corto nunca puede ganar más que su tamaño (su precio no puede caer por debajo de cero). El límite se fija al abrir la posición y se aplica tanto al beneficio no realizado como al realizado. El administrador puede cambiarlo para la exposición nueva dentro de los límites del código vigente (entre 1 y 20 veces el tamaño); un límite por encima de 1 vez el tamaño solo se permite mientras el desapalancamiento automático y el take profit respaldado estén activos, y el código lo exige. Al ampliar se suma el tope de la parte nueva con los parámetros vigentes; al reducir, el tope baja en proporción; cambiar el parámetro no recalcula por sí solo la exposición ya abierta. Estas reglas dependen del código vigente y de las condiciones de una posible vuelta atrás. El límite de cada posición aparece en la API como `protocol_profit_cap_usdc`. Las posiciones abiertas antes del 11 de octubre de 2026 conservan el límite con el que se abrieron hasta que se cierran; lo que se les añada después usa el límite nuevo. | Posición | Margen inicial | Beneficio máximo | |---|---|---| | 1.000 USDC a 100x | 10 USDC | 20.000 USDC (+2.000 % del tamaño) | | 1.000 USDC a 10x | 100 USDC | 20.000 USDC (+2.000 % del tamaño) | | 1.000 USDC a 2x | 500 USDC | 20.000 USDC (+2.000 % del tamaño) | > [!IMPORTANT] > El límite dice cuánto puede ganar una posición; no es una promesa de que el vault siempre pueda pagarlo. Los beneficios grandes los protege el desapalancamiento automático, que puede reducir o cerrar una posición antes (ver abajo), y como último recurso los pagos diferidos, que solo se cobran si se repone su respaldo y sin plazo garantizado. ## Take profit respaldado y desapalancamiento automático El vault es la contraparte de cada posición y es pequeño comparado con los beneficios máximos que podría deber. Dos mecanismos mantienen pagables los beneficios grandes. **Take profit respaldado.** Cuando fijas un take profit, el vault reserva capacidad para su beneficio dentro del tope, si hay sitio disponible: - Reservar es gratis mientras el take profit esté dentro del escenario de estrés del mercado (configuración del mercado; un movimiento del 15 % en la mayoría de mercados del catálogo de v2.2); los objetivos más lejanos reservan capacidad adicional. - Con los valores de referencia de v2.2, la capacidad **adicional** de una posición no supera el 20 % y la adicional total el 40 % de la liquidez del vault sin la reserva de pagos diferidos. No son porcentajes de toda la reserva ni una garantía de cobro, y la capacidad puede cambiar entre la vista previa y la ejecución. - Si no hay sitio, la posición se abre igualmente (o el take profit se fija igualmente) y la ventana de confirmación te indica, antes de firmar, el take profit más lejano que se podría respaldar. - Mientras el respaldo siga válido, **su posición queda excluida del desapalancamiento automático**; cambios de TP, tamaño o estado pueden reevaluarlo. El cierre liquida funding y costes y, tras saltos extremos, puede dejar una parte como pago diferido. - Una orden que se suma a una posición con take profit respaldado reevalúa ese respaldo. Si al hacerlo no se puede volver a respaldar (por ejemplo, el precio saltó más allá del take profit) y el mercado quedaría por encima de su cupo o el vault por encima de su techo de admisión, **la orden se rechaza entera** por capacidad del vault (`LIQUIDITY_CAPACITY`) y no cambia nada. La vista previa no siempre lo anticipa. - Quitar o cambiar un take profit sin abrir más **no se bloquea por esta comprobación de capacidad**, aunque deje el mercado por encima de su cupo. En ese caso protegen al vault el bloqueo de riesgo nuevo por sobreutilización y, si hace falta, el desapalancamiento automático. **Desapalancamiento automático (ADL).** Con los valores de referencia de v2.2, el ADL se arma cuando la capacidad reservada (incluido el escenario de estrés de cada mercado) alcanza el 100 % de la liquidez del vault sin la reserva de pagos diferidos, y se detiene al bajar al 90 % de esa liquidez. Disparo y objetivo son parámetros ajustables; el disparo efectivo no puede quedar por debajo del techo de admisión más 5 puntos porcentuales. Mientras está armado, el keeper reduce o cierra posiciones: - Selecciona posiciones ganadoras sin take profit respaldado válido, al precio válido del oráculo; dentro de cada lote, entre posiciones del mismo lado y mercado, primero las de **mayor beneficio en porcentaje de su tamaño**. La validación del lote no garantiza una clasificación global de todos los ganadores. - Sin comisión de cierre ni penalización. Se aplica el tope de beneficio y se liquida el funding; una ganancia cruzada compensa primero la deuda cruzada pendiente; el neto se paga con la liquidez disponible y lo no cubierto queda diferido. No se garantiza cobrar al momento toda la ganancia bruta. - Solo cierra posiciones que ganan y que ganan al menos la media de su lado en ese mercado. Las posiciones con take profit respaldado no se cierran. - El contrato comprueba en la cadena cada cierre por ADL: que el ADL esté armado, la elegibilidad, el orden dentro del lote y que el cierre reduzca la capacidad reservada. > **Ejemplo puramente hipotético.** Un largo de 34 USDC a 100x compromete 0,34 USDC de margen; una subida lineal del 14 % produce 4,76 USDC de beneficio bruto antes de funding y límites. Esto no calcula un umbral de ADL ni certifica el saldo del vault: el ADL depende de la exposición agregada, el estrés, el respaldo y la liquidez efectiva. Con un vault mayor, una misma posición llega más lejos antes de que actúe el ADL. El ADL puede cerrar tu posición sin que lo pidas, así que pierdes la ganancia que pudiera venir después. Si quieres que se respete un objetivo de beneficio, fija un take profit y comprueba en la ventana de confirmación que está respaldado. --- # Liquidación > Cuándo se liquida una posición, cómo se calcula el precio de liquidación y cómo evitarla. Source: https://docs.botradix.com/es/liquidation/ La liquidación cierra una posición cuando su equity alcanza el mantenimiento o cae por debajo. Limita la exposición posterior según las reglas del contrato; no garantiza proteger de pérdidas al resto del colateral ni al vault. ## Cuándo ocurre - **Posiciones cruzadas:** cuando el factor de salud de la cuenta llega a 1 o menos, es decir, cuando el patrimonio cae al margen de mantenimiento total (el 0,5 % del tamaño de tus posiciones cruzadas, o el valor propio del mercado si lo tiene). - **Posiciones aisladas:** cuando el margen de la posición más su PnL, menos el funding, cae a su margen de mantenimiento (el 0,5 % de su tamaño, o el valor propio del mercado) o menos. El margen de mantenimiento de una posición se fija al abrirla. Consulta [Apalancamiento y margen](https://docs.botradix.com/es/margin/#margen-inicial-y-de-mantenimiento). El terminal te avisa cuando el factor de salud baja de 1,25. ## Precio de liquidación **Posiciones aisladas.** El precio puede moverse en tu contra aproximadamente: ```text distancia ≈ 1 / apalancamiento − 0,5 % (mantenimiento) ``` | Apalancamiento | Movimiento adverso aproximado hasta la liquidación | |---|---| | 5x | 19,5 % | | 10x | 9,5 % | | 25x | 3,5 % | | 50x | 1,5 % | | 100x | 0,5 % | Es una aproximación lineal sin funding ni cambios de margen y con mantenimiento del 0,5 %. La comisión de apertura y la de servicio se pagan aparte del margen aislado y no lo reducen. El precio real depende del funding (el pagado mientras la posición está abierta acerca el precio de liquidación), del margen añadido o retirado, del mantenimiento guardado en la posición, de la orientación del mercado y del redondeo. **Posiciones cruzadas.** El precio de liquidación depende de toda tu cuenta. Con una sola posición cruzada, aproximadamente: ```text long: precio de liquidación ≈ entrada × (1 − (colateral cruzado − mantenimiento) / tamaño) short: precio de liquidación ≈ entrada × (1 + (colateral cruzado − mantenimiento) / tamaño) ``` > **Ejemplo.** Un short de 1.000 USDC abierto a 100, con 200 USDC de colateral cruzado y un margen de mantenimiento de 5 USDC: liquidación ≈ 100 × (1 + 195 / 1.000) = 119,5. Añadir colateral la aleja; retirar colateral la acerca. El terminal estima los precios de liquidación con los datos disponibles de la cuenta. Los precios, el funding, el margen y otras posiciones pueden cambiar antes de ejecutar; la estimación no garantiza el precio de ejecución. ## Qué pasa en la liquidación Desde la versión 2.1, una liquidación es una **única ejecución que cierra toda la posición** al precio actual del oráculo. | | Posición aislada | Posición cruzada | |---|---|---| | La pérdida la cubre | El margen de esa posición | Tu colateral libre en USDC | | Penalización | Con los valores de referencia de v2.2, el margen restante de la posición (90 % para el vault y 10 % para la reserva de BAQ); penalización y reparto son ajustables en el código actual. En la práctica se pierde todo el margen aislado | Ninguna penalización adicional; se cobran sus pérdidas conforme a las reglas de colateral | | Alcance de la liquidación con el código vigente | Margen de la posición; las comisiones se cobran aparte | Colateral compartido; otras posiciones también pueden llegar a liquidación | Si una pérdida cruzada superara tu USDC, el exceso lo cubriría la reserva de BAQ comprometida y después el vault. Con el código vigente, tu BAQ depositado no se vende para cubrir pérdidas; eso no elimina el riesgo de precio de BAQ ni el de cambios de lógica durante la fase abierta. ## Quién liquida El **keeper** del protocolo vigila las posiciones y ejecuta las liquidaciones con precios firmados actuales. La función de liquidación es pública (cualquiera puede llamarla para una posición liquidable) y no paga recompensa. Las liquidaciones nunca cobran comisión de ejecución. Para liquidar hace falta un precio actual del oráculo para el mercado. Mientras un mercado esté cerrado (`SESSION_CLOSED`), se suspenden las aperturas, cierres y liquidaciones ordinarios que necesitan un precio de sesión abierta. Los procedimientos de desafío, congelación y emergencia tienen reglas propias y permiten cerrar a precios fijados cuando se cumplen. Un mercado fijado (congelado o en emergencia) cuenta en la salud de tu cuenta, en cualquier cálculo, a su precio y su índice de funding fijados, nunca al precio vivo del oráculo. Cerrar la sesión no detiene por sí solo el funding válido. ## El desapalancamiento automático no es una liquidación El desapalancamiento automático (ADL) también cierra posiciones sin que lo pidas, pero por el motivo contrario: reduce o cierra posiciones **ganadoras** cuando el vault está en riesgo, sin comisión de cierre ni penalización. Se aplica el tope de beneficio y se liquida el funding; el neto se paga con la liquidez disponible y lo no cubierto queda como pago diferido, así que no se garantiza cobrar al momento toda la ganancia bruta. Consulta [Take profit respaldado y desapalancamiento automático](https://docs.botradix.com/es/margin/#take-profit-respaldado-y-desapalancamiento-automatico). ## Cómo evitarla - Usa menos apalancamiento: la tabla de arriba muestra lo rápido que un apalancamiento alto llega a la liquidación. - Un **stop loss** puede reducir la exposición antes de la liquidación, pero su ejecución y precio dependen del oráculo, el keeper y las condiciones del mercado. - Añade colateral (cruzado) o margen (aislado) cuando el factor de salud se acerque a 1,25. - Recuerda que retirar colateral acerca los precios de liquidación de las posiciones cruzadas. - Vigila el funding en las posiciones que mantienes mucho tiempo. > [!CAUTION] > En mercados rápidos, el precio puede saltar más allá de tu stop loss o de tu precio de liquidación. Una liquidación es definitiva. --- # Funding > El pago continuo que equilibra la exposición long y short: fórmula, tope, sentido y ejemplos. Source: https://docs.botradix.com/es/funding/ El funding es un cargo o abono pequeño y continuo sobre las posiciones abiertas que premia al lado que equilibra el mercado. Se calcula por segundo y se expresa como una tasa cada 8 horas. ## Cómo se calcula la tasa La tasa depende del desequilibrio entre el interés abierto long (L) y short (S) del mercado: ```text tasa de funding (cada 8 h) = (L − S) / (L + S) × 0,03 % ``` - La tasa tiene un tope del **0,03 % cada 8 horas** (3 puntos básicos), que solo se alcanza cuando todo el interés abierto está en un lado. Este 0,03 % es la política operativa vigente, configurada en los reporters del oráculo y en la web; no lo impone el contrato y puede ajustarse. El contrato aplica aparte su límite absoluto de ±1 % cada 8 horas. - Una tasa positiva significa que **los longs pagan y los shorts cobran**; una negativa, lo contrario. - Los pagos van al vault de liquidez del protocolo y salen de él, porque es la contraparte de la exposición neta. - No hay una comisión de préstamo aparte. ## Ejemplos | Situación | Tasa cada 8 h | Long de 1.000 USDC | Short de 1.000 USDC | |---|---|---|---| | L = 600.000, S = 400.000 | +0,006 % | paga 0,06 USDC | cobra 0,06 USDC | | L = 400.000, S = 600.000 | −0,006 % | cobra 0,06 USDC | paga 0,06 USDC | | Solo longs | +0,03 % (tope) | paga 0,30 USDC | — | Con la tasa en el tope, un long mantenido 30 días paga aproximadamente 0,03 % × 3 × 30 = 2,7 % de su tamaño. ## Cuándo se paga El funding se acumula de forma continua y se liquida cuando la posición se reduce o se cierra. Mientras la posición está abierta cuenta en tu patrimonio, así que acerca poco a poco el precio de liquidación. ## Vigencia de la tasa El oráculo publica la tasa de funding de cada mercado, que hoy es válida durante 2 horas; el protocolo la vuelve a publicar con regularidad. Para abrir o aumentar riesgo, el DEX exige una tasa válida de como mucho 2 horas; si la de un mercado caduca, se bloquean las posiciones nuevas en él hasta que se publique una tasa nueva. El funding acumulado sigue el índice de la fuente cuando está disponible; la alternativa del contrato solo acumula la última tasa durante una ventana de 2 horas. Los contratos aplican además un límite absoluto de ±1 % cada 8 horas. El periodo de validez (entre 15 minutos y 8 horas) y el límite absoluto (entre el 0,01 % y el 1 % cada 8 horas) los puede ajustar el administrador dentro de esos márgenes escritos en el código vigente; cada observación conserva la vigencia con la que se publicó y una bajada de límites no reescribe el funding ya acumulado. Si un mercado se liquida por no recibir precios (consulta [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/)), o durante una emergencia, al congelarse el mercado se fija también su índice de funding y los cierres usan ese índice. ## Dónde verla El terminal muestra la tasa actual de cada mercado cada 8 horas y el tiempo que falta para la próxima actualización. Tus posiciones muestran el funding acumulado, y las posiciones cerradas registran el funding pagado o cobrado. Con la API, usa `GET /markets/{pair_id}/funding` y los webhooks `funding.charged` / `funding.credited`. --- # Comisiones > Todos los costes de operar en el DEX, en una tabla, con ejemplos. Source: https://docs.botradix.com/es/fees/ ## Comisiones del DEX de un vistazo | Coste | Importe | Notas | |---|---|---| | Comisión de apertura, taker | **0,06 %** del tamaño de la posición | Órdenes a mercado, stop y limitadas sin condición maker | | Comisión de apertura, maker | **0,03 %** del tamaño de la posición | Limitadas comprobadas con un precio válido que no podían ejecutarse y quedaron en espera. Una limitada colocada con el mercado cerrado o sin precio válido paga taker en su primera ejecución; tras un fill parcial, su resto puede pagar maker | | Comisión de cierre | **Ninguna** | Sin comisión del protocolo al cerrar, total o parcialmente. El código actual permite hasta el 0,10 %, mostrado como estimación antes de firmar; el desapalancamiento automático, las salidas, las emergencias y las liquidaciones nunca la pagan | | Funding | Hasta un **0,03 % cada 8 h** (política operativa vigente; el contrato admite como máximo ±1 %) | Se paga o se cobra; consulta [Funding](https://docs.botradix.com/es/funding/) | | Comisión de servicio de BotRadix | **0,03 %** del tamaño, en aperturas y ampliaciones | La cobran los contratos solo con tu consentimiento firmado vigente (destinatario, máximo y caducidad), que el terminal pide una vez. Si la comisión supera tu permiso, la apertura se rechaza. Nunca en cierres, TP/SL ni liquidaciones. El código actual la limita al 0,20 % | | Fianza de orden en espera | **0,025 USDC** por orden de entrada en espera | Se devuelve cuando la orden termina, incluida su cancelación o invalidación. Valor de referencia de v2.2, ajustable; el código lo limita a 1 USDC | | Ejecución por el keeper de órdenes en espera y de TP/SL | **0,10 USDC** por ejecución, como máximo 10 USDC al día | Solo si concediste el permiso de ejecución (ver más abajo). Valores por defecto del backend, configurables dentro de tu permiso firmado | | Liquidación (aislada) | El margen restante de la posición (valor de referencia de v2.2; penalización ajustable entre 0 % y 100 %) | Se reparte 90 % al vault y 10 % a la reserva BAQ. Las liquidaciones cruzadas no tienen penalización adicional; consulta [Liquidación](https://docs.botradix.com/es/liquidation/) | | Gas de la red | Lo paga casi siempre el protocolo | Consulta la tabla de gas más abajo | La comisión de apertura del protocolo se redondea al alza a la unidad mínima de USDC y, con los parámetros de referencia de v2.2, se reparte un 90 % para el vault de liquidez y un 10 % para la reserva de BAQ (reparto ajustable entre 0 % y 50 % para BAQ). Este reparto no incluye la comisión de servicio, que se calcula aparte y se paga a su destinatario configurado. Estos son los valores de referencia de v2.2 desplegada el 11-10-2026. El administrador puede ajustarlos dentro de los límites del código vigente (comisiones de apertura: maker ≤ taker ≤ 0,10 %; comisión de cierre: como mucho 0,10 %; servicio: como mucho 0,20 %) y cada cambio es público en Base. La confirmación muestra una estimación con los parámetros disponibles al prepararla; una orden en espera paga las comisiones vigentes en cada ejecución, que pueden cambiar después de firmar. Aceptar los términos no congela estas cifras; mientras los contratos estén abiertos, el administrador también puede cambiar el propio código. Consulta [Seguridad y contratos](https://docs.botradix.com/es/security-contracts/#fondos-permisos-y-riesgos). **Ejemplos** - Abrir una posición de 1.000 USDC con una orden a mercado: 0,60 USDC de apertura + 0,30 USDC de servicio = 0,90 USDC. - Abrir la misma posición con una orden limitada que fue maker (comprobada con precio válido y en espera): 0,30 USDC + 0,30 USDC = 0,60 USDC. - Cerrarla: 0 USDC de comisiones del protocolo. Tu resultado se liquida junto con el funding acumulado. ## Gas de la red El coste del gas de Base varía con la red y el precio de ETH; suele ser pequeño, pero no hay un importe fijo garantizado en USD. | Lo paga el protocolo (no necesitas ETH) | Lo paga tu wallet en ETH | |---|---| | Abrir, cerrar e invertir posiciones con tu clave de trading | Retiros clásicos enviados desde tu wallet | | Ediciones de TP/SL (hasta 200 al día) y cancelar/reemplazar | Depósitos de BAQ | | Depósitos de USDC con firma permit | Depósitos de USDC con aprobación + depósito | | Ejecuciones del keeper, desapalancamiento automático y liquidaciones | Revocar autorizaciones desde tu wallet | | Cambios de margen aislado con tu clave de trading (añadir, retirar, cambiar apalancamiento) | Ediciones de TP/SL por encima de 200 al día | | Retiros por firma | Acciones de salida desde BaseScan | | Conceder o revocar el permiso de ejecución por firma | | El protocolo paga su gas con un presupuesto en USDC que se alimenta de una parte de los ingresos por comisiones del vault. ## Permiso de ejecución Las órdenes limitadas y stop en espera las ejecuta más tarde el keeper del protocolo. Para permitirlo, concedes una sola vez un **permiso de ejecución** (una firma gratuita que el protocolo envía por ti; la web lo prepara por defecto para 365 días y también se revoca con una firma gratuita; no es lo mismo que la aceptación de los términos). Con él, cada ejecución del keeper de tus órdenes en espera, take profit o stop loss cuesta **0,10 USDC**, que se descuentan de tu colateral, con un máximo de **10 USDC al día** (valores por defecto; el coste nunca puede superar lo que permite tu firma). Sin el permiso, el keeper no ejecuta las órdenes en espera, y las ejecuciones de take profit o stop loss las cubre el protocolo sin coste para ti. ## Ejecuciones por API y por sesión Cuando abres o cierras posiciones mediante un intent firmado (integraciones con la API v1 o una sesión de trading), el coste de red del ejecutor se cobra en USDC de tu colateral y se muestra de antemano en `execution.costs`. ## Bots | Exchange | Comisión de BotRadix | Otros costes | |---|---|---| | BotRadix DEX | Ninguna por el bot. El gas está incluido | Comisiones de apertura del DEX (incluida la de servicio del 0,03 %) y funding. Mínimo: el del mercado más un colchón del 0,5 % (con un mínimo de mercado de 18 USDC, 18,09 USDC; la pantalla puede redondearlo a 18,10) | | Hyperliquid | Ninguna | Las comisiones de trading y el funding propios de Hyperliquid | | Uniswap (Base) | Una comisión de servicio definida en el contrato adaptador de BotRadix | La comisión del pool en cada swap, y el impacto en el precio | ## Precios de la plataforma BotRadix **no tiene suscripción ni comisión sobre resultados**. El acceso a más bots y pares se desbloquea teniendo BAQ (conservas tus tokens; no se gasta nada). Consulta [BAQ](https://docs.botradix.com/es/baq/#niveles-de-acceso). --- # Precios y oráculo > Reporters de PairForge, quórum, antigüedad de los precios y pares sintéticos cruzados. Source: https://docs.botradix.com/es/oracle/ Todos los precios que usa el BotRadix DEX proceden de **PairForge**, proveedor de datos de mercado y oráculo. El mismo precio sirve para ejecutar órdenes, valorar posiciones y decidir liquidaciones. ## Cómo se produce un precio 1. **Recogida.** Los reporters leen precios de varias fuentes: Hyperliquid, Binance, Bybit, OKX, Gate y KuCoin, con referencias en dólares de Coinbase, Kraken, Bitstamp, Gemini y Binance.US. 2. **Firma.** Hoy hay tres reporters. Un precio solo es válido en la cadena cuando lo han firmado al menos **dos de los tres** (un quórum de 2 de 3). Es configuración: PairForge admite entre tres y dieciséis reporters con mayoría estricta. 3. **Publicación.** Los precios firmados se publican en el contrato hub de PairForge en Base, junto con la tasa de funding de cada mercado. 4. **Uso.** Los contratos del DEX leen el precio del hub en el momento de cada acción y comprueban su antigüedad y su confianza. Los reporters los opera BotRadix. ## Antigüedad y confianza | Regla | Límite | |---|---| | Antigüedad máxima de un precio para usarse en la cadena | 10 segundos | | Valorar, cerrar y liquidar (salidas) | Al menos dos lecturas coincidentes, de 10 segundos o menos | | Abrir o aumentar riesgo | Un precio observado en el instante de la acción comprometida o después, de 10 segundos o menos, con una confianza dentro del límite del grupo del mercado | | Pares sintéticos | Las dos patas observadas con como mucho 5 segundos de diferencia | | Comprobación previa en el terminal | Datos de mercado de 8 segundos o menos y a menos de un 1,5 % del precio de referencia (valores por defecto del terminal). La salida propia tras 24 horas y los mercados congelados tienen sus excepciones; consulta [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/) | Los precios se publican cuando hacen falta: cada acción del terminal, del keeper y de los bots publica primero los precios actuales, en el mismo flujo. ## Pares sintéticos cruzados Mercados como ETH/BTC, GOLD/BTC o AVAX/DOT se valoran como el cociente de sus dos patas, cada una medida en dólares: ```text precio(A/B) = precio(A en USD) / precio(B en USD) ``` Se operan como una única posición, liquidada en USDC. ## Sesiones de mercado Un mercado puede cerrarse administrativamente (`SESSION_CLOSED`), por ejemplo si sus fuentes de datos dejan de ser fiables. Mientras esté cerrado, se suspenden las aperturas, cierres y liquidaciones ordinarios que necesitan un precio de sesión abierta; no es un horario de negociación fijo. Pueden conservarse órdenes limitadas pendientes, cuya primera ejecución paga taker. Los procedimientos de desafío, congelación y emergencia tienen reglas propias, y cerrar la sesión no detiene por sí solo el funding válido. Si un mercado con posiciones deja de recibir precios, cualquiera puede abrir un desafío en la cadena; si en 3 días no llega ninguna observación nueva, el mercado se congela a su último precio observado y sus posiciones se pueden cerrar a ese precio. Para la emergencia pública hay que abrir otro desafío mientras haya posiciones y esperar 72 horas: una observación de USDC o de un mercado con posiciones desde la apertura del desafío (incluso con la sesión cerrada) impide confirmarla. El administrador puede declarar la emergencia sin esa espera. Consulta [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/). ## Seguridad y escalabilidad ### Hoy - **Validación independiente en cada firma.** Antes de firmar, cada reporter comprueba la propuesta con sus propias observaciones de mercado. Si el precio no coincide dentro de su margen de confianza, no firma, y nunca firma dos versiones distintas del mismo turno. - **Comprobaciones en la cadena.** El hub de PairForge verifica las firmas, el quórum y la antigüedad de cada precio antes de aceptarlo. - **Rotación y revocación.** BotRadix puede sustituir el conjunto completo de reporters en una sola operación, comprobada en la cadena, y revocar al instante un reporter comprometido. Mientras los contratos estén abiertos, estos cambios se aplican al momento; con un futuro sellado con aviso, añadir reporters esperaría el aviso y solo revocarlos seguiría siendo inmediato. Consulta [Seguridad y contratos](https://docs.botradix.com/es/security-contracts/#fondos-permisos-y-riesgos). ### Capacidad de crecimiento El contrato hub del oráculo en Base admite hasta **16 reporters**, con un quórum que debe ser siempre **mayoría estricta** (más de la mitad). Ampliar la red de los 3 reporters actuales a 5, 7 o 9 es una operación de configuración del administrador: no requiere cambiar el código de los contratos. | Reporters | Firmas necesarias por precio | Reporters que pueden fallar sin interrumpir los precios | |---|---|---| | 3 (hoy) | 2 | 1 | | 5 | 3 | 2 | | 7 | 4 | 3 | | 9 | 5 | 4 | | 16 (máximo) | 9 | 7 | ### Hoja de ruta Previsto según crezca el uso del ecosistema; todavía no está aplicado: 1. **Infraestructura separada.** Repartir los reporters entre servidores, proveedores y regiones distintos, cada uno con su propia conexión a la red y su propia combinación de fuentes de mercado. 2. **Más reporters.** Ampliar la red a 5 reporters con quórum de 3 y, después, a 7 o más. 3. **Referencias independientes.** Contrastar los precios de los activos principales con oráculos públicos de terceros (por ejemplo, Chainlink o Pyth) antes de firmarlos. 4. **Volatilidad extrema.** Filtros contra saltos de precio no confirmados por varias fuentes y pruebas de estrés periódicas con episodios históricos del mercado. 5. **Operadores independientes.** A largo plazo, abrir la red de reporters a operadores ajenos a BotRadix. Cada fase se anunciará en [Novedades](https://docs.botradix.com/es/changelog/) cuando se aplique. ## Qué significa para ti - Las órdenes se ejecutan al precio del oráculo, no a un precio de libro; tu deslizamiento máximo te protege de los movimientos adversos entre la preparación y la ejecución. - Si no pueden publicarse precios actuales (por ejemplo, durante una incidencia de datos o de red), las acciones que los necesitan esperan hasta que vuelva a haber precios, incluidos los cierres y los retiros con posiciones cruzadas abiertas. - Consulta [Riesgos](https://docs.botradix.com/es/risks/#riesgo-de-oraculo-y-de-datos). --- # Mercados > Los 150 mercados por categoría, sus parámetros y cómo se listan mercados nuevos. Source: https://docs.botradix.com/es/markets/ El BotRadix DEX ofrece **150 mercados perpetuos**, todos con margen y liquidación en USDC. ## Categorías | Categoría | Mercados | Contenido | |---|---|---| | Cripto | 50 | Criptoactivos principales y de capitalización media, cotizados en USDC | | Multiactivo | 18 | Diez acciones, S&P 500, Nasdaq 100, oro, plata, platino, gas natural, euro y libra | | Sintéticos | 82 | Pares cruzados valorados como el cociente de dos activos, incluidos cruces con EUR y GBP y pares de BAQ (por ejemplo GOLD/BTC o AVAX/DOT) | El mercado del Nasdaq 100 figura en la cadena como **XYZ100** y aparece en el terminal como **NASDAQ · Nasdaq 100**. ## Parámetros de cada mercado Cada mercado define en la cadena: - sus tramos de apalancamiento y su límite de interés abierto, según el grupo del mercado (consulta [Apalancamiento y margen](https://docs.botradix.com/es/margin/#tramos-de-apalancamiento)); - su incremento de precio y su paso de cantidad; - el tamaño mínimo de posición (18 USDC en todos los mercados). Lee estos valores en el terminal o en `GET /api/dex/v1/markets` en lugar de suponerlos; pueden ajustarse. ## Nuevos mercados El administrador de BotRadix añade mercados nuevos con un plan de configuración en la cadena, cuando el activo tiene fuentes de precio fiables en PairForge y un precio actual en el hub del oráculo. Los mercados visibles que todavía no están habilitados para operar aparecen como **solo lectura**. ## Datos de mercado - Gráficos en el terminal, de velas de 1 minuto a semanales. En 1D y 1W el historial continúa antes del feed de precios propio de BotRadix con datos de fuentes reconocidas (Coinbase, Bitstamp, Binance y Bitfinex para cripto; Nasdaq, CBOE, el BCE y oro tokenizado para acciones, índices, divisas y oro), hasta 50.000 velas. El gráfico indica la fuente de ese historial anterior. - Precio actual; máximo, mínimo y volumen negociado en el DEX en 24 horas (aperturas, aumentos y cierres, liquidaciones incluidas); interés abierto, tasa de funding y tiempo hasta la próxima actualización del funding. - Con la API: `/markets`, `/summaries`, `/candles`, `/markets/{pair_id}/funding` y `/markets/{pair_id}/open-interest` (consulta [Referencia de la API](https://docs.botradix.com/es/api-reference/)). --- # Firmas y sesiones de trading > Qué firma tu wallet, tu clave de trading, las sesiones de trading y cómo revocarlas. Source: https://docs.botradix.com/es/sessions/ BotRadix pide a tu wallet dos tipos de aprobación, y conviene saber distinguirlos. | Firmas gratuitas (sin gas, sin transacción) | Transacciones de la wallet (gas en ETH) | |---|---| | Aceptar los Términos de uso y la Política de privacidad | Retirar colateral (retiro clásico) | | Volver a descargar tu contrato en PDF | | | Autorizar tu clave de trading | Depositar BAQ | | Depositar USDC con permit | Depositar USDC con aprobación + depósito | | Iniciar una sesión de trading (alternativa) | Revocar autorizaciones desde tu wallet | | Sesión de desarrollador para claves de API | Acciones de salida desde BaseScan (consulta [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/)) | | Conceder o revocar el permiso de ejecución | | | Retirar colateral por firma (lo envía el protocolo; los fondos van a tu wallet) | | ## Tu clave de trading Para operar sin una ventana de la wallet en cada orden, el terminal crea una **clave de trading** en tu navegador y tu wallet la autoriza una vez con una firma EIP-712 (una autorización "DexAgent"). | | | |---|---| | Puede | Abrir, cerrar e invertir posiciones; fijar y editar TP/SL; cancelar y reemplazar órdenes; añadir o retirar margen aislado y cambiar su apalancamiento | | No puede | Retirar ni mover fondos fuera del DEX. Solo puede mover margen entre tu cuenta y tus propias posiciones aisladas. Con un mercado cruzado en sesión cerrada puede traer USDC de tu wallet al margen de una posición aislada tuya solo si tu wallet cofirma esa acción concreta (una firma gratuita que liga el importe, la posición, la clave de trading y un plazo de 2 minutos), más el permiso de USDC por ese importe exacto; nunca más (consulta [Órdenes y posiciones](https://docs.botradix.com/es/orders/)) | | Quién envía sus acciones | Solo los ejecutores del protocolo, que además pagan el gas | | Validez | 180 días por defecto en el terminal (el contrato permite autorizaciones de hasta 2.000 días; las claves de los bots usan hasta 1.999 días) | | Por acción | Cada acción firmada debe ejecutarse antes de su fecha límite y como mucho 120 segundos después de firmarse; el contrato no admite fechas límite de más de 10 minutos. El terminal prepara por defecto 90 segundos de vigencia | | Límites de uso | 30 acciones por minuto y 300 por hora por wallet (controles configurables del backend, no límites del contrato) | Si tu wallet es un contrato (smart wallet), cada acción vuelve a comprobar la autorización con el firmante actual de tu wallet: si lo cambias, la autorización anterior deja de valer y el terminal te pide firmarla de nuevo. La clave se guarda solo en ese navegador. En un ordenador compartido o que no sea de confianza, revócala al terminar. **Revocar.** Puedes revocar una clave de trading o todas en cualquier momento desde el terminal (con una transacción de la wallet). Revocar una clave de API también retira su clave de trading. Después de revocar, la siguiente operación pide una autorización nueva. ## Sesiones de trading (alternativa) Si no hay una clave de trading disponible, el terminal puede usar una **sesión de trading** de 8, 24 o 72 horas: una firma que permite al protocolo transmitir tus órdenes durante ese tiempo (las opciones de 24 y 72 horas llevan 15 minutos de holgura). Una sesión no puede retirar fondos, caduca como mucho a los 3 días (un límite que el administrador puede fijar entre 1 hora y 30 días), usa los mismos tramos de apalancamiento que la clave de trading (hasta 100x), y sus ejecuciones llevan un pequeño cargo en USDC por el coste de la red, que se muestra antes de confirmar. Una sesión **no puede traer USDC de tu wallet**. Si una operación necesita margen de tu wallet (un mercado cruzado en sesión cerrada), el terminal no usa la sesión: tu wallet firma esa operación concreta, aunque tengas una sesión activa. > [!NOTE] > Una sesión firma la huella del código del contrato que autoriza. Cuando una actualización cambia ese código (como la de la versión 2.2 o la mejora de autorización de la wallet de octubre de 2026), las sesiones creadas antes dejan de funcionar y el terminal te avisa y te pide una vez que firmes una nueva. Las claves de trading y los bots no se ven afectados. ## Términos y guía de riesgos - Antes de tu primera acción, el terminal muestra una **guía de riesgos** (también una de cada cinco visitas, y cuando quieras desde **Ajustes DEX**). - Aceptas los **Términos de uso de BotRadix completos** (secciones 1 a 26, incluidas las del DEX) y la **Política de privacidad** (versión actual 2026-10-12.2) con tres confirmaciones y una firma gratuita, válida para tu wallet. El mensaje que firmas incluye la huella SHA-256 del texto exacto de ambos documentos, la misma que muestran las páginas legales. Cuando los textos cambian, el terminal te pide aceptar la versión nueva una vez; las aceptaciones anteriores siguen valiendo para su versión. Si eliges "Ahora no", la wallet se desconecta. - Justo después de firmar se descarga tu **Contrato de Usuario de BotRadix en PDF**: tres páginas: inglés y español con las cláusulas clave citadas, el mensaje exacto que firmaste, la firma y cómo verificarla sin depender de BotRadix, y una tercera, bilingüe, de **Salvaguardas del usuario** que resume con su sección las protecciones que describen los Términos (salida sin la web, tu wallet autoriza tu dinero, registro público en Base, sellado previsto y contacto). Las copias emitidas antes de esta página conservan sus dos páginas. Sus únicos datos personales son tu wallet y tu firma. Puedes descargarlo otra vez con **Descargar de nuevo** o desde **Ajustes DEX → Mi contrato (PDF)**: tu wallet firma un mensaje gratuito de un solo uso y solo recibes tu propio contrato. ## Buenas prácticas - Comprueba siempre que estás en **app.botradix.com** antes de conectar o firmar. - Lee lo que tu wallet te pide firmar. BotRadix nunca te pide tu frase semilla ni la clave privada de tu wallet principal (la única clave privada que acepta es la de una agent wallet dedicada de Hyperliquid, si conectas Hyperliquid). - Una clave de trading o una sesión pueden perder dinero operando y, con el código vigente, no pueden retirar tu colateral ni traer USDC de tu wallet sin la firma de tu wallet para esa operación. Durante la fase abierta el administrador puede cambiar esta lógica sin aviso previo obligatorio (0 horas). - Si sospechas que tu navegador o tu ordenador están comprometidos, revoca de inmediato todas las claves de trading y de API. --- # Bot Quant > Cómo entra, añade con DCA, toma beneficios y registra resultados el bot Quant. Source: https://docs.botradix.com/es/quant/ Quant es un bot de seguimiento de tendencia basado en reglas. Vigila uno o varios mercados, entra cuando el precio cruza su media móvil en la dirección que elegiste, añade a la posición en retrocesos confirmados (DCA) y cierra toda la posición cuando la tendencia se gira en contra con al menos tu beneficio mínimo, o cuando se alcanza tu stop. Lo encontrarás en **Motor Quant**, en [botradix.com/Quant](https://botradix.com/Quant) (la dirección antigua `/Futures` redirige ahí). ## Dónde funciona | Exchange | Tipo de mercado | Notas | |---|---|---| | BotRadix DEX (por defecto) | Futuros perpetuos en Base | Se conecta con una clave de API del DEX. Margen cruzado, gas de red incluido, mínimo de 18,10 USDC por orden. Los pares cruzados como BTC/ETH se operan de forma nativa como una sola posición | | Hyperliquid | Futuros perpetuos | Se conecta con una Agent Wallet dedicada. Hyperliquid rechaza órdenes de menos de 10 USD | | Uniswap (Base) | Spot | Solo long, 1x, sin funding y sin liquidación. Wallet vinculada con límites revocables en la cadena | Consulta [Conectar exchanges](https://docs.botradix.com/es/exchanges/) para ver cómo se conecta cada exchange. ## Cómo decide Las señales se calculan sobre **velas cerradas** de la temporalidad elegida, con datos de mercado de PairForge (y los datos del propio exchange como respaldo). Las órdenes siempre se ejecutan en tu exchange, en tu cuenta. - **Entrada.** Un bot LONG entra cuando una vela cerrada cruza por encima de la EMA; un bot SHORT entra cuando cruza por debajo. Solo entra en un mercado en el que el bot no tiene posición abierta y tu cuenta no tiene otra exposición. - **Añadir (DCA).** El bot solo añade a la posición cuando se cumplen todas estas condiciones: el precio se ha movido en contra de la posición al menos el disparador configurado (desde la entrada media para el primer DCA y desde el DCA anterior para los siguientes); una vela cerrada vuelve a cruzar la EMA en la dirección de la posición; la posición no está ya en el objetivo de beneficio; y no se ha agotado el número de pasos de DCA configurado. - **Toma de beneficios.** No hay una orden de take profit en espera. Toda la posición se cierra cuando una vela cerrada cruza la EMA **en contra** de la posición **y** el beneficio en ese cierre es al menos tu beneficio mínimo. - **Stop ("Cierre %").** Toda la posición se cierra a mercado cuando el precio en vivo se mueve en contra de la entrada al menos el porcentaje configurado. El motor cierra posiciones completas. Si un cierre solo se ejecuta en parte, el resto queda abierto hasta el siguiente disparador válido. ## Parámetros | Parámetro | Por defecto | Rango y notas | |---|---|---| | Pares | — | Uno o varios mercados; un solo lado (LONG o SHORT) por bot | | Importe por par | — | En USDC, como tamaño de posición (nocional). El apalancamiento cambia el margen, no el tamaño | | Apalancamiento | — | Entero desde 1, limitado por el máximo de cada mercado | | Periodo de la EMA | — | Obligatorio | | Temporalidad | 15m | 5m, 15m, 1h, 4h, 1d. 1m y 3m requieren tener BAQ por valor de al menos 10.000 USD | | Beneficio mínimo | 1 % | Mínimo 0,02 % (2,30 % en Uniswap) | | Cierre (stop) | 3 % | Del 0,01 % al 2000 % | | Pasos de DCA | 1 | 0 desactiva el DCA | | Importe de DCA por paso | Importe de entrada | — | | Primer disparador de DCA | 1 % | Movimiento adverso desde la entrada media | | Separación entre DCA | 1 % | Entre pasos de DCA consecutivos; puede fijarse por paso | El bot revisa sus mercados cada 10 segundos en la temporalidad de 1m, cada 30 segundos en 3m y cada 60 segundos en las demás. ## Pares sintéticos Quant puede operar el cociente entre dos activos, como GOLD/BTC o ETH/BTC: - En el **BotRadix DEX** estos mercados cruzados se operan de forma nativa como una sola posición. - En **Hyperliquid**, que no tiene mercados A/B, el bot ejecuta el par con órdenes en sus dos monedas: 2 al entrar y 2 al salir, con la señal calculada sobre el cociente de PairForge. Antes de iniciarlo, abre en Hyperliquid una posición LONG en la moneda de origen (B en un bot LONG A/B, A en uno SHORT), como mínimo por el importe del bot. El bot usa esa posición como base y la rota hacia la otra moneda; el terminal indica qué moneda necesita cada par. ## Gestionar un bot en marcha | Acción | Efecto | |---|---| | Pausar | Conserva la configuración y las posiciones. **Mientras está pausado, el bot no hace ninguna acción automática, ni siquiera la toma de beneficios ni el stop.** | | Reanudar | Vuelve a activar la gestión automática | | Añadir (DCA) / Reducir | Añadido manual, o reducción por un importe en USDC | | Cerrar todo / Cierre de emergencia | Cierra la posición a mercado | | Detener | Elimina el bot. **Las posiciones abiertas no se cierran automáticamente**; quedan en tu cuenta del exchange | Dos bots de la misma cuenta no pueden operar el mismo mercado, y Quant y Grid no pueden automatizar a la vez el mismo activo en el mismo exchange. También puedes cerrar a mercado una posición abierta y quitarla de BotRadix desde la papelera del panel de Posiciones; el bot sigue funcionando. Consulta [Historial, PnL y exportaciones](https://docs.botradix.com/es/history/#papelera-cerrar-y-quitar-una-posicion-abierta). ## Resultados y alertas Los resultados se registran por posición, con beneficio bruto y neto. El funding no forma parte de la lógica de la estrategia; se contabiliza como coste en el PnL neto. Las comisiones de trading y el deslizamiento reducen el resultado. Consulta [Historial, PnL y exportaciones](https://docs.botradix.com/es/history/). Las alertas de entradas, pasos de DCA, toma de beneficios, stop y cierres pueden enviarse a Telegram (a un chat ID o a un canal). ## Acceso El número de bots Quant y de pares que puedes usar depende de tu nivel de acceso (consulta [BAQ](https://docs.botradix.com/es/baq/#niveles-de-acceso)). En el BotRadix DEX, los primeros niveles son gratis y no requieren BAQ. ## Riesgos que debes entender - Las estrategias de seguimiento de tendencia pierden dinero en mercados laterales y erráticos (entradas y salidas repetidas). - El DCA aumenta el tamaño de la posición cuando el precio va en tu contra; junto con el apalancamiento, aumenta el riesgo de liquidación. - El stop se ejecuta a mercado y, en mercados rápidos, puede ejecutarse peor que el nivel configurado. - Un bot pausado no protege sus posiciones. Si pausas un bot con posiciones abiertas, gestiónalas tú. - Consulta [Riesgos](https://docs.botradix.com/es/risks/) para ver la lista completa. --- # Bot Grid > Trading en rango en el BotRadix DEX, Hyperliquid y Uniswap: niveles, beneficios y riesgos. Source: https://docs.botradix.com/es/grid/ Grid es un bot de trading en rango. Coloca una escalera de niveles de precio alrededor de un precio de referencia y opera cada cruce: vende en las subidas y compra en las bajadas, de modo que gana con la oscilación del precio dentro del rango. Lo encontrarás en **Grid**, en [botradix.com/Grid](https://botradix.com/Grid) (la dirección antigua `/GlobalPendingOrders` redirige ahí). ## Cómo se construyen los niveles El bot toma un precio de anclaje (normalmente el precio de mercado cuando arranca el grid) y construye niveles geométricos por encima y por debajo: ```text nivel n = anclaje × (1 + separación)^n n = …, −2, −1, +1, +2, … ``` Los niveles por encima del anclaje se financian con el activo base y los de debajo con USDC (el activo de cotización). Una pequeña histéresis evita que un rebote mínimo revierta enseguida un nivel recién operado. **Ejemplo.** Con un anclaje de 100, una separación del 1 % y 3 niveles por lado, los niveles son aproximadamente 101; 102,01 y 103,03 por encima, y 99,01; 98,03 y 97,06 por debajo. ## Dónde funciona | Exchange | Tipo de mercado | Notas | |---|---|---| | BotRadix DEX (por defecto) | Futuros perpetuos en Base | Funciona con tu clave de API del DEX. Cada nivel necesita al menos 18,10 USDC. Los pares cruzados se construyen con dos patas en USDC | | Hyperliquid | Futuros perpetuos | Apalancamiento, dirección long o short. Al menos 16 USDC por nivel | | Uniswap (Base) | Spot | 1x, solo spot. Separación de al menos el 2,30 % | En los mercados activo/USDC, el bot mantiene una malla de órdenes en espera en el exchange. En los pares sintéticos de dos activos no coloca órdenes en espera: cada cruce de nivel confirmado por PairForge rota las dos patas. ## Parámetros | Parámetro | Por defecto | Rango y notas | |---|---|---| | Importe total | 1.000 USDC | Se reparte entre los niveles | | Apalancamiento | 5 | De 1 a 50; fijo en 1x en Uniswap | | Separación | 0,5 % | Del 0,05 % al 25 %; al menos el 2,30 % en Uniswap | | Niveles por lado | 4 + 4 | De 1 a 100 por lado; hasta 59 en total en Uniswap | | Dirección | Long | Long o short; Uniswap es spot | Si el importe por nivel quedara por debajo del mínimo del exchange, el bot usa automáticamente menos niveles. ## Cómo se calcula el beneficio El bot mantiene un inventario a coste medio por activo: - **Beneficio realizado** en cada reducción = (precio − coste medio) × cantidad (al revés en los grids short), menos comisiones. - **Beneficio no realizado** = (precio actual − coste medio) × cantidad abierta. ## Gestionar un grid en marcha | Acción | Efecto | |---|---| | Activar / Actualizar | Arranca el grid o aplica parámetros nuevos | | Detener | Deja de operar. **Las posiciones y el inventario existentes no se cierran** | | Cerrar inventario | Cierra solo el inventario que pertenece a este grid | | Eliminar | Elimina la configuración del grid | Solo puede haber una automatización activa por activo y exchange; Quant y Grid no pueden automatizar a la vez el mismo activo en el mismo exchange. La papelera del panel de Posiciones hace lo mismo que **Cerrar inventario** y, cuando el exchange confirma la posición en 0, elimina el grid. Consulta [Historial, PnL y exportaciones](https://docs.botradix.com/es/history/#papelera-cerrar-y-quitar-una-posicion-abierta). ## Acceso La disponibilidad de Grid depende de tu nivel de acceso (consulta [BAQ](https://docs.botradix.com/es/baq/#niveles-de-acceso)). En el BotRadix DEX, los niveles gratuitos incluyen un grid. ## Riesgos que debes entender - En una tendencia fuerte, el grid sigue comprando en un mercado que cae (o vendiendo en uno que sube) y acumula inventario en el lado perdedor. - Con apalancamiento, el inventario acumulado puede liquidarse. - Cada operación paga comisiones; una separación muy estrecha puede generar muchas operaciones cuyas comisiones superen los movimientos capturados. - Detener un grid no reduce tu exposición; cierra el inventario si quieres salir. - Consulta [Riesgos](https://docs.botradix.com/es/risks/) para ver la lista completa. --- # Conectar exchanges > Exchanges compatibles, los permisos que debes conceder y cómo se protegen tus claves. Source: https://docs.botradix.com/es/exchanges/ Los bots operan en **tu propia cuenta** del exchange que conectes. BotRadix guarda los datos de conexión cifrados y solo los usa para colocar, gestionar y cerrar las órdenes del bot. Las conexiones se gestionan en **Configuración**, en botradix.com. ## Exchanges compatibles | Exchange | Qué aportas | Qué puede hacer la conexión | |---|---|---| | BotRadix DEX | Una clave de API del DEX con la ejecución automatizada activada para bots | Abrir, gestionar y cerrar posiciones de los bots en tu cuenta del DEX. **No puede retirar** fondos | | Hyperliquid | La dirección de tu cuenta principal y la clave privada de una **Agent Wallet dedicada** | Operar en tu cuenta de Hyperliquid. Las agent wallets de Hyperliquid no pueden retirar | | Uniswap (Base) | Una wallet vinculada con una firma gratuita, más las autorizaciones en la cadena que concedes al arrancar un bot | Swaps spot dentro de los límites que autorizaste | ## BotRadix DEX 1. Abre el DEX en [app.botradix.com](https://app.botradix.com) con tu wallet y ve a la vista **API**. 2. Crea una clave. Una firma de la wallet la crea y la autoriza para bots ("Ejecución automatizada" y "Activar para bots"). 3. Copia la clave, que solo se muestra una vez, y pégala en **Configuración → BotRadix DEX** en botradix.com. Los bots en el DEX tienen el gas de red incluido y un mínimo por orden igual al mínimo del mercado más un colchón del 0,5 % (con un mínimo de 18 USDC, 18,09 USDC; la pantalla puede redondearlo a 18,10). Desconectar la clave detiene los bots; las posiciones abiertas se quedan en tu cuenta del DEX. Consulta [Firmas y sesiones de trading](https://docs.botradix.com/es/sessions/) y [API: visión general y autenticación](https://docs.botradix.com/es/api/). ## Hyperliquid 1. En Hyperliquid, crea una **Agent Wallet** dedicada (también llamada API wallet) para BotRadix. 2. En **Configuración → Hyperliquid**, introduce la dirección de tu cuenta principal y la clave privada del agente. Usa una agent wallet creada solo para BotRadix, nunca la clave privada de tu wallet principal. Si introduces la dirección del propio agente, BotRadix resuelve automáticamente la cuenta propietaria. BotRadix no cobra comisión en Hyperliquid; solo se aplican las comisiones propias de Hyperliquid. ## Uniswap (Base) 1. Vincula tu wallet EVM en **Configuración** con una firma gratuita (sin transacción). 2. Al arrancar un bot, aprueba las autorizaciones en la cadena que te pide: un permiso de gasto del token y límites por mercado por operación y por día, deslizamiento máximo y caducidad. Estas autorizaciones están en la cadena y puedes revocarlas en cualquier momento desde tu wallet. En Uniswap solo se opera spot (1x): sin apalancamiento, sin funding y sin liquidación. Protecciones adicionales en cada swap de un bot, que aplican los contratos: - **Segunda firma.** Cada swap necesita también la firma de un servicio cofirmante de BotRadix, guardado aparte de la clave que lo envía, así que una sola clave de ejecutor robada no puede operar (la cofirma y sus cofirmantes son configuración comprobable en la cadena). Si no hay cofirmante disponible, los bots de Uniswap (incluidos sus stop-loss) esperan hasta que vuelva uno. - **Banda de seguridad del precio.** Con la configuración de referencia de v2.2, un swap se rechaza si el precio del pool se aleja más de un 10 % de su precio medio de 30 minutos (un 3 % cuando firma el cofirmante de reserva); el código limita la banda al 25 %. Tu deslizamiento máximo se aplica aparte como importe mínimo recibido, así que los stop-loss pueden vender también en mercados que caen; ninguna banda garantiza ejecutar un stop loss. - **Límites de ritmo.** Con la configuración de referencia de v2.2, como mucho 240 swaps por hora por wallet y mercado (el código admite hasta 3.600), y al menos 20 segundos entre una compra y una venta del mismo mercado. - **Mejor pool.** Cada swap usa el pool que más te deja después de su comisión, no el que tiene más liquidez. ## Cómo se protegen tus credenciales - Los secretos (claves de API y claves privadas de agentes) se guardan **cifrados** y solo se descifran en memoria en el momento de usarlos. - Nunca vuelven a mostrarse completos: la interfaz muestra una versión enmascarada (primeros y últimos caracteres). - Una conexión no puede cambiarse ni eliminarse mientras haya bots o posiciones que dependan de ella, para no dejar posiciones sin gestionar. - Las contraseñas de las cuentas se guardan como hashes de un solo sentido, y los secretos de la verificación en dos pasos se guardan cifrados. ## Permisos que debes conceder Concede solo lo que necesita el trading: - Trading y lectura: **sí**. - Retiros: **no**, siempre que el exchange permita desactivarlos. - No operes a mano en los mismos mercados que gestionan los bots; los cambios manuales pueden hacer que los registros del bot no coincidan con tus posiciones reales. > [!TIP] > Usa una agent wallet o una clave dedicada para BotRadix. Si dejas de usar BotRadix, revócala también en el exchange, además de en Configuración. --- # Historial, PnL y exportaciones > Cómo se registran y se muestran los resultados, y cómo exportarlos. Source: https://docs.botradix.com/es/history/ ## Panel de Posiciones (botradix.com) El panel de **Posiciones** reúne la actividad de tus bots Quant y Grid y tus posiciones en Uniswap, y se actualiza cada pocos segundos: - Posiciones abiertas con su PnL no realizado. - PnL realizado de hoy, del mes y total, con un archivo mensual. - Agrupación por estrategia, exchange o mercado. - Resultados **netos** y **brutos**: un resultado se muestra como bruto mientras sus comisiones o su funding están pendientes de confirmar, y como neto cuando se conocen todos los costes. - Las posiciones cerradas fuera de BotRadix se marcan como **cierre externo**. - Puedes ocultar entradas de tu vista; el registro de auditoría se conserva. - Alertas sonoras opcionales. ### Papelera: cerrar y quitar una posición abierta En la lista **Todas las posiciones abiertas**, el botón de la papelera de una posición de un bot Quant o Grid la cierra a mercado y la quita de BotRadix. No es una vía nueva de trading: hace lo mismo que **Cerrar posición completa a mercado** del apartado Quant o que **Cerrar inventario** del apartado Grid. - **Antes de confirmar**, BotRadix consulta el exchange y te muestra qué ocurrirá: el lado, la cantidad, el PnL y la comisión estimados. Nada se envía hasta que confirmas. - **Quant:** se envía el cierre completo a mercado; cuando el exchange confirma la posición en 0, se quita del registro de BotRadix. El bot **sigue funcionando** y ese par vuelve a empezar desde cero. - **Grid:** el Grid **se detiene** y se cierra su inventario a mercado; su configuración **solo se elimina** cuando el exchange confirma la posición en 0. El historial de operaciones se conserva. - **Si la posición ya no existe en el exchange** (se cerró fuera de BotRadix), no se envía ninguna orden: BotRadix vuelve a comprobarlo antes de quitarla y, si la posición reaparece, no borra nada. Ese PnL no se añade al historial. - **Casos que el panel no resuelve**: si una posición solo se puede gestionar desde su apartado (por ejemplo, algunas cerradas fuera de BotRadix), la ventana te lo indica y no hace nada; ciérrala desde **/Quant** o **/Grid**. - Una orden a mercado puede ejecutarse a un precio distinto por deslizamiento y paga las comisiones del exchange; en Uniswap, la venta respeta el deslizamiento máximo de tu configuración y paga la comisión de BotRadix y el gas. - Mantén el panel abierto mientras se procesa. Si un paso necesita tu intervención o falla, el panel lo explica y no da la posición por cerrada. ## Gráficos Cada bot y cada mercado tiene un gráfico que marca entradas, pasos de DCA, reducciones y cierres, con el precio medio, el objetivo de beneficio, el PnL neto, la comisión de cada ejecución y, en los pares sintéticos, el cociente. Una herramienta de medición ayuda a leer distancias y porcentajes. ## Historial y exportación del DEX En el terminal del DEX, el historial muestra tus posiciones cerradas y tus liquidaciones con todo detalle, y puede exportarse a **CSV** o **XLSX** (hasta 10.000 filas). La exportación incluye, para cada posición: fechas de apertura y cierre (UTC), mercado, lado, modo de margen, apalancamiento, tamaño, precios de entrada y salida, PnL, funding, comisiones, resultado neto, estado, ID de la posición y hash de la transacción. Toda la actividad del DEX queda además registrada en la cadena y puede verificarse en [BaseScan](https://basescan.org). ## Cómo se calculan los resultados - **Quant:** el resultado de cada posición cerrada, a partir de los precios de ejecución, menos las comisiones de trading; el funding se contabiliza como coste en el PnL neto. - **Grid:** un inventario a coste medio por activo. Cada reducción realiza (precio − coste medio) × cantidad, menos comisiones. - **DEX:** el PnL realizado lo calculan los contratos al precio del oráculo, limitado por el beneficio máximo de la posición, con las comisiones y el funding mostrados por separado. --- # BAQ > El token BAQ en Base: contrato, decimales, usos en BotRadix y datos públicos. Source: https://docs.botradix.com/es/baq/ BAQ es el token de BotRadix en Base. Tener BAQ desbloquea límites más altos para los bots en la plataforma, y el BAQ puede depositarse en el DEX como colateral complementario. ## Datos del token | | | |---|---| | Red | Base (chain ID 8453) | | Contrato | `0x1B9f61483Dd6710E1Ad3b9d0bb92b710F1BA56B5` | | Nombre y símbolo | BAQ | | Decimales | 18 | | Suministro total | 5.000.000.000 BAQ (máximo fijo) | | Explorador | [BaseScan](https://basescan.org/token/0x1B9f61483Dd6710E1Ad3b9d0bb92b710F1BA56B5) | > [!CAUTION] > Comprueba siempre la dirección del contrato de arriba antes de comprar o recibir BAQ. Los tokens con el mismo nombre en otras direcciones no son BAQ. ## Niveles de acceso Los límites de los bots dependen del **valor en dólares del BAQ que tienes** en tu wallet vinculada. No se gasta ni se bloquea nada: no compras un plan, y si vendes tu BAQ tus límites se ajustan. | Valor del BAQ (USD) | Bots Quant | Pares en total | Bots Grid | |---|---|---|---| | 20 | 1 | 1 | 0 | | 50 | 1 | 3 | 0 | | 100 | 2 | 6 | 1 | | 150 | 2 | 10 | 1 | | 250 | 3 | 15 | 1 | | 400 | 4 | 20 | 2 | | 600 | 5 | 30 | 2 | | 800 | 6 | 40 | 3 | | 1.000 | 8 | 50 | 4 | | 1.500 | 10 | 75 | 5 | | 2.000 | 15 | 100 | 8 | | 10.000 | 30 | 300 | 20 | - **Gratis en el BotRadix DEX:** los niveles de 20, 50 y 100 USD (hasta 2 bots Quant, 6 pares y 1 Grid) están disponibles sin BAQ para los bots que operan en el BotRadix DEX. - Los bots en **Hyperliquid** o **Uniswap** requieren un valor de BAQ verificado de al menos 20 USD; Grid requiere el nivel de 100 USD. - El nivel de 10.000 USD desbloquea además las temporalidades de 1 y 3 minutos en Quant. - Los límites cuentan todos los bots activos de la cuenta. ## Cómo se comprueba el valor 1. Vincula tu wallet en **Configuración** con una firma gratuita (la solicitud caduca a los 5 minutos). Una wallet por cuenta. 2. El valor es tu saldo de BAQ multiplicado por un precio conservador: el menor entre el precio actual de PairForge y 1,05 veces la mediana de hasta trece cierres válidos de 5 minutos disponibles (sin cierres, se usa el precio actual). 3. El saldo se vuelve a leer cada 30 minutos por defecto (intervalo configurable), y al instante cuando arrancas o reanudas un bot o lo actualizas a mano. Una consulta fallida puede conservar temporalmente el último nivel comprobado. Si una comprobación correcta muestra que tu nivel baja, los bots Quant que sobren se pausan y los Grids que sobren se detienen; **no se cierra ninguna posición automáticamente**. Cuando el valor vuelva a subir, reanúdalos a mano. ## BAQ como colateral del DEX Depositar BAQ en el BotRadix DEX aporta **margen adicional en margen cruzado**; con el código vigente tus BAQ no se venden para cubrir pérdidas: - **Margen extra.** Tu BAQ añade a tu patrimonio un crédito de hasta el **5 % de su valor**, con dos límites: el 20 % de tu USDC elegible y lo que queda del 70 % utilizable de la reserva de BAQ después de lo comprometido por otras cuentas. El valor usa el precio válido del oráculo descontado por confianza. - **Tu BAQ no se vende para cubrir pérdidas.** El código vigente no vende ni consume tu BAQ depositado: si una pérdida supera tu USDC, la parte cubierta por el crédito se paga en USDC con el respaldo comprometido de la reserva. Esto no elimina el riesgo de precio de BAQ, de fallos de los contratos ni de cambios de lógica por la administración durante la fase abierta. - **Menos riesgo de liquidación.** El crédito suma a tu patrimonio, así que tus posiciones cruzadas tienen más margen antes de llegar al nivel de liquidación. - **Valores públicos con límites en el contrato.** El 5 %, el 20 % y el 70 % de uso máximo de la reserva son los valores de referencia de v2.2, que se pueden leer en la cadena. El administrador puede ajustarlos dentro de los límites del código vigente del contrato CrossMargin (como mucho 20 %, 50 % y 90 %), cada cambio es público en Base y se aplica al momento a las cuentas existentes. El sellado está previsto por componentes y no está activo: el perfil sin administración congela estos valores, pero con una puerta y un mínimo comprometido de al menos 72 horas el código permite reducirlos con aviso, también para cuentas existentes. - **Capacidad de la reserva.** Con la configuración de referencia de v2.2, el 10 % de las comisiones de apertura y de las penalizaciones de liquidación aislada va a la reserva BAQ. El reparto es ajustable. El pago de pérdidas respaldadas puede reducirla: más actividad no garantiza más crédito disponible; consulta su saldo y compromisos. | Ejemplo (con reserva suficiente) | Importe | |---|---| | USDC depositado | 1.000 USDC | | BAQ depositado | Valor conservador de 5.000 USDC (precio válido descontado por confianza), con respaldo suficiente en la reserva | | 5 % del valor del BAQ | 250 USDC | | 20 % del USDC | 200 USDC | | Crédito BAQ (el menor) | **200 USDC** | | Patrimonio para el margen cruzado | 1.200 USDC | El crédito necesita un precio válido de BAQ en el oráculo (10 segundos o menos, sesión abierta y confianza admitida) y solo se aplica al margen cruzado: las posiciones aisladas usan únicamente su propio margen. Consulta [Colateral](https://docs.botradix.com/es/collateral/#usdc-y-baq). ## Datos públicos | Endpoint | Contenido | Límite | |---|---|---| | `GET https://botradix.com/api/public/baq-market?interval=1h&limit=200` | Velas BAQ/USDC de PairForge. Intervalos 1m, 5m, 15m, 1h, 4h, 1d, 1w; límite de 3 a 3.000 | 180 peticiones por minuto por IP | | `GET https://botradix.com/api/public/baq-metrics` | Liquidez y volumen de 24 horas (DexScreener, con GeckoTerminal como respaldo; caché de 30 segundos) | 90 peticiones por minuto por IP | La página de BAQ en botradix.com muestra además los holders (según exploradores públicos) y el suministro en la cadena. ## Naturaleza de BAQ BAQ es el token de utilidad del ecosistema BotRadix: su valor está en lo que permite hacer dentro de la plataforma, desde desbloquear más automatización hasta aportar margen en el DEX. No es una participación en BotRadix ni da derecho a dividendos o rendimientos. Como cualquier criptoactivo, su precio puede variar con fuerza. Consulta los [Términos](https://botradix.com/terms) (apartado sobre BAQ) y [Riesgos](https://docs.botradix.com/es/risks/). --- # API: visión general y autenticación > URL base, claves de API, scopes, sesiones de desarrollador firmadas y gestión de claves. Source: https://docs.botradix.com/es/api/ 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 | Elemento | Valor | |---|---| | URL base | `https://app.botradix.com/api/dex/v1` (la misma API responde también en `https://botradix.com/api/dex/v1`) | | Red | Base mainnet, chain ID `8453` | | Formato | JSON, UTF-8. Cuerpos de petición de hasta 48 KiB | | Autenticación | Una clave de API vinculada a una wallet, con scopes | | Cabeceras de versión | `X-BotRadix-API-Version: v1` y `X-BotRadix-API-Schema: botradix-dex-api-v1.1` | | Trazabilidad | Cada respuesta lleva `X-Request-ID`; puedes enviar el tuyo (8–80 caracteres de `A-Z a-z 0-9 . _ : -`) | | Navegador | Solo mismo origen. Llama a la API desde tu servidor, nunca desde una página pública | > [!IMPORTANT] > 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 `. 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](https://docs.botradix.com/es/api-errors/). ## 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 `. ## 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"] }' ``` | Campo | Reglas | |---|---| | `label` | Un nombre para identificarla | | `scopes` | Cualquiera 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_days` | De 1 a 2000. Por defecto 180 | | `ip_allowlist` | Lista opcional (o texto separado por comas) de IP o rangos CIDR. Las peticiones desde otras direcciones reciben `403 IP_NOT_ALLOWED` | | `quotas` | Límites de uso propios de la clave, dentro de los máximos de [Errores, límites y versionado](https://docs.botradix.com/es/api-errors/) | La respuesta (`201`) contiene la clave completa en `api_key`. **Solo se muestra una vez.** Una wallet puede tener hasta **10 claves activas**. > [!NOTE] > 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 | Scope | Permite | |---|---| | `market:read` | Mercados, velas, resúmenes, funding, open interest, libro de órdenes y vault | | `account:read` | La wallet de la clave: cuenta, posiciones, órdenes, colateral, transacciones, operaciones, historial y estado de ejecuciones | | `trade:prepare` | Preparar aperturas, cierres, inversiones, cambios de TP/SL y de margen aislado | | `trade:execute` | Ejecución delegada mediante `/orders/execute`, cuando la clave tiene un ejecutor vinculado | | `orders:manage` | Cancelar y reemplazar órdenes, y las primitivas de TP/SL en ejecución delegada | | `collateral:manage` | Preparar depósitos y retiros de colateral | Da a cada clave solo los scopes que necesite. ## Gestión de claves y webhooks | Método | Ruta | Para qué | |---|---|---| | POST | `/api/dex/developer/challenge` | Mensaje que la wallet debe firmar | | POST | `/api/dex/developer/session` | Verifica la firma y entrega una sesión de desarrollador de 4 horas | | GET | `/api/dex/developer/keys` | Lista las claves de la wallet (hasta 64) | | POST | `/api/dex/developer/keys` | Crea una clave | | POST | `/api/dex/developer/keys/prepare` | Paso 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}/rotate` | Genera un secreto nuevo. El anterior deja de funcionar al instante | | PUT | `/api/dex/developer/keys/{key_id}/expiry` | Fija la validez desde ahora: 30, 90, 360 o 2000 días | | POST | `/api/dex/developer/keys/{key_id}/agent` | Crea (o devuelve) el agente de trading de la clave y la autorización a firmar | | POST | `/api/dex/developer/keys/{key_id}/agent/grant` | Guarda la autorización firmada por la wallet tras verificarla | | PUT | `/api/dex/developer/keys/{key_id}/executor` | Vincula la clave a un ejecutor para la ejecución delegada | | POST | `/api/dex/developer/keys/{key_id}/execution-payment` | Prepara 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/audit` | Registro de auditoría de la actividad de credenciales | | GET, POST | `/api/dex/developer/webhooks` | Lista 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](https://docs.botradix.com/es/api-realtime/)). --- # Referencia de la API > Todos los endpoints v1 con método, scope y propósito. Source: https://docs.botradix.com/es/api-reference/ Todas las rutas son relativas a `https://app.botradix.com/api/dex/v1` y requieren una clave de API con el scope indicado. Las respuestas son JSON. Lee los límites, la precisión, el tick size y los tamaños de orden desde `/markets` y `/meta` en tiempo de ejecución, en lugar de fijarlos en tu código. ## Datos de mercado | Método | Ruta | Scope | Para qué | |---|---|---|---| | GET | `/status` | `market:read` | Estado de la API, la red y el motor de mercado | | GET | `/meta` | `market:read` | Versiones de esquema, scopes y capacidades publicadas | | GET | `/markets` | `market:read` | Catálogo de mercados con precisión y límites de orden de cada uno | | GET | `/candles` | `market:read` | Velas por `pair_id`, `interval` y `limit` | | GET | `/snapshot` | `market:read` | Snapshot de mercado y secuencia actual | | GET | `/summary` | `market:read` | Resumen de un mercado (`pair_id`) | | GET | `/summaries` | `market:read` | Resúmenes de todos los mercados | | GET | `/markets/{pair_id}/funding` | `market:read` | Estado del funding de un mercado | | GET | `/markets/{pair_id}/open-interest` | `market:read` | Open interest largo y corto de un mercado | | GET | `/orderbook` | `market:read` | Libro de órdenes derivado del estado disponible en cadena | | GET | `/vault` | `market:read` | Estado público del vault de liquidez del DEX | ## Cuenta (la wallet de la clave) | Método | Ruta | Scope | Para qué | |---|---|---|---| | GET | `/account` | `account:read` | Patrimonio, colateral, margen, factor de salud y estado de liquidación | | GET | `/positions` | `account:read` | Posiciones abiertas, con precio de marca y de liquidación | | GET | `/orders` | `account:read` | Órdenes indexadas desde los contratos (paginado) | | GET | `/orders/by-client-id` | `account:read` | Busca un `open_position` preparado por su `client_order_id` | | GET | `/collateral` | `account:read` | Saldos de colateral y estado asociado | | POST | `/risk/preview` | `account:read` | Previsualiza el riesgo de un cambio antes de ejecutarlo | | GET | `/transactions` | `account:read` | Intenciones preparadas y su estado en cadena (paginado) | | GET | `/trades` | `account:read` | Operaciones ejecutadas indexadas desde la cadena (paginado) | | GET | `/positions/history` | `account:read` | Posiciones cerradas (paginado) | | GET | `/native/executions/{tx_hash}` | `account:read` | Finalidad de una ejecución: `PENDING`, `PENDING_FINALITY` (menos de 8 confirmaciones), `REVERTED` o `FINAL`. Parámetros opcionales `account` y `trade_id` | | GET | `/executions/{command_id}` | `account:read` | Estado de una ejecución delegada | | GET | `/stream` | `account:read` | Stream privado Server-Sent Events. **Aún no está activado en el servicio público** (ver abajo) | ## Trading | Método | Ruta | Scope | Para qué | |---|---|---|---| | POST | `/orders/prepare` | Según la acción | Valida una acción y devuelve lo necesario para ejecutarla. Requiere clave de idempotencia | | POST | `/orders/execute` | `trade:execute` (y `orders:manage` para cancelar, reemplazar y primitivas de TP/SL) | Ejecución delegada, cuando la clave tiene un ejecutor vinculado | Acciones y el scope que necesita cada una: | Acción | Scope | |---|---| | `open_position`, `close_position_market`, `close_position_limit`, `invert_position`, `update_tpsl`, `add_isolated_margin`, `reduce_isolated_margin`, `change_isolated_leverage` | `trade:prepare` | | `cancel_order`, `replace_order` | `orders:manage` | | `add_collateral`, `withdraw_collateral` | `collateral:manage` | El flujo completo, los campos y un ejemplo están en [Operar con la API](https://docs.botradix.com/es/api-orders/). ## Paginación Los endpoints paginados aceptan `cursor` y `limit` (por defecto 50, máximo 200) y devuelven: ```json { "items": [ … ], "next_cursor": 1234, "has_more": true, "limit": 50 } ``` El objeto va dentro de `orders`, `transactions`, `trades` o `history` según el endpoint. Envía `next_cursor` como `cursor` para obtener la página siguiente. ## El stream en tiempo real `GET /stream?pair_id={id}&interval=1m` está diseñado como un stream privado Server-Sent Events (snapshot de mercado, snapshot privado de la cuenta y eventos de ciclo de vida, con un latido cada 12 segundos). **Por ahora no está activado en el servicio público** y responde `503 REALTIME_STREAM_ASYNC_WORKER_REQUIRED` con `Retry-After: 5`. Mientras tanto, usa [webhooks](https://docs.botradix.com/es/api-realtime/) para los eventos de cuenta y consulta los endpoints de lectura dentro de tus límites. ## Endpoints públicos sin clave El terminal web usa endpoints sin versión que cualquiera puede leer. Son útiles para paneles, pero **no** son un contrato estable y pueden cambiar sin aviso; las integraciones deben usar `/api/dex/v1`. | Ruta (en `https://app.botradix.com`) | Contenido | |---|---| | `/api/dex/config` | Modelos de ejecución, órdenes, comisiones y precisión, y capacidades de la API | | `/api/dex/markets`, `/api/dex/summaries`, `/api/dex/summary` | Mercados y resúmenes | | `/api/dex/candles`, `/api/dex/candles/history` | Velas (1m, 3m, 5m, 15m, 1h, 4h, 1d, 1w). El histórico se pagina con `before`, hasta 50.000 velas; en 1d y 1w continúa con historial externo anterior, indicado en `history_sources` | | `/api/dex/marks?pair_ids=1,2` | Precios de marca de 1 a 12 mercados | | `/api/dex/orderbook`, `/api/dex/vault`, `/api/dex/liquidations` | Libro de órdenes, vault y liquidaciones recientes | | `/api/dex/markets/{id}/funding`, `/api/dex/markets/{id}/open-interest` | Funding y open interest | | `/api/dex/status`, `/api/dex/circuit-breakers` | Estado del servicio e interruptores de seguridad | | `/api/dex/account?wallet=0x…` (también `positions`, `orders`, `collateral`, `transactions`, `trades`, `positions/history`) | Vistas de solo lectura de cualquier wallet. Las posiciones en cadena son públicas por naturaleza | | `/api/public/baq-market`, `/api/public/baq-metrics` | Datos de mercado y métricas de BAQ (ver [BAQ](https://docs.botradix.com/es/baq/)) | --- # Operar con la API > Preparar, firmar o ejecutar acciones, idempotencia y un ejemplo completo. Source: https://docs.botradix.com/es/api-orders/ Toda operación empieza por **preparar** (*prepare*): BotRadix valida la acción contra el mercado, tu cuenta y los contratos, la simula y devuelve exactamente lo que hay que firmar o enviar. `prepare` no ejecuta nada. ## El flujo 1. `POST /orders/prepare` con una acción, sus datos y una clave de idempotencia. 2. Revisa la respuesta: `execution.ready` debe ser `true`. 3. Ejecuta según `execution.status`: | `execution.status` | Qué hacer | |---|---| | `signature_ready` | Firma `execution.typed_data` (EIP-712) con la wallet y envíalo al relay. Se usa hoy para abrir y cerrar posiciones | | `ready` | Firma y envía desde la wallet cada transacción de `execution.transactions`, en orden | | `preflight_failed` | No se puede ejecutar ahora. `execution.reason` explica el motivo (por ejemplo `withdraw_margin_insufficient` u `oracle_unavailable`) | | `contract_pending` | El mercado o el contrato aún no están disponibles para esta acción | > [!WARNING] > `prepare` responde HTTP 200 aunque la acción no se pueda ejecutar. Comprueba siempre `execution.ready` y `execution.status` antes de firmar nada. Una acción preparada caduca: 120 segundos las de trading, 180 segundos las de colateral y 300 segundos las intenciones firmadas. Si caduca, vuelve a prepararla. ## Camino 1 — Intención firmada (abrir y cerrar posiciones) Para `open_position`, `close_position_market` y `close_position_limit`, la respuesta trae un mensaje EIP-712 en lugar de transacciones: - `execution.mode` es `signed_intent` y `execution.transactions` está vacío. - Los datos tipados usan el dominio `BotradixDEX`, versión `1`, chain ID `8453`, y el router del DEX como contrato verificador. - La wallet lo firma (una firma, no una transacción) y envías la firma al relay: ```bash curl -X POST https://app.botradix.com/api/dex/actions/relay \ -H "Content-Type: application/json" \ -d '{"wallet":"0xTuWallet","intent_id":"dx_…","signature":"0x…"}' # → {"tx_hash":"0x…","state":"submitted"} ``` El ejecutor de BotRadix envía entonces la transacción. Su coste de red se cobra en USDC de tu colateral del DEX y se muestra antes en `execution.costs`, así que la wallet no necesita ETH para estas acciones. > [!NOTE] > El endpoint de relay forma parte, de momento, de la API web sin versión (`/api/dex/actions/relay`). Es la forma admitida hoy de enviar intenciones firmadas. ## Camino 2 — Transacciones de la wallet Para el resto de acciones (colateral, cambios de TP/SL, margen aislado, cancelar y reemplazar), `execution.transactions` contiene una o varias transacciones: ```json { "kind": "action", "from": "0xTuWallet", "to": "0x…", "data": "0x…", "value": "0x0", "deadline": 1790950518 } ``` En los depósitos puede ir primero una de `kind: "approval"` (aprobación del importe exacto del token). Fírmalas y envíalas en orden desde la misma wallet; necesitan un poco de ETH en Base para el gas. **Depósito de USDC con permit (sin gas).** Cuando `GET /api/dex/config` indica `collateral_model.approval.permit: true`, añade `"permit": true` junto a `action` en un `add_collateral` de USDC. La respuesta trae entonces `execution.mode: "permit_deposit"` con `typed_data` EIP-2612: fírmalo con la wallet y envía `{"wallet","intent_id","signature"}` a `POST /api/dex/actions/relay`. Un ejecutor del protocolo envía el depósito y paga el gas. Sin esa marca, o para BAQ, recibes las transacciones de aprobación y depósito. Si envías tú las transacciones, comunica el hash a `POST /api/dex/actions/receipt` (`{"wallet","intent_id","tx_hash","state"}`) para recibir sus webhooks `transaction.*`; si no, BotRadix solo conoce la operación cuando la indexa desde la cadena. ## Camino 3 — Ejecución delegada `POST /orders/execute` envía acciones mediante un ejecutor vinculado a la clave de API (scope `trade:execute`; `orders:manage` para cancelar, reemplazar y primitivas de TP/SL). Responde `202` con `delegated.command_id`, `delegated.tx_hash` y una `status_url`; sigue su estado con `GET /executions/{command_id}`. Envía `"prepare_only": true` para validar sin enviar. Acepta, entre otras, `open_position`, `batch` (de 1 a 32 acciones), `open_market`, `create_limit`, `create_stop`, `increase`, `reduce`, `close`, `cancel`, `replace`, `set_tp`, `clear_tp`, `set_sl`, `clear_sl`, `invert` e `isolated_manage`. Si la clave no tiene un ejecutor vinculado, la API responde `403 delegated_executor_binding_required`. ## Idempotencia `/orders/prepare` exige una clave de idempotencia, que se toma (en este orden) de la cabecera `Idempotency-Key`, de `payload.idempotency_key` o de `payload.client_order_id`. Debe cumplir `^[A-Za-z0-9._:-]{8,128}$`. - Las claves se asocian a wallet, acción y clave, y se recuerdan 24 horas. - La misma clave con los mismos datos devuelve la preparación original (`idempotent_replay: true`). - La misma clave con datos distintos devuelve `409 IDEMPOTENCY_KEY_CONFLICT`; un `client_order_id` reutilizado con datos distintos devuelve `409 DUPLICATE_CLIENT_ORDER_ID`. - La petición se compara con lo que enviaste (`payload`, más `permit` en los depósitos), en todas las acciones, también `open_position`. Los datos se validan antes de buscar la clave, así que un reintento con el mercado desfasado o movido devuelve ese error de validación. Una preparación repetida puede haber caducado: revisa `expires_at_ms`. `/orders/execute` lee la clave solo de `payload.idempotency_key` o `payload.client_order_id` y sigue las mismas reglas: la misma clave con los mismos datos repite la respuesta original, y con datos distintos devuelve `409 IDEMPOTENCY_KEY_CONFLICT`. ## Datos de `open_position` | Campo | Reglas | |---|---| | `pair_id` | `id` del mercado en `/markets` | | `side` | `long` o `short` | | `order_type` | `market` (por defecto), `limit` o `stop` | | `margin_mode` | `cross` (por defecto) o `isolated` | | `leverage` | Entero desde 1 hasta el máximo del mercado (ver [Apalancamiento y margen](https://docs.botradix.com/es/margin/)) | | `order_value_usdc` | Tamaño de la posición (nocional) en USDC, hasta 6 decimales, dentro del mínimo y máximo del mercado | | `reference_price` | Obligatorio en órdenes de mercado. Se rechaza con `PRICE_DEVIATION_EXCEEDED` si se aleja más de un 1,5 % del precio del servidor, o con `MARKET_DATA_STALE` si los precios tienen más de 8 segundos | | `max_slippage_bps` | Obligatorio en órdenes de mercado, de 1 a 1000 (del 0,01 % al 10 %) | | `limit_price` / `trigger_price` | Obligatorio en órdenes límite / stop | | `time_in_force` | `gtc`, `ioc` o `fok`; las órdenes de mercado son siempre `ioc` | | `rest_if_unfilled` | Solo mercado: deja la parte no ejecutada como orden límite | | `post_only` | Solo órdenes límite | | `take_profit`, `stop_loss` | Opcionales; deben estar en el lado correcto del precio de entrada | | `client_order_id` | Hasta 96 caracteres; se genera si no se envía | ## Ejemplo ```bash curl -X POST https://app.botradix.com/api/dex/v1/orders/prepare \ -H "X-BotRadix-API-Key: $BOTRADIX_API_KEY" \ -H "Idempotency-Key: mm01-2026-10-02-0001" \ -H "Content-Type: application/json" \ -d '{ "action": "open_position", "payload": { "pair_id": 1, "side": "long", "order_type": "market", "margin_mode": "cross", "order_value_usdc": "100", "leverage": 5, "reference_price": "2500.00", "max_slippage_bps": 50, "client_order_id": "mm01-2026-10-02-0001" } }' ``` La respuesta contiene `intent_id`, los datos normalizados en `payload`, `execution` (estado, datos tipados o transacciones, simulación, costes y plazo) y `expires_at_ms`. ## Después de ejecutar - `GET /transactions` lista tus intenciones y su estado en cadena. - `GET /native/executions/{tx_hash}` indica la finalidad: `PENDING`, `PENDING_FINALITY` (menos de 8 confirmaciones), `REVERTED` o `FINAL`. - Los [webhooks](https://docs.botradix.com/es/api-realtime/) avisan de cambios en órdenes, posiciones, colateral y transacciones. --- # Tiempo real y webhooks > Webhooks firmados, cómo verificarlos y el estado del endpoint de streaming. Source: https://docs.botradix.com/es/api-realtime/ Los webhooks entregan a tu servidor los eventos de la cuenta de tu wallet en cuanto BotRadix los indexa desde la cadena, para que no tengas que consultar sin parar. ## Crear un webhook Los webhooks se gestionan con una sesión de desarrollador (ver [API: visión general y autenticación](https://docs.botradix.com/es/api/)): ```bash curl -X POST https://app.botradix.com/api/dex/developer/webhooks \ -H "Authorization: Bearer $DEVELOPER_SESSION" \ -H "Content-Type: application/json" \ -d '{"url":"https://example.com/botradix/webhook","events":["order.filled","position.changed","liquidation"]}' ``` | Regla | Valor | |---|---| | URL | HTTPS en el puerto 443 u 8443, sin credenciales incrustadas, hasta 512 caracteres y resolviendo a IP públicas | | Límite | Hasta 8 webhooks activos por wallet | | Eventos | Una lista de nombres de evento, o `["*"]` para todos. Por defecto: `transaction.confirmed` y `transaction.reverted` | | Secreto | `signing_secret` (empieza por `brx_whsec_`) se devuelve **una sola vez**, al crear el webhook | | Baja | `DELETE /api/dex/developer/webhooks/{webhook_id}` desactiva la suscripción | ## Eventos | Evento | Cuándo | |---|---| | `order.accepted` | Una orden fue aceptada en cadena | | `order.filled` | Una orden se ejecutó por completo | | `order.partially_filled` | Una orden se ejecutó en parte | | `order.cancelled` | Una orden fue cancelada | | `position.changed` | Una posición se abrió, aumentó, redujo, cerró o invirtió | | `liquidation` | Una posición fue liquidada | | `funding.charged` / `funding.credited` | Se pagó o se cobró funding | | `collateral.changed` | Un depósito o un retiro cambió tu colateral | | `transaction.confirmed` / `transaction.reverted` | Una transacción conocida por BotRadix alcanzó la finalidad, con éxito o sin él | | `chain.reorg` | Una reorganización de la cadena cambió datos ya notificados | | `transaction.pending` | Solo como corrección tras una reorganización (con `revoked_event_id`) | `liquidation.warning` se acepta en las suscripciones pero está reservado: hoy no se emite. > [!NOTE] > Los eventos `transaction.*` se envían para transacciones cuyo hash conoce BotRadix: las enviadas por el relay o por el ejecutor delegado, y aquellas cuyo hash comunicaste a `/api/dex/actions/receipt`. ## Entrega Cada entrega es un `POST` HTTPS con un cuerpo JSON: ```json { "id": "…", "type": "position.changed", "created_at": 1790950000, "data": { … } } ``` | Cabecera | Contenido | |---|---| | `X-BotRadix-Event` | Tipo de evento | | `X-BotRadix-Event-ID` | ID único y estable del evento (hasta 96 caracteres, igual que `id` en el cuerpo). Úsalo para descartar duplicados | | `X-BotRadix-Timestamp` | Hora Unix (segundos) de este intento de entrega | | `X-BotRadix-Signature` | `v1=` seguido de la firma HMAC-SHA256 en hexadecimal | | `User-Agent` | `BotRadix-DEX-Webhook/1.0` | - La entrega es **al menos una vez**: un mismo evento puede llegar más de una vez. Descarta duplicados por `X-BotRadix-Event-ID`. - Responde con cualquier código `2xx` en menos de 4 segundos. No se siguen redirecciones. - Una entrega fallida se reintenta hasta 4 intentos en total, esperando 2, 4 y 8 segundos. - Los eventos pueden llegar desordenados; usa `created_at` y los propios datos para ordenarlos. ## Verificar la firma La firma es un HMAC-SHA256 de `timestamp + "." + cuerpo_sin_procesar`, con tu `signing_secret` completo como clave. Verifícala siempre contra el cuerpo **sin procesar**, antes de interpretar el JSON, y rechaza marcas de tiempo antiguas. ```javascript // Node.js (en Express, usa express.raw({ type: "application/json" }) en esta ruta) import crypto from "node:crypto"; export function verifyBotRadixWebhook(rawBody, headers, secret, toleranceSeconds = 300) { const timestamp = headers["x-botradix-timestamp"]; const received = headers["x-botradix-signature"] || ""; if (!timestamp || Math.abs(Date.now() / 1000 - Number(timestamp)) > toleranceSeconds) return false; const expected = "v1=" + crypto.createHmac("sha256", secret).update(`${timestamp}.`).update(rawBody).digest("hex"); return received.length === expected.length && crypto.timingSafeEqual(Buffer.from(received), Buffer.from(expected)); } ``` ```python # Python import hashlib, hmac, time def verify_botradix_webhook(raw_body: bytes, headers, secret: str, tolerance: int = 300) -> bool: timestamp = headers.get("X-BotRadix-Timestamp", "") if not timestamp.isdigit() or abs(time.time() - int(timestamp)) > tolerance: return False expected = "v1=" + hmac.new(secret.encode(), timestamp.encode() + b"." + raw_body, hashlib.sha256).hexdigest() return hmac.compare_digest(headers.get("X-BotRadix-Signature", ""), expected) ``` ## Stream Server-Sent Events `GET /api/dex/v1/stream?pair_id={id}&interval=1m` está definido como un stream privado con snapshots de mercado y de cuenta y eventos de ciclo de vida, un latido cada 12 segundos y reanudación con `Last-Event-ID`. **Aún no está activado en el servicio público** y responde `503 REALTIME_STREAM_ASYNC_WORKER_REQUIRED`. Mientras tanto, usa webhooks para los eventos de cuenta y los endpoints de lectura para los datos de mercado. Esta página se actualizará cuando se active. --- # Errores, límites y versionado > Formato de errores, límites de uso, cabeceras y política de versionado. Source: https://docs.botradix.com/es/api-errors/ ## Formato de error Todos los errores de `/api/dex/v1` tienen la misma forma JSON y un código HTTP acorde: ```json { "success": false, "error": { "schema_version": "botradix-dex-error-v1", "code": "SCOPE_NOT_ALLOWED", "message": "…", "retryable": false, "details": {}, "request_id": "dxr_…" }, "request_id": "dxr_…", "api_version": "v1", "api_schema_revision": "botradix-dex-api-v1.1" } ``` Usa `error.code` en tu lógica (los mensajes pueden cambiar) y guarda `request_id` si contactas con soporte. `retryable: true` indica que la misma petición puede funcionar más tarde. ## Errores habituales | HTTP | Código | Significado | |---|---|---| | 400 | (códigos de validación) | Falta un campo, tiene un formato incorrecto o está fuera de rango. `prepare` valida el cuerpo antes que la clave | | 400 | `IDEMPOTENCY_KEY_REQUIRED` | `/orders/prepare` necesita una clave de idempotencia válida | | 401 | `API_KEY_REQUIRED` | No se envió clave de API | | 401 | `API_KEY_INVALID` | La clave tiene un formato incorrecto o no es válida | | 401 | `API_KEY_INACTIVE` | La clave está revocada o caducada | | 403 | `SCOPE_NOT_ALLOWED` | La clave no tiene el scope que exige el endpoint o la acción | | 403 | `IP_NOT_ALLOWED` | La IP de la petición no está en la lista permitida de la clave | | 403 | `delegated_executor_binding_required` | La ejecución delegada necesita un ejecutor vinculado a la clave | | 409 | `IDEMPOTENCY_KEY_CONFLICT` | La clave de idempotencia se usó con otros datos en las últimas 24 horas | | 409 | `DUPLICATE_CLIENT_ORDER_ID` | El `client_order_id` se usó con otros datos | | 409 | `active_api_key_limit_reached` | La wallet ya tiene 10 claves activas | | 429 | `RATE_LIMITED` | Se superó un límite de la clave | | 503 | `REALTIME_STREAM_ASYNC_WORKER_REQUIRED` | El stream SSE no está activado en este servicio | ## Códigos de la versión 2.2 | Código | Significado | Qué hacer | |---|---|---| | `COMMITTED_EXECUTOR_REQUIRED` | En un mercado con reglas de riesgo V2, abrir, ampliar o invertir por la ruta delegada se ejecuta comprometido con un precio observado después de tu orden, y solo un ejecutor del protocolo puede hacerlo. Tu ejecutor no lo es | Usa el ejecutor de BotRadix vinculado a tu clave | | `INVERT_NEEDS_AGENT` | En un mercado con reglas de riesgo V2, la inversión no puede enviarse como transacción directa de la wallet | Actívala con tu clave de trading (o por la ruta delegada con un ejecutor del protocolo) | | `INTENT_CREATED_AT_BEFORE_RECEPTION` | La hora de compromiso de la orden es anterior a su recepción en el servicio (margen de 2 s); no se envía nada | Prepárala de nuevo | | `WALLET_MARGIN_NEEDS_AGENT` | Un mercado de tu cuenta cruzada tiene la sesión cerrada: el margen aislado sale de tu wallet, firmado por tu wallet o cofirmado por tu wallet junto a tu clave de trading. "Margen +" necesita la clave de trading | Activa la clave de trading y repite | | `WALLET_MARGIN_NEEDS_WALLET_SIGNATURE` | El margen desde tu wallet necesita la firma de tu wallet para esta operación; una sesión de trading no puede traerlo | Repite la operación y fírmala con tu wallet (o usa tu clave de trading, con la cofirma de tu wallet) | | `WALLET_COSIGN_REQUIRED` | Falta la cofirma de tu wallet para el margen desde tu wallet | Confirma de nuevo y firma con tu wallet | | `WALLET_COSIGN_SIGNATURE_INVALID` | La cofirma no corresponde a esta wallet o a esta operación; no se ha movido nada | Prepárala de nuevo; si se repite, escribe a [support@botradix.com](mailto:support@botradix.com) | | `WALLET_COSIGN_INVALID` | La cofirma preparada no coincide con la operación; no se ha movido nada | Prepárala de nuevo | | `WALLET_MARGIN_BALANCE_REQUIRED` | Con esa sesión cerrada, tu wallet no tiene USDC suficiente para el margen (y, en una apertura, las comisiones máximas y, en una orden limitada o stop, la fianza). `details.wallet_margin_usdc` indica el importe | Añade USDC a tu wallet o espera a que reabra la sesión | | `LIQUIDITY_CAPACITY` (también en `/orders/execute`) | El vault rechaza el riesgo: su cupo para este mercado y dirección está lleno, o una orden que se suma a una posición con take profit respaldado lo superaría (la vista previa no siempre lo anticipa). Desde la v2.2 la vía delegada lo responde con HTTP 400 en lugar de un `503` con `VAULT_CAPACITY`; `details.max_open_usdc` da el cupo cuando se puede estimar | Prueba el lado contrario, un importe menor o más tarde | Al invertir junto a una posición neta del lado contrario con la misma clave, la respuesta puede devolver el id de esa neta: no hay `DexPositionOpened`, sino `DexPositionChanged` de la neta. ## Por qué una acción preparada no se puede ejecutar Cuando `prepare` funciona pero `execution.ready` es `false`, `execution.reason` lo explica: | Motivo | Significado | |---|---| | `withdraw_margin_insufficient` | El retiro dejaría muy poco margen libre. Retira menos o cierra posiciones | | `oracle_unavailable` | Ahora mismo no hay un precio de mercado actual en cadena; inténtalo de nuevo en unos instantes | | `funding_unavailable` / `funding_stale` | Hay que actualizar el funding del mercado antes de abrir posiciones nuevas | | `market_session_closed` | El mercado está fuera de su sesión de negociación | | `price_out_of_bounds` | El precio se movió más allá de tu deslizamiento permitido; vuelve a preparar | | `price_tick_rejected` | El precio no coincide con el tick size del mercado | | `contract_limits_rejected` | La orden supera un límite del contrato (tamaño, apalancamiento) o ha caducado | | `vault_capacity_unavailable` | Ahora mismo no hay capacidad de liquidez suficiente para esta posición | | `market_risk_paused` | Las posiciones nuevas están pausadas en este mercado | | `market_not_bound` / `dex_not_operational` | El mercado aún no está habilitado para operar | | `invalid_take_profit` / `invalid_stop_loss` | El TP o el SL están en el lado equivocado del precio actual | | `intent_expired` | La preparación caducó; vuelve a preparar | | `simulation_unavailable` | La simulación previa no pudo ejecutarse; vuelve a preparar en un momento | | `contract_preflight_failed` | El contrato rechazaría la acción en las condiciones actuales | ## Límites de uso Cada clave de API tiene sus propios límites, contados en ventanas de 60 segundos: | Límite | Por defecto | |---|---| | Todas las peticiones | 3.600 por minuto | | `/orders/prepare` | 900 por minuto y 40 por segundo | | Lecturas de cuenta (`/account`, `/positions…`, `/orders…`, `/collateral`, `/transactions`, `/trades`, `/orders/execute`) | 3.000 por minuto | | `/candles` | 900 por minuto | Las `quotas` propias de una clave se pueden fijar al crearla o rotarla, hasta estos máximos por minuto: peticiones 30.000, órdenes 12.000, ráfaga 1.000, lecturas de cuenta 20.000 y lecturas históricas 12.000. Además de los límites por clave, el borde de red admite hasta 100 peticiones por segundo por IP (ráfagas de 200) y 60 por segundo por clave de API (ráfagas de 120). Esos rechazos son respuestas `429` simples, sin el cuerpo JSON. Las respuestas incluyen `X-RateLimit-Limit`, `X-RateLimit-Remaining` y `X-RateLimit-Reset` (hora Unix en segundos en la que se reinicia la ventana) para el límite general de la clave. Las respuestas `429` no llevan `Retry-After`: espera de forma exponencial con algo de aleatoriedad (por ejemplo 1, 2, 4, 8 segundos). ## Reintentos - Reintenta ante `429`, ante `5xx` y cuando `error.retryable` sea `true`, con espera exponencial. - Reutiliza la misma clave de idempotencia, con los mismos datos, al reintentar un `prepare` o un `execute`, para que una respuesta perdida no cree una segunda preparación ni una segunda orden. - Nunca reintentes a ciegas una transacción ya enviada: consulta antes `/transactions` o `/native/executions/{tx_hash}`. ## Cabeceras de respuesta | Cabecera | Valor | |---|---| | `X-BotRadix-API-Version` | `v1` | | `X-BotRadix-API-Schema` | `botradix-dex-api-v1.1` | | `X-Request-ID` | Tu ID de petición, o uno generado por el servidor (`dxr_…`) | | `Cache-Control` | `no-store` | ## Política de versionado - `/api/dex/v1` es el contrato estable de integración. En v1 se pueden añadir campos y endpoints nuevos sin aviso; tu cliente debe ignorar los campos que no conozca. - Los cambios que romperían integraciones existentes se publican en una versión nueva. - `GET /meta` devuelve la revisión de esquema y las capacidades actuales. - Los endpoints sin versión que usa el terminal web (`/api/dex/…` sin `v1`) pueden cambiar en cualquier momento. --- # Seguridad > Cómo se protegen cuentas, claves y fondos, y qué debes hacer por tu parte. Source: https://docs.botradix.com/es/security/ ## Direcciones oficiales BotRadix solo opera en estos dominios. Guárdalos en favoritos y revisa la barra de direcciones antes de iniciar sesión o conectar una wallet. | | | |---|---| | Plataforma | `botradix.com` | | Terminal del DEX y API | `app.botradix.com` | | Documentación | `docs.botradix.com` | | Email de soporte | `support@botradix.com` | El equipo de BotRadix nunca te pedirá tu contraseña, tus códigos de verificación en dos pasos, tu frase semilla ni la clave privada de tu wallet principal. ## Tu cuenta de BotRadix - **La creación de la cuenta** se confirma con un código de 6 dígitos enviado por email (válido 10 minutos). Las contraseñas deben tener al menos 10 caracteres y solo se guardan como hashes de un solo sentido. El registro de cuentas nuevas está cerrado temporalmente. - **Verificación en dos pasos (2FA)** con una app de autenticación (TOTP). Activarla requiere tu contraseña; sustituirla o desactivarla requiere tu contraseña y un código actual. - **Las sesiones de acceso a la cuenta** duran 8 horas (si se habilita el perfil de sesiones cortas, el acceso caduca antes y se renueva según su configuración); son distintas de las autorizaciones de trading. Cerrar sesión termina tus sesiones en todos los dispositivos; cambiar la contraseña o la 2FA también termina tus otras sesiones. - **Cambiar la contraseña** requiere un código enviado por email y un código 2FA, así que primero debes activar la 2FA. - Los intentos fallidos repetidos de inicio de sesión tienen un límite de frecuencia. > [!TIP] > Activa la 2FA en cuanto crees tu cuenta. Sin ella no puedes cambiar la contraseña. Por ahora no hay un restablecimiento de contraseña automático. Si pierdes el acceso, escribe a soporte desde el email de tu cuenta. ## Tus credenciales de exchange - Las claves de API y las claves de las agent wallets se guardan **cifradas** y solo se descifran en memoria cuando un bot las usa. - Se muestran enmascaradas y no pueden cambiarse mientras haya bots o posiciones que dependan de ellas. - Concede solo permisos de trading, nunca de retiro. Consulta [Conectar exchanges](https://docs.botradix.com/es/exchanges/). ## Tus fondos en el DEX - Con el código vigente, tu clave de trading y tus sesiones de trading **no pueden retirar**; los retiros los autoriza tu wallet (con una transacción o una firma gratuita) y devuelven los fondos a tu propia wallet. Los contratos están abiertos y sin sellar: el administrador puede cambiar esta lógica en cualquier momento sin aviso previo obligatorio (0 horas); no se garantiza custodia absoluta. - La interfaz valida y simula las acciones preparadas. El estado puede cambiar antes de ejecutarlas; una simulación correcta no garantiza su ejecución. - Puedes cerrar tus posiciones y retirar directamente desde BaseScan, sin esta web. La pausa de retiros del código vigente caduca a las 72 horas, pero eso no garantiza recuperar todo en ese plazo: salir también depende de precios, posiciones, órdenes, deudas y liquidez. Consulta [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/). - El administrador de BotRadix puede cambiar la lógica en cualquier momento, sin aviso previo: **aviso actual 0 h, sellado no**, en fase de consolidación con sellado previsto por componentes. Puede pausar el DEX o los retiros (con el código vigente, una pausa de retiros dura como mucho 72 horas). Lee [Seguridad y contratos](https://docs.botradix.com/es/security-contracts/) y sus [direcciones oficiales](https://docs.botradix.com/es/security-contracts/#direcciones-oficiales): las direcciones fijas de custodia conservan el dinero durante una actualización, pero la lógica nueva puede cambiar sus protecciones. ## Protección de la plataforma - Todos los sitios se sirven por HTTPS con HSTS, cabeceras de seguridad estrictas y límites de frecuencia por IP. - Los servicios críticos se vigilan de forma continua y se reinician solos tras un fallo. - Los datos se copian con regularidad. - La app de Android añade bloqueo biométrico, bloqueo de capturas de pantalla y cifrado con el Keystore. ## Buenas prácticas 1. Usa una contraseña única y robusta y activa la 2FA. 2. Usa una wallet dedicada para operar, solo con los fondos que quieras operar. 3. Crea claves de API y agent wallets dedicadas para BotRadix, con los permisos mínimos. 4. Revoca las claves de trading, las sesiones y las claves de API que ya no uses. 5. Nunca compartas capturas de pantalla que muestren claves, frases semilla o códigos QR. ## Informar de una vulnerabilidad Si encuentras un problema de seguridad, comunícalo en privado a **support@botradix.com** con el asunto "Security", e incluye los pasos para reproducirlo. Por favor, no lo hagas público hasta que esté corregido. ## Eliminar tu cuenta Puedes eliminar tu cuenta desde **Configuración** cuando no quede ningún bot, señal abierta, ciclo pendiente ni inventario de grid. La eliminación borra tus datos de BotRadix (bots, historial, conexiones con exchanges, destinos de alertas y wallets vinculadas). No cierra posiciones en tus exchanges y no afecta a los fondos que tengas en los contratos del DEX, cuya retirada sigue sujeta a las reglas del contrato, el estado de la cuenta y las pausas. --- # Contratos inteligentes > Direcciones públicas de los contratos, actualizaciones y controles de administración. Source: https://docs.botradix.com/es/contracts/ El BotRadix DEX funciona como un conjunto de contratos inteligentes en **Base mainnet** (chain ID 8453). Esta página recoge las direcciones oficiales, explica qué hace cada contrato y describe, sin simplificaciones, los controles que tiene el administrador de BotRadix. El apartado [Direcciones oficiales de los contratos v2.2](https://docs.botradix.com/es/security-contracts/#direcciones-oficiales) detalla qué piezas son fijas, qué lógica se puede sustituir, las funciones de cambio y quién firma. **Fase de consolidación, sellado previsto por componentes; hoy sin sellar y con aviso de 0 h: el administrador puede cambiar la lógica en cualquier momento, sin aviso previo.** ## Direcciones oficiales | Contrato | Dirección | Función | |---|---|---| | Router del DEX | [`0x740E207d90ec9D82fce040F8DA0268dB761F364E`](https://basescan.org/address/0x740E207d90ec9D82fce040F8DA0268dB761F364E) | Punto de entrada para el trading, el margen aislado, las órdenes, el vault y las lecturas en la cadena | | Margen cruzado | [`0x79ED1002F842DE2A9E25d353F2627206483b2b3B`](https://basescan.org/address/0x79ED1002F842DE2A9E25d353F2627206483b2b3B) | Cuentas de margen cruzado y colateral (USDC y BAQ) | | Hub de PairForge | [`0x55Ec5A8DFEb6ab71BCAE98D833b4E1d96a6c871C`](https://basescan.org/address/0x55Ec5A8DFEb6ab71BCAE98D833b4E1d96a6c871C) | Oráculo: precios firmados y tasas de funding | | Coordinator | [`0xA7509a1581bD718DE319475A0CEB9776bc29c463`](https://basescan.org/address/0xA7509a1581bD718DE319475A0CEB9776bc29c463) | Ejecuta los planes de configuración y de actualización firmados por el administrador | | USDC | [`0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`](https://basescan.org/token/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913) | Activo de liquidación (USDC nativo emitido por Circle en Base) | | BAQ | [`0x1B9f61483Dd6710E1Ad3b9d0bb92b710F1BA56B5`](https://basescan.org/token/0x1B9f61483Dd6710E1Ad3b9d0bb92b710F1BA56B5) | Token de BotRadix; colateral complementario | > [!CAUTION] > Aprueba tokens y firma transacciones solo para estas direcciones, y solo desde **app.botradix.com** o, para la salida independiente, desde BaseScan siguiendo [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/). Una solicitud de la wallet que implique cualquier otro contrato no procede de BotRadix. ## Cómo encajan los contratos - **Router.** Un contrato modular: cada función se delega en un módulo de implementación (una "faceta") para posiciones, órdenes, el vault, la ejecución delegada, los datos de mercado y la administración. El trading, el margen aislado y las órdenes pasan todos por esta única dirección. - **Margen cruzado.** Guarda el colateral cruzado y evalúa la salud de cada cuenta cruzada teniendo en cuenta todas sus posiciones. Es un proxy actualizable: su dirección (la que guarda el colateral) es fija, pero el administrador puede sustituir su lógica al instante mientras dure la fase abierta. - **Hub de PairForge.** Almacena los últimos precios y tasas de funding firmados por los reporters, y comprueba el quórum de 2 de 3 y la antigüedad de cada precio. Consulta [Precios y oráculo](https://docs.botradix.com/es/oracle/). - **Coordinator.** Ejecuta los planes de administración. Cada plan se autoriza con una firma EIP-712 que incluye un nonce y una fecha límite, y se compromete con la lista exacta de acciones que ejecutará. - **Puerta de aviso previo.** Un contrato inmutable sin administrador propio, que solo obedece al Coordinator. Desde la versión 2.2 es la administradora del router y aplica un aviso a los cambios de código y a las operaciones. Consulta [Seguridad y contratos](https://docs.botradix.com/es/security-contracts/#la-puerta-de-aviso-previo). - **Salida.** Un contrato inmutable sin dueño. Reenvía al router las acciones de salida de la wallet que lo llama; sus funciones comunitarias (congelar mercados, cerrar posiciones congeladas, completar repartos) pueden actuar sobre otras cuentas cuando se cumplen sus condiciones, y los pagos pertenecen siempre a sus titulares. Consulta [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/). - **Ejecutores y keeper del protocolo.** Cuentas de BotRadix que envían las acciones que firmas con tu clave de trading o con una sesión, y que ejecutan órdenes en espera, take profit, stop loss, actualizaciones de funding y liquidaciones. Pagan el gas. Solo pueden enviar acciones que tú firmaste o que las reglas del contrato permiten, como la liquidación de una cuenta por debajo de su margen de mantenimiento. ## Controles de administración Los contratos dan al administrador de BotRadix estos poderes: | Control | Efecto | |---|---| | Actualización | Sustituir los módulos del router (a través de la puerta de aviso previo) y la implementación del margen cruzado y la lógica de negocio (al instante), lo que cambia la lógica de los contratos | | Pausa | Suspender la actividad del DEX, o solo la apertura de posiciones nuevas. Las claves de solo pausa también pueden hacerlo, pero nunca reanudar | | Modo de solo reducción | Las posiciones solo pueden reducirse o cerrarse | | Pausa de retiros | Los retiros de colateral quedan bloqueados mientras dure la pausa: como mucho 72 horas, y después al menos 24 horas sin pausa | | Configuración de mercados | Listar mercados y fijar tramos de apalancamiento, límites de interés abierto y sesiones de mercado | | Parámetros | Ajustar las comisiones, el margen de mantenimiento, el beneficio máximo, el crédito BAQ y otros valores dentro de los límites del código vigente (que el administrador también puede cambiar mientras los contratos estén abiertos) | | Gestión del oráculo | Añadir, sustituir o revocar reporters y fijar el quórum | | Liquidez del vault | Retirar la liquidez **libre** del vault: la parte no reservada para los posibles beneficios de los traders, y, con el código vigente, solo si tras el retiro la capacidad reservada respeta el techo de admisión y el objetivo del desapalancamiento automático (no basta quedar por debajo del disparo). En una emergencia exige el reparto abierto, todas las reclamaciones abonadas y ningún pago diferido pendiente | | Emergencia | Declarar una emergencia o liquidar un mercado sin precios (cualquiera puede hacerlo tras los plazos descritos en [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/)) | | Comisión de servicio | Actualmente 0,03 % en aperturas y ampliaciones, con un tope de 0,20 % en el código actual; cada wallet debe consentirla en su firma | Propiedades importantes de estos controles: - **Aviso previo en el router, hoy de 0 horas.** Los cambios del router pasan por la puerta de aviso previo. Hoy sus avisos son de 0 horas, así que un cambio todavía puede aplicarse de inmediato; subirlos es inmediato y bajarlos exige esperar el aviso vigente. - **Sin aviso en el margen cruzado ni en la lógica de negocio.** Sus proxies guardan un administrador fijo y un retardo cero en código inmutable, así que las actualizaciones del contrato que custodia el colateral pueden aplicarse al instante mientras los contratos estén abiertos. Se vigilan públicamente. - **Una única clave de administración.** Los planes de administración los firma una clave de administrador custodiada por BotRadix (una cuenta de propiedad externa, no un multisig). - **Contratos abiertos.** Los contratos se mantienen abiertos (sin sellar) a propósito, para poder añadir funciones y corregir problemas. Esto también significa que todas las garantías descritas en esta documentación dependen del código desplegado en cada momento. Es una fase temporal de consolidación: está previsto sellar por componentes tras comprobar la estabilidad, sin un calendario comprometido. Cada paso debe indicar qué vías de actualización y parámetros limita; sellar una pieza no congela todo el sistema. - **Salida independiente.** Cualquier wallet puede cerrar sus posiciones y retirar desde BaseScan a través del contrato de salida, con respaldos a las 24 horas, a los 3 días (un mercado sin precios) y a las 72 horas (ningún precio). Consulta [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/) para ver los pasos y sus límites. > [!IMPORTANT] > Con el código actual, el administrador no tiene ninguna función para mover el colateral de un trader a otra dirección, y tu clave de trading no puede retirar. Como el margen cruzado puede actualizarse sin periodo de espera mientras los contratos estén abiertos, en última instancia estas protecciones dependen de que BotRadix gestione correctamente su clave de administración. Lee [Seguridad y contratos](https://docs.botradix.com/es/security-contracts/) y [Riesgos](https://docs.botradix.com/es/risks/). ## Verificación y auditorías - Todas las transacciones, los eventos y los saldos de tokens son públicos y pueden comprobarse en [BaseScan](https://basescan.org). - Comprueba cada dirección en BaseScan: su pestaña **Contract** indica si el código está verificado. El despliegue por sí solo no demuestra la verificación; la coincidencia del código no equivale a una auditoría. - No se ha publicado ningún informe de auditoría de terceros. Antes de la versión 2.2, los contratos pasaron una revisión interna con varios enfoques y pruebas de invariantes, y la actualización se ensayó sobre una copia de Base. Esta documentación enlazará cualquier informe de auditoría de terceros si se publica. ## Cómo verificarlo No hace falta fiarse de esta página: los datos clave se leen directamente en la cadena. Estos comandos usan `cast`, la herramienta de línea de comandos de [Foundry](https://getfoundry.sh), con el RPC público de Base. Son solo lecturas: no firman nada, no envían transacciones y no cuestan gas. ```bash RPC=https://mainnet.base.org ROUTER=0x740E207d90ec9D82fce040F8DA0268dB761F364E CROSS=0x79ED1002F842DE2A9E25d353F2627206483b2b3B HUB=0x55Ec5A8DFEb6ab71BCAE98D833b4E1d96a6c871C COORD=0xA7509a1581bD718DE319475A0CEB9776bc29c463 BAQ=0x1B9f61483Dd6710E1Ad3b9d0bb92b710F1BA56B5 USDC=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 # Margen cruzado: implementación, revisión y estado abierto cast call $CROSS "implementation()(address)" --rpc-url $RPC cast call $CROSS "implementationRevision()(uint64)" --rpc-url $RPC cast call $CROSS "isSealed()(bool)" --rpc-url $RPC # BAQ como colateral: reserva cast call $CROSS "dexBaqReserveState()(uint256,uint256)" --rpc-url $RPC # Router: administrador (la puerta de aviso previo) y avisos vigentes cast call $ROUTER "admin()(address)" --rpc-url $RPC # Coordinator: clave de administración y estado abierto cast call $COORD "OWNER()(address)" --rpc-url $RPC cast call $COORD "isSealed()(bool)" --rpc-url $RPC # Hub de PairForge: quórum y número de reporters cast call $HUB "QUORUM()(uint8)" --rpc-url $RPC cast call $HUB "reporterCount()(uint32)" --rpc-url $RPC # Tokens: suministro de BAQ y USDC en los contratos del DEX cast call $BAQ "totalSupply()(uint256)" --rpc-url $RPC cast call $USDC "balanceOf(address)(uint256)" $ROUTER --rpc-url $RPC cast call $USDC "balanceOf(address)(uint256)" $CROSS --rpc-url $RPC ``` Resultados con la versión 2.2 (comprobados el 11 de octubre de 2026): | Lectura | Resultado | Qué confirma | |---|---|---| | `implementationRevision` | `24` | La implementación del margen cruzado incluida en la versión 2.2 (la revisión puede aumentar en actualizaciones posteriores) | | `isSealed` (margen cruzado y Coordinator) | `false` | Los contratos siguen abiertos, como se explica en [Controles de administración](https://docs.botradix.com/es/contracts/#controles-de-administracion) | | `dexBaqReserveState` | Dos importes en USDC (6 decimales) | La reserva de BAQ y la parte comprometida en ese momento | | `admin` (router) | La dirección de la puerta | Los cambios en el router solo llegan a través de la puerta de aviso previo | | `ADMIN` (puerta) | La dirección del Coordinator | La puerta solo obedece al Coordinator | | `delays` | `0`, `0`, `0`, `2592000`, `1209600` | Aviso de código y de operaciones de 0 horas, sin mínimo comprometido, aviso máximo de 30 días y una ventana de 14 días para ejecutar un cambio programado | | `OWNER` (Coordinator) | Una cuenta de propiedad externa | La clave única de administración que firma los planes | | `QUORUM` y `reporterCount` | `2` y `3` | El quórum de 2 de 3 reporters de PairForge | | `totalSupply` (BAQ) | `5000000000000000000000000000` | 5.000.000.000 BAQ (18 decimales) | | `balanceOf` (USDC) | Importes con 6 decimales | El USDC que guarda cada contrato del DEX en ese momento | La reserva de BAQ y los saldos cambian con la actividad, así que verás otras cifras. La dirección de la implementación y su revisión cambian con cada actualización de los contratos. Las comisiones, el beneficio máximo, el crédito BAQ y los demás valores ajustables se pueden leer en las pestañas **Read Contract** del router y del margen cruzado en BaseScan; el [Seguridad y contratos](https://docs.botradix.com/es/security-contracts/#fondos-permisos-y-riesgos) recoge sus valores al lanzar la versión y sus límites. ## Para integradores - Los intents firmados usan el dominio EIP-712 `BotradixDEX`, versión `1`, chain ID `8453`, con el router del DEX como contrato verificador. Consulta [Operar con la API](https://docs.botradix.com/es/api-orders/). - Para indexar los eventos del DEX desde el principio, empieza en el bloque **51.767.085**. - USDC usa 6 decimales y BAQ, 18. - Desde la versión 2.2, cada cambio de una posición emite `DexPositionStateV2` (apalancamiento, tamaño, márgenes, beneficio máximo y funding) y cada cierre emite `DexPositionCloseReason` con su motivo (tu orden, take profit o stop loss, liquidación, desapalancamiento automático, salida o emergencia). - Lecturas útiles del router en BaseScan: `dexAdlState` (desapalancamiento automático), `dexPositionRiskV2` (el límite de beneficio de una posición y el respaldo de su take profit) y `dexExitStatus` (el contrato de salida y la petición de salida de una cuenta); en el margen cruzado, `dexWithdrawPauseState` (la pausa de retiros vigente y cuándo termina). - `PRODUCTION_READY` devuelve `false` a propósito: solo controla el antiguo módulo V1 y no afecta al DEX. - Para la mayoría de necesidades, la [API](https://docs.botradix.com/es/api/) es más sencilla y devuelve los mismos datos de la cadena ya indexados. ## Versión Los contratos actuales son la **versión 2.2**, en funcionamiento desde el 11 de octubre de 2026 (la versión 2.1.1 entró en funcionamiento el 4 de octubre de 2026). Consulta las [Novedades](https://docs.botradix.com/es/changelog/) para ver el historial. --- # Seguridad y contratos > Direcciones oficiales, poderes de administración, puerta de aviso, pausadores, sellado por partes y alcance de las revisiones. Source: https://docs.botradix.com/es/security-contracts/ Esta página explica quién puede cambiar los contratos, cómo se tramitan esos cambios y qué límites tiene la salida del DEX. Consulta también [Salir sin la web](https://docs.botradix.com/es/exit/), [Cómo leer los proxies de BotRadix](https://docs.botradix.com/es/proxies/) y [Compilación reproducible](https://docs.botradix.com/es/reproducible-build/). ## Estado de referencia **Referencia: 11 de octubre de 2026.** Los contratos v2.2 están activos; los componentes administrables siguen **OPEN**, sin sellado. El administrador del router es AvisoPrevio, `0x3a3273Df1c640D2625Bcc0f378Fc571D371f0dEd`. Los avisos de código y operaciones y el suelo comprometido son de **0 horas**. Existen claves de solo pausa. **Publicación del código:** está prevista conjuntamente en BaseScan cerca del cierre, antes del sellado. Los enlaces de direcciones de esta página no implican que el código ya esté verificado. ## Fondos, permisos y riesgos El colateral se registra en CrossMargin a nombre de tu wallet. Con el código descrito, las retiradas de usuario requieren la autorización correspondiente de la wallet y se pagan a su titular; una clave de trading o de sesión no tiene permiso de retiro. Eso no convierte el sistema en una garantía de custodia absoluta: las direcciones que mantienen el estado pueden conservarse mientras se sustituye la lógica que aplica esos permisos. Mientras una pieza siga OPEN, su autoridad puede cambiar código, rutas, parámetros o dependencias dentro de sus mecanismos de actualización. Los poderes incluyen configurar mercados y reporters, pausar, declarar una emergencia y retirar liquidez libre del vault bajo las comprobaciones del código vigente. Una dirección estable o una firma de usuario no eliminan el riesgo de administración, de errores, de oráculo, de liquidación o de falta de liquidez. ## La puerta de aviso previo AvisoPrevio es un contrato sin proxy que tramita llamadas de administración mediante `execute(target, data, salt)`. Su `ADMIN()` es el coordinador autorizado por la administración de BotRadix. La existencia de la puerta no convierte esa autoridad en una administración descentralizada o multifirma. La puerta clasifica cada llamada por destino, función y, cuando corresponde, argumentos. `classify()` permite consultar esa clase; `delays()` devuelve los avisos vigentes y el suelo mínimo. | Clase | Mecanismo | Ejemplos | |---|---|---| | `FAST` | No exige espera | Pausas, cancelaciones y determinadas revocaciones; los argumentos deben cumplir las restricciones de la función | | `OPS` | Exige el aviso de operaciones | Parámetros, altas de mercados, retiradas del vault, emergencia administrativa y reanudaciones | | `CODE` | Exige el aviso de código | Cambios de lógica o rutas, punteros, fuentes de precios y destinos no clasificados de otra forma | Con un aviso positivo, la administración programa los datos exactos con `schedule()`. El identificador vincula destino, datos y sal. `execute()` comprueba el aviso **vigente al ejecutar**, por lo que una subida también protege operaciones pendientes. La ventana de ejecución dura 14 días desde que la operación queda lista. `operationState()` permite consultar sus fechas y estado; los eventos registran programación, ejecución y cancelación. Con aviso cero se puede ejecutar sin una programación previa: no hay un plazo obligatorio para reaccionar. `raiseDelay()` solo sube avisos y lo hace inmediatamente. `lowerDelay()` debe pasar por la propia puerta y esperar el mayor aviso vigente entre los que reduce. `commitMinimumDelay()` eleva un suelo que ya no se puede bajar. Estas reglas no hacen que toda actualización del sistema tenga que pasar por la puerta. ### Lo que la puerta no retiene La sustitución de la implementación del proxy de CrossMargin y de las lógicas de negocio dispone de caminos de autoridad propios, ligados al coordinador. Mientras estén abiertos, la puerta no impone por sí sola una espera a esos caminos. Tampoco retrasa la actuación directa de las claves autorizadas exclusivamente para pausar. `announce()` deja el evento público `CambioAnunciado` para un cambio que la puerta no puede retener. **No ejecuta el cambio ni bloquea su ejecución antes de una fecha.** Un anuncio operativo no equivale a un periodo de espera exigido por el contrato. Para evaluar una protección hay que comprobar la autoridad y el ciclo de vida de cada pieza, además de la puerta. ## Pausadores y reanudación El mecanismo admite hasta ocho claves de solo pausa. Pueden activar pausa, solo reducir, parada del trading o pausa de retiros; ese permiso no permite reanudar, actualizar contratos ni retirar fondos de usuarios. Reanudar corresponde a la administración y se clasifica como operación en la puerta. En el mecanismo v2.2, la pausa de retiros de CrossMargin caduca a las **72 horas**, requiere **24 horas sin pausa** antes de la siguiente y no se aplica durante una emergencia confirmada. Se puede consultar su estado efectivo y vencimiento. La pausa no garantiza un cobro al vencer: siguen contando las posiciones, órdenes, deudas, precios y liquidez. Las restricciones a nuevas aperturas no sustituyen los controles de cierre y liquidación. Mientras el código sea actualizable, también pueden cambiar estas reglas. ## Sellado por partes Un sellado afecta a una pieza y a sus permisos concretos. Sellar el router no sella automáticamente CrossMargin, el hub del oráculo, sus reporters ni la automatización. Tampoco basta con un indicador `sealed`: hay que revisar si quedan rutas modulares actualizables, autoridades con aviso y parámetros modificables bajo sus límites. El plan consiste en comprobar y cerrar por separado las superficies de actualización, publicar el código y su receta de compilación y documentar, para cada pieza, qué queda fijo y qué sigue administrable. Un cierre total y un cierre que conserve cambios mediante una puerta con aviso ofrecen permisos distintos; se deberá indicar el perfil aplicado. Las pausas, los parámetros permitidos y los riesgos externos no desaparecen por sellar código. **Condición pendiente en la referencia indicada:** antes de subir el aviso o sellar deben corregirse y volver a probarse dos hallazgos de la revisión interna sobre gobierno. No se presenta ese sellado futuro como una protección ya disponible. ## Revisiones realizadas y sus límites Se ha realizado **revisión interna, no auditoría externa**. El trabajo documentado incluye lectura de caminos de fondos y permisos, pruebas de contratos e invariantes, ensayos de actualización y vuelta atrás, revisión de salida y emergencia, y comprobaciones de compilación y de correspondencia entre fuentes y artefactos. Cada comprobación cubre su versión y sus escenarios, no todos los estados posibles. La revisión final de los caminos del dinero y la revisión de textos para la publicación son trabajos distintos. Revisar comentarios no añade una revisión de seguridad independiente. Los hallazgos pendientes anteriores siguen siendo una condición para el sellado; ni las pruebas ni la verificación de código en un explorador garantizan ausencia de fallos. **Estado de auditoría en la referencia indicada:** no se ha publicado una auditoría externa. No se atribuye a estos contratos una certificación de seguridad. ## Direcciones oficiales Todas las direcciones siguientes corresponden a **Base mainnet, chain ID 8453**. Se contrastan con el mapa de despliegue v2.2 y el manifiesto público de la referencia indicada. Un inventario es una instantánea: las implementaciones y rutas pueden cambiar mientras estén abiertas. Comprueba la dirección completa y distingue los puntos de entrada de sus implementaciones; no envíes tokens directamente a una faceta o módulo. ### Puntos de entrada y control | Contrato o función | Dirección en BaseScan | |---|---| | Router del DEX (CoreUSDC) | [0x740E207d90ec9D82fce040F8DA0268dB761F364E](https://basescan.org/address/0x740E207d90ec9D82fce040F8DA0268dB761F364E) | | CrossMargin (proxy de colateral) | [0x79ED1002F842DE2A9E25d353F2627206483b2b3B](https://basescan.org/address/0x79ED1002F842DE2A9E25d353F2627206483b2b3B) | | PairForge (anfitrión del oráculo) | [0x55Ec5A8DFEb6ab71BCAE98D833b4E1d96a6c871C](https://basescan.org/address/0x55Ec5A8DFEb6ab71BCAE98D833b4E1d96a6c871C) | | Registry (anfitrión) | [0x9ad0298331bda8E08034027e7C2b1352f9cEB164](https://basescan.org/address/0x9ad0298331bda8E08034027e7C2b1352f9cEB164) | | Automation (anfitrión) | [0x4b9adab771698a52460e5DeC0Ee91955436c68c2](https://basescan.org/address/0x4b9adab771698a52460e5DeC0Ee91955436c68c2) | | Adaptador de Uniswap V3 (anfitrión) | [0x52D9bbcE58874272E1359769e643e4327427f4dB](https://basescan.org/address/0x52D9bbcE58874272E1359769e643e4327427f4dB) | | Fábrica de cuentas | [0x092A0905b357E72bacE1C2e3Fa46A45475FB9e24](https://basescan.org/address/0x092A0905b357E72bacE1C2e3Fa46A45475FB9e24) | | Coordinador de administración | [0xA7509a1581bD718DE319475A0CEB9776bc29c463](https://basescan.org/address/0xA7509a1581bD718DE319475A0CEB9776bc29c463) | | BotradixSalida | [0x43473B3684ccB5d9d57D119f2A6bc7B9B1f5EEe5](https://basescan.org/address/0x43473B3684ccB5d9d57D119f2A6bc7B9B1f5EEe5) | | AvisoPrevio (administrador del router) | [0x3a3273Df1c640D2625Bcc0f378Fc571D371f0dEd](https://basescan.org/address/0x3a3273Df1c640D2625Bcc0f378Fc571D371f0dEd) | ### Inventario de las 57 piezas de la entrega v2.2 Son las 54 piezas del mapa v2.2 más Salida, AvisoPrevio y su fábrica. Las direcciones de lógica no son puntos de depósito. #### Salida y aviso | Contrato o función | Dirección en BaseScan | |---|---| | BotradixSalida | [0x43473B3684ccB5d9d57D119f2A6bc7B9B1f5EEe5](https://basescan.org/address/0x43473B3684ccB5d9d57D119f2A6bc7B9B1f5EEe5) | | BotradixAvisoPrevio | [0x3a3273Df1c640D2625Bcc0f378Fc571D371f0dEd](https://basescan.org/address/0x3a3273Df1c640D2625Bcc0f378Fc571D371f0dEd) | | BotradixAvisoPrevioFactory | [0xD3369F63E6a8Dc60914a428c0d15d98CB9f5Ba12](https://basescan.org/address/0xD3369F63E6a8Dc60914a428c0d15d98CB9f5Ba12) | #### Despacho y administración modular | Contrato o función | Dirección en BaseScan | |---|---| | BotradixDispatchKernelV2 | [0x95DC9EFbff26Acb8B9509d68dd73E712c4541093](https://basescan.org/address/0x95DC9EFbff26Acb8B9509d68dd73E712c4541093) | | BotradixRouterModuleHub | [0x1939D6DEA5032Af296888A2b5b379121981807E5](https://basescan.org/address/0x1939D6DEA5032Af296888A2b5b379121981807E5) | | BotradixRouterModuleAdminFacet | [0xd7Ee406f1309e422Ce215e1257799D595fA3EA02](https://basescan.org/address/0xd7Ee406f1309e422Ce215e1257799D595fA3EA02) | | BotradixBusinessModuleAdmin | [0x75434e902a3e9538fE9Cdc9606163fCd26073177](https://basescan.org/address/0x75434e902a3e9538fE9Cdc9606163fCd26073177) | #### Facetas del router | Contrato o función | Dirección en BaseScan | |---|---| | BotradixAdminAuthFacet | [0x281f19360d4bd6278D8b36D239319E0152c4d15a](https://basescan.org/address/0x281f19360d4bd6278D8b36D239319E0152c4d15a) | | BotradixMarketLifecycleFacet | [0xFBe27EDAAD662eCf2315bCeEeAD626A88A8a1C3c](https://basescan.org/address/0xFBe27EDAAD662eCf2315bCeEeAD626A88A8a1C3c) | | BotradixTradeFacet | [0x4C154d0e8EC1123db8BfA9cAf5e9170229B01d59](https://basescan.org/address/0x4C154d0e8EC1123db8BfA9cAf5e9170229B01d59) | | BotradixPositionFacet | [0xa1D5a5B20b7ec4729d8d72B633CF6743Ed69E37b](https://basescan.org/address/0xa1D5a5B20b7ec4729d8d72B633CF6743Ed69E37b) | | BotradixSettlementFacet | [0x69c8228f0679db9b9d1815C5f46596D3A3cD794E](https://basescan.org/address/0x69c8228f0679db9b9d1815C5f46596D3A3cD794E) | | BotradixReadMarketFacet | [0x7CC58E07E4FF466cEB637F181118A13840b056D6](https://basescan.org/address/0x7CC58E07E4FF466cEB637F181118A13840b056D6) | | BotradixMarketAdminFacet | [0x13aa7628E7f163Ee6B55BB9d2b185Ab9e609680E](https://basescan.org/address/0x13aa7628E7f163Ee6B55BB9d2b185Ab9e609680E) | | BotradixAssetRiskFacet | [0x4c3528F5086af74B546Faa8F12AEc31A246aE77d](https://basescan.org/address/0x4c3528F5086af74B546Faa8F12AEc31A246aE77d) | | BotradixDelegateAuthFacet | [0xC10072306b31d3ad13d6c517ced6E003f92a3e5f](https://basescan.org/address/0xC10072306b31d3ad13d6c517ced6E003f92a3e5f) | | BotradixIncreaseFacet | [0x5351963473f2E1fB58853024D51494495e3E988b](https://basescan.org/address/0x5351963473f2E1fB58853024D51494495e3E988b) | | BotradixCollateralFacet | [0xD3a6759D95Dd186B3E0a04E81F3F4c0d6fF29520](https://basescan.org/address/0xD3a6759D95Dd186B3E0a04E81F3F4c0d6fF29520) | | BotradixSignedExitFacet | [0xcF06610b85C1274aEbc21BFA11C6086f87f996d8](https://basescan.org/address/0xcF06610b85C1274aEbc21BFA11C6086f87f996d8) | #### Componentes del DEX | Contrato o función | Dirección en BaseScan | |---|---| | BotradixDexCreateEngine | [0x1eC79D9d237a4C1C52a1A031277418008DDc3Cc8](https://basescan.org/address/0x1eC79D9d237a4C1C52a1A031277418008DDc3Cc8) | | BotradixDexIncreaseEngine | [0x19c1124d3781902b027DFa6552d5C45a4feB86D8](https://basescan.org/address/0x19c1124d3781902b027DFa6552d5C45a4feB86D8) | | BotradixDexCloseEngine | [0x72027074498955a67c621b2D7f7f1afCcd5Dbd1E](https://basescan.org/address/0x72027074498955a67c621b2D7f7f1afCcd5Dbd1E) | | BotradixDexOrderEngine | [0x1194767Edff4E934cdDbB559261fEdE19baEc3a2](https://basescan.org/address/0x1194767Edff4E934cdDbB559261fEdE19baEc3a2) | | BotradixDexMarketFacet | [0xAf0c1d7b11E8D0D90A2Cb591D601b02f861E1B94](https://basescan.org/address/0xAf0c1d7b11E8D0D90A2Cb591D601b02f861E1B94) | | BotradixDexIntegrationFacet | [0x2015603CF00329CE95EfF785Ec28d9501056C407](https://basescan.org/address/0x2015603CF00329CE95EfF785Ec28d9501056C407) | | BotradixDexOrderFacet | [0xb18145Dde11aae097AFBe722A11df102c4C2fE47](https://basescan.org/address/0xb18145Dde11aae097AFBe722A11df102c4C2fE47) | | BotradixDexPositionFacet | [0xC36d1735434ba694C2e9b4A1efB7A9d0c2B9F8e5](https://basescan.org/address/0xC36d1735434ba694C2e9b4A1efB7A9d0c2B9F8e5) | | BotradixDexCanonicalFacet | [0xed8bc62D385f04a5ee9feC62F4b0B8e8AB7050AF](https://basescan.org/address/0xed8bc62D385f04a5ee9feC62F4b0B8e8AB7050AF) | | BotradixDexVaultFacet | [0x1039f4bC44BCa16F568C25fB954B5F88389bC7e3](https://basescan.org/address/0x1039f4bC44BCa16F568C25fB954B5F88389bC7e3) | | BotradixDexOpenEngine | [0x2Ff92928880f4ec898Be3aA71429fac326f9C490](https://basescan.org/address/0x2Ff92928880f4ec898Be3aA71429fac326f9C490) | | BotradixDexManageEngine | [0x393a9C32b81F817987E7FE6B97Dd67582ED939f6](https://basescan.org/address/0x393a9C32b81F817987E7FE6B97Dd67582ED939f6) | | BotradixDexInvertEngine | [0x510F52C36A8c77346A0209DbD77C1865E0a5882B](https://basescan.org/address/0x510F52C36A8c77346A0209DbD77C1865E0a5882B) | #### Módulos y parámetros del router | Contrato o función | Dirección en BaseScan | |---|---| | BotradixDexIntentFacet | [0x7Cc3c4b13AC75C02283797ACa5e8253e65CB5974](https://basescan.org/address/0x7Cc3c4b13AC75C02283797ACa5e8253e65CB5974) | | BotradixDexAgentFacet | [0x4E73fa57C3458Cec0e09518C65A878859D939947](https://basescan.org/address/0x4E73fa57C3458Cec0e09518C65A878859D939947) | | BotradixDexAgentEditFacet | [0xFb63b83aDb8Aa6f34E305c599dDec9De6E154776](https://basescan.org/address/0xFb63b83aDb8Aa6f34E305c599dDec9De6E154776) | | BotradixDexRiskModule | [0xEdA449CF2F93C57D7B4D8984Fb60e28615C13615](https://basescan.org/address/0xEdA449CF2F93C57D7B4D8984Fb60e28615C13615) | | BotradixDexAdlModule | [0xc1733C0bf5df9AEDD8B1386818A5C19A7CBbeA57](https://basescan.org/address/0xc1733C0bf5df9AEDD8B1386818A5C19A7CBbeA57) | | BotradixDexListingModule | [0xc21Afd694cCFDB601725A596e2ba02C9bEc16A9F](https://basescan.org/address/0xc21Afd694cCFDB601725A596e2ba02C9bEc16A9F) | | BotradixDexGuardModule | [0xF4a7a7Cac96Da442367557798214667b3a928fb4](https://basescan.org/address/0xF4a7a7Cac96Da442367557798214667b3a928fb4) | | BotradixDexExitModule | [0x65d1f0dF2E078ba5c80bDB0091A941948160CeE4](https://basescan.org/address/0x65d1f0dF2E078ba5c80bDB0091A941948160CeE4) | | BotradixDexEmergencyModule | [0xe35353e8864559a8833510F23E62e7E41D4f133C](https://basescan.org/address/0xe35353e8864559a8833510F23E62e7E41D4f133C) | | BotradixDexKeeperBatchModule | [0x736372e8cbd577BbEd55860C1d82C5ab46CfA513](https://basescan.org/address/0x736372e8cbd577BbEd55860C1d82C5ab46CfA513) | | BotradixDexParamSpec | [0xeB2EdE33468721B8116dD135b70c286a51946f3A](https://basescan.org/address/0xeB2EdE33468721B8116dD135b70c286a51946f3A) | #### Margen cruzado | Contrato o función | Dirección en BaseScan | |---|---| | BotradixCrossMargin | [0xc1030c90C644Df556c5fe311601B55B84387f6d7](https://basescan.org/address/0xc1030c90C644Df556c5fe311601B55B84387f6d7) | | BotradixCrossSettlementFacet | [0xcD9dE1b0f9A7Fc5afE22cF4eb781198FF99FA851](https://basescan.org/address/0xcD9dE1b0f9A7Fc5afE22cF4eb781198FF99FA851) | | BotradixCrossAutomationFacet | [0xF18D2E033418DF345473FA696FF5c0aD1d504671](https://basescan.org/address/0xF18D2E033418DF345473FA696FF5c0aD1d504671) | | BotradixCrossDexCollateralFacet | [0x09E04102cE4Af4567F3f6698B23E3213cb723177](https://basescan.org/address/0x09E04102cE4Af4567F3f6698B23E3213cb723177) | | BotradixCrossDexBridgeFacet | [0x3744a1c6a8646a53404D530FF1e007d0c7af1E11](https://basescan.org/address/0x3744a1c6a8646a53404D530FF1e007d0c7af1E11) | | BotradixCrossDexReadFacet | [0xc1d7ccfCE31873129B08426C115C2B6f5D72eB78](https://basescan.org/address/0xc1d7ccfCE31873129B08426C115C2B6f5D72eB78) | | BotradixCrossModuleFacet | [0xA466E60cAe42E695Fb8f1Fc71d2f6816eE17E3dF](https://basescan.org/address/0xA466E60cAe42E695Fb8f1Fc71d2f6816eE17E3dF) | #### Lógicas, extensión y políticas de negocio | Contrato o función | Dirección en BaseScan | |---|---| | BotradixPairForgeLogic | [0x0744e9a3f4ad391414FA2d1443de2259bB1620e6](https://basescan.org/address/0x0744e9a3f4ad391414FA2d1443de2259bB1620e6) | | BotRadixRegistryLogic | [0xFBD00C93D96EF1a62EA1f017a6736927f5b98c2D](https://basescan.org/address/0xFBD00C93D96EF1a62EA1f017a6736927f5b98c2D) | | BotRadixAutomationLogic | [0xDC9604745165a2eA737485dB4232aa8555e0e529](https://basescan.org/address/0xDC9604745165a2eA737485dB4232aa8555e0e529) | | BotRadixAutomationExtension | [0x5256C7EbC2437F4820439D9754213B7759Db5dF5](https://basescan.org/address/0x5256C7EbC2437F4820439D9754213B7759Db5dF5) | | BotRadixUniswapV3Logic | [0xa9Ad93A078aB62830fbC7A4D9B9924bbBca2FAf1](https://basescan.org/address/0xa9Ad93A078aB62830fbC7A4D9B9924bbBca2FAf1) | | BotradixPairForgeParams | [0xD114ea201713EA7B9B5ea6244Fb850f0526Cc695](https://basescan.org/address/0xD114ea201713EA7B9B5ea6244Fb850f0526Cc695) | | BotradixRegistryPolicyV2 | [0x33F96413b548F1d7bbAca66E117424E4609E93b2](https://basescan.org/address/0x33F96413b548F1d7bbAca66E117424E4609E93b2) | ### Facetas conservadas en el despliegue El manifiesto también mantiene estas piezas anteriores, fuera de las 57 de la entrega. Se incluyen para poder seguir las rutas completas. | Contrato o función | Dirección en BaseScan | |---|---| | BotradixCrossCustodyFacet | [0x4aFd0DeB7647De9d6C5Eb34C58cf28300357E717](https://basescan.org/address/0x4aFd0DeB7647De9d6C5Eb34C58cf28300357E717) | | BotradixCrossQuantFacet | [0xC31e4A46C514129983A5086d79D444854e54087b](https://basescan.org/address/0xC31e4A46C514129983A5086d79D444854e54087b) | | BotradixLiquidityFacet | [0x9EaC5c10855d1C494b30Af3e9C28123fe98ef5B9](https://basescan.org/address/0x9EaC5c10855d1C494b30Af3e9C28123fe98ef5B9) | | BotradixPreviewFacet | [0xEfdCe096526849dc313F0B0581f19aBb1bF1C4bd](https://basescan.org/address/0xEfdCe096526849dc313F0B0581f19aBb1bF1C4bd) | | BotradixReadAccountFacet | [0xdD1D8aB402FCED0b2DbD02b9D0D7783f54909B81](https://basescan.org/address/0xdD1D8aB402FCED0b2DbD02b9D0D7783f54909B81) | | BotradixConstantsFacet | [0xe65314C1ae2FE001d60Ad49d017a4869A30cB4a2](https://basescan.org/address/0xe65314C1ae2FE001d60Ad49d017a4869A30cB4a2) | | BotradixProviderRegistryFacet | [0x5B815ef9c353b62Ca1d5885077a8D7C19B5269F8](https://basescan.org/address/0x5B815ef9c353b62Ca1d5885077a8D7C19B5269F8) | ## Contacto y textos relacionados Comunica problemas de seguridad a [support@botradix.com](mailto:support@botradix.com), con el asunto **Security**, la red, la dirección afectada y los pasos para reproducir el problema. Incluye solo información necesaria para investigarlo; nunca claves privadas, frases semilla ni credenciales. Consulta los [Términos, secciones 21–26](https://botradix.com/terms), sobre protocolo, salida, poderes administrativos, pagos diferidos, parámetros y vuelta atrás, y la página de [Riesgos](https://docs.botradix.com/es/risks/). Esta explicación del mecanismo no elimina esos riesgos. --- # Salir sin la web > Cómo funciona BotradixSalida: petición, ejecución propia a las 24 horas, retiros y cancelación de órdenes, con sus límites. Source: https://docs.botradix.com/es/exit/ BotradixSalida ofrece funciones para pedir la salida del DEX, ejecutar tu propia salida, retirar fondos disponibles y cancelar órdenes sin usar la web de BotRadix. Las funciones de tu cuenta toman la wallet que envía la transacción como titular; no permiten elegir otro destinatario. El contrato de salida no guarda tu colateral: se comunica con el router y los pagos salen de CrossMargin hacia tu wallet. > [!CAUTION] > Usa solo la dirección `0x43473B3684ccB5d9d57D119f2A6bc7B9B1f5EEe5`, en Base. Escríbela tú en basescan.org o compárala carácter a carácter; no sigas direcciones ni enlaces recibidos por mensajes, anuncios o redes, aunque digan venir de BotRadix. En la pestaña **Contract**, BaseScan debe mostrar el código de esa dirección como verificado; si no lo muestra, no continúes. Esta salida no necesita tu frase de recuperación ni tu clave privada: no las compartas con nadie. > [!IMPORTANT] > Esta guía describe el mecanismo, no el estado de una cuenta ni la configuración del router en este momento. Los plazos y límites son los del router para el que se desplegó Salida; consulta sus lecturas antes de actuar. **No hay un plazo garantizado de cierre ni de cobro.** ## Paso a paso Resumen de la salida completa. Cada paso se explica con detalle en las secciones de abajo; los nombres son los del código verificado de BotradixSalida (inglés / español, hacen lo mismo). 1. **Abre la Salida en BaseScan.** En **basescan.org**, escribe tú la dirección `0x43473B3684ccB5d9d57D119f2A6bc7B9B1f5EEe5` y comprueba en la pestaña **Contract** que el código aparece como verificado. 2. **Lee tu estado.** En **Contract → Read Contract**, abre `status` (o `estado`). En el campo `account` (o `cuenta`) pon la dirección de tu wallet y pulsa **Query**. Comprueba que `forwarder` es la dirección de Salida y anota `requestedAt`, `openPositions` y `openOrders`. 3. **Conecta tu wallet.** En **Contract → Write Contract**, pulsa **Connect to Web3**. Usa la wallet titular de la cuenta, en **Base (chain ID 8453)** y con algo de **ETH en Base** para el gas. 4. **Pide la salida.** En Write Contract, `exitDex` (o `salirDelDex`), sin parámetros: pulsa **Write** y confirma en tu wallet. Tu cuenta deja de aceptar posiciones nuevas. Si no tenías posiciones ni órdenes, la salida puede terminar en esa misma transacción. 5. **Cancela tus órdenes, si `openOrders` es mayor que 0.** `cancelOrders` (o `cancelarOrdenes`); en el campo `ids` pon la lista de IDs de tus órdenes entre corchetes, por ejemplo `[123,456]` (cómo encontrarlos: sección 2). 6. **Espera el plazo.** El keeper de BotRadix puede cerrar tus posiciones antes. Si no, a partir de `selfExecutableAt`, **24 horas** después de la petición, puedes ejecutar tú la salida. Con una emergencia confirmada (`emergencyAt` distinto de 0) no hay espera, pero solo cierran las posiciones de mercados fijados. 7. **Ejecuta tu salida.** `executeMyExit` (o `ejecutarMiSalida`): el bloque sin campos intenta cerrar hasta **8** posiciones; el de `maxPositions` (o `maxPosiciones`) admite de **1 a 16**. Repite mientras `openPositions` sea mayor que 0 y haya precios válidos. **Antes de confirmar, sube a mano el límite de gas en tu wallet a 8.000.000** (16.000.000 si usas `maxPositions` 16): con el límite que calcula la wallet la transacción puede terminar bien sin cerrar ninguna posición, porque el contrato salta los cierres para los que no queda gas. Solo pagas el gas que se usa. 8. **Retira todo.** Con `openPositions` en 0 y sin órdenes, `withdrawAll` (o `retirarTodo`), sin parámetros. Comprueba en la transacción las transferencias de USDC y BAQ a tu wallet y vuelve a leer `status`. Si hay una pausa de retiros, repite cuando termine. 9. **Si algo revierte o no avanza**, no repitas la misma llamada: lee `status` y busca tu caso en [Si revierte o no avanza](#si-revierte-o-no-avanza). Si no encuentras la causa, guarda el hash y escribe a [support@botradix.com](mailto:support@botradix.com). ¿Quieres anular la petición en lugar de salir? Usa `cancelExit` (o `cancelarSalida`), sin parámetros. Nada de esto garantiza un plazo de cierre ni de cobro: depende de precios, órdenes, deudas, pausas y liquidez (Términos, sección 22). ## Antes de empezar 1. Abre [BotradixSalida en basescan.org](https://basescan.org/address/0x43473B3684ccB5d9d57D119f2A6bc7B9B1f5EEe5#code). Comprueba la dirección completa, `0x43473B3684ccB5d9d57D119f2A6bc7B9B1f5EEe5`, y que la pestaña **Contract** muestra el código como verificado. 2. **Antes de conectar o enviar nada**, entra en **Contract → Read Contract**. Abre `status` (alias `estado`), introduce la dirección de tu wallet en `account` (o `cuenta`) y pulsa **Query**. En la tupla devuelta, `forwarder` debe ser **la dirección de Salida anterior**. Si es cero, distinta o la lectura falla, no continúes por esta Salida: revisa la dirección y la configuración del router. Consulta también `ROUTER()` y contrástalo con las [direcciones oficiales](https://docs.botradix.com/es/security-contracts/). 3. Configura tu wallet en **Base mainnet, chain ID 8453**, con **ETH en Base para el gas**. Usa la wallet titular de las posiciones y el colateral; las funciones de tu cuenta actúan sobre quien firma. 4. En la misma dirección de Salida, abre **Write Contract**, pulsa **Connect to Web3**, elige tu wallet y comprueba la cuenta conectada y la red. Conectar no ejecuta la salida. 5. Para cada acción de abajo, abre el bloque con ese nombre, rellena solo sus parámetros, pulsa **Write** y confirma la transacción en tu wallet. Abre el hash, espera su confirmación y vuelve a consultar `status(tuDirección)` en **Read Contract**. Repite la comprobación de `forwarder` antes de nuevas acciones; una lectura anterior no impide cambios posteriores del router. Las lecturas no cambian el estado ni requieren una transacción. Las fechas son marcas Unix en **segundos**, no cuentas atrás ni horas locales. | Campo de `status(tuDirección)` | Cómo interpretarlo | |---|---| | `requestedAt` | Cero: no hay petición pendiente. Un valor distinto de cero: fecha de la petición. | | `selfExecutableAt` | Fecha ordinaria a partir de la que puedes ejecutar tu salida; requiere petición previa. En emergencia confirmada se omite la espera, aunque este campo siga mostrando la fecha ordinaria. | | `openPositions`, `openOrders` | Cuántas posiciones y órdenes quedan. No son listas de IDs. | | `withdrawalsPaused`, `withdrawalsPausedUntil` | Si el retiro está pausado y cuándo termina la pausa. | | `emergencyChallengeAt`, `emergencyAt` | El primero indica un desafío; solo `emergencyAt != 0` indica emergencia confirmada. | | `emergencyPending`, `unsettledAccounts`, `distributionOpenedAt` | Liquidación pendiente de tu cuenta, cuentas pendientes globalmente y apertura del reparto (`0`: aún no abierto). | | `emergencyClaimUSDC`, `deferredUSDC` | Reclamación de emergencia y pago diferido; no equivalen a dinero libre ya cobrado. | ## Las funciones de tu cuenta Las funciones tienen alias en español e inglés que siguen el mismo camino. | Acción | Nombre en español | Nombre en inglés | |---|---|---| | Pedir la salida | `salirDelDex()` | `exitDex()` | | Ejecutar tu salida | `ejecutarMiSalida()` o `ejecutarMiSalida(uint256)` | `executeMyExit()` o `executeMyExit(uint256)` | | Retirar lo disponible | `retirarTodo()` | `withdrawAll()` | | Cancelar órdenes propias | `cancelarOrdenes(uint256[])` | `cancelOrders(uint256[])` | | Cancelar la petición de salida | `cancelarSalida()` | `cancelExit()` | Los valores de retorno descritos abajo son los del contrato. **Un recibo con `Success` no suele mostrar esos valores ni demuestra que hayas retirado todo**: comprueba las lecturas de `status` y las transferencias a tu wallet. `SalidaUsada` indica la acción enviada, no que el proceso haya terminado. ### 1. Pedir la salida En **Write Contract**, usa `exitDex()` o `salirDelDex()`, sin parámetros. Registra la petición y bloquea nuevas aperturas de la cuenta. Si no hay posiciones ni órdenes abiertas, intenta completar la retirada en esa misma transacción, sujeto a los demás controles. Repetir una petición pendiente conserva la fecha original; no reinicia las 24 horas. Devuelve `1` si completó la salida en esa transacción y `0` si sigue pendiente. Comprueba `requestedAt`, `selfExecutableAt`, `openPositions` y `openOrders`. Un `0` no es por sí solo un fallo: continúa con las órdenes y posiciones pendientes. Un `1` no garantiza haber cobrado pagos diferidos sin respaldo ni reclamaciones aún no pagadas. El keeper puede cancelar órdenes y cerrar posiciones usando precios válidos observados **en el instante de la petición o después**. No se promete que lo haga en segundos. Durante la espera siguen existiendo riesgo de precio, funding y liquidación. ### 2. Cancelar órdenes pendientes Los IDs que pide esta función son los de los eventos `DexOrderCreated` del router, la dirección que devuelve `ROUTER()`. En BaseScan, abre esa dirección y busca en sus **Events** los `DexOrderCreated` de tu wallet: en ese evento, el primer valor indexado es el ID de la orden, el segundo la wallet titular y el tercero el `pairId`. Copia solo los IDs de orden, nunca el `pairId`. Vuelve a **Write Contract de Salida**, abre `cancelOrders` o `cancelarOrdenes` y pega en `ids` la lista, por ejemplo `[123,456]` **sustituyendo esos números por tus IDs reales**. No necesita precios ni devuelve un valor. Comprueba que `openOrders` baja. Una orden tuya que ya estaba ejecutada o cancelada se ignora; una orden de otra wallet o un ID que no sea tuyo hace revertir la transacción completa. Cancelar órdenes no cierra por sí solo todas las posiciones. La función de ejecución propia no enumera ni cancela automáticamente todas tus órdenes de entrada: revisa `openOrders` y cancela las que queden para poder completar la salida y liberar sus reservas. ### 3. Ejecutar tu salida a partir de las 24 horas Si sigue pendiente, consulta `status(tuDirección)` y usa `executeMyExit` o `ejecutarMiSalida` en **Write Contract** una vez alcanzado `selfExecutableAt`, **24 horas después de la petición**. En una emergencia confirmada (`emergencyAt != 0`) no se exige esa espera, pero sigue haciendo falta pedir la salida con `exitDex()`; abrir un desafío no basta. BaseScan muestra dos versiones con el mismo nombre: el bloque **sin campos** intenta cerrar hasta **8 posiciones**; el que tiene `maxPositions` (o `maxPosiciones`) permite introducir una tanda de **1 a 16**. El gas disponible puede reducir lo procesado. Puede ser necesario repetir llamadas. Para un mercado no congelado, las dos patas del precio deben estar en sesión abierta, haberse observado en el instante de la petición o después, tener como máximo **10 minutos** de antigüedad, no estar fechadas en el futuro y cumplir sus límites de confianza. Un mercado congelado utiliza su precio fijado. **En emergencia solo se cierran posiciones de mercados congelados.** Las posiciones sin precio utilizable se omiten y permanecen abiertas. Devuelve `(cerradas, pendientes, terminada)`: posiciones cerradas en esta llamada, posiciones que siguen abiertas y `1` si completó la salida (`0` si no). Revisa `status(tuDirección)` después de cada tanda. Repite mientras queden posiciones y se cumplan las condiciones de precio; si no hay progreso, consulta las causas de abajo. Si quedan órdenes, deudas, una pausa efectiva o una liquidación de emergencia pendiente, cerrar la última posición puede no completar el retiro. **En emergencia, termina con `withdrawAll()`**, aunque ya no queden posiciones. Llegar a las 24 horas habilita una llamada, no dispara una transacción ni garantiza disponer de precios o fondos. ### 4. Retirar lo disponible Cuando `openPositions` sea `0`, cancela antes las órdenes que queden y usa `withdrawAll()` o `retirarTodo()` en **Write Contract**, sin parámetros. No necesita precios ni una petición de salida previa. Con posiciones abiertas revierte con `DexPositionsOpen`. Intenta liquidar y cobrar lo que corresponda en emergencia, reclamar los pagos diferidos que ya tengan respaldo y retirar el USDC libre y BAQ disponibles a la wallet titular. No devuelve un valor: comprueba las transferencias de USDC y BAQ a tu wallet en esa transacción y el nuevo estado. Una transacción correcta puede reflejar una retirada parcial o de importe cero; no demuestra por sí sola que no quede nada pendiente. Durante una pausa, el router emite `DexExitAwaitingWithdrawal` y detiene el retiro **sin que necesariamente revierta la transacción**. Repite cuando termine la pausa. Las reservas de órdenes no se retiran; la deuda cruzada o una liquidación pendiente también pueden impedir completar el proceso. Un pago diferido sin respaldo no se convierte en saldo retirable por llamar a esta función. En emergencia, el reparto requiere que no quede ninguna posición abierta en todo el DEX y que todas las cuentas estén liquidadas. Si `distributionOpenedAt` sigue en `0` o queda una reclamación, vuelve a llamar cuando se cumplan esas condiciones; puede haber un reparto parcial y un resto diferido. ### Cancelar la petición Si quieres anular una petición pendiente, usa `cancelExit()` o `cancelarSalida()`, sin parámetros, en **Write Contract**. No devuelve un valor: comprueba que `requestedAt` vuelve a `0`. Quita el bloqueo de aperturas de esa petición; no elimina una emergencia ni otros bloqueos del protocolo. No restaura posiciones ya cerradas ni órdenes canceladas, y no revierte transacciones confirmadas. Si después pides otra salida, comienza una nueva espera ordinaria. ## Si revierte o no avanza Si BaseScan o la wallet avisan de que la llamada revertiría, revisa la causa antes de firmar. Una transacción confirmada como fallida no conserva cambios de esa llamada, pero consume gas. No repitas sin cambiar la condición que la impide. Salida reenvía la llamada al router: si el código del router no aparece verificado en BaseScan, el motivo del error puede mostrarse como un código hexadecimal en lugar de un nombre. Las lecturas de `status` y `market` te dicen en qué situación estás. | Situación | Qué hacer | |---|---| | Fallaría `executeMyExit()` o `cancelExit()` y `requestedAt` es `0` | No hay petición pendiente. Si quieres salir y quedan posiciones, pide antes la salida con `exitDex()`. Si la salida ya terminó, no necesitas cancelarla. | | Fallaría `executeMyExit()` antes de `selfExecutableAt` | Espera a esa fecha, salvo emergencia confirmada (`emergencyAt != 0`). | | `withdrawAll()` revierte con `DexPositionsOpen` | Quedan posiciones: pide la salida si hace falta, ciérralas con `executeMyExit()` cuando proceda y vuelve a leer el estado. | | Fallaría cualquier función de tu cuenta sin otra causa visible | Revisa que `forwarder` sea esta dirección de Salida, la cuenta conectada y, en `cancelOrders`, que todos los IDs sean de órdenes de tu wallet. Añadir gas no lo arregla. | | `DexExitAwaitingWithdrawal` o `withdrawalsPaused == true` | Es una espera de retiro, no necesariamente un revert. Consulta `withdrawalsPausedUntil` y reintenta el retiro después de la pausa. | | `withdrawAll()` se confirma pero no llega todo | Puede quedar una pausa, órdenes con fondos reservados, deuda cruzada, una liquidación pendiente o un pago diferido sin respaldo. Revisa `openOrders`, `deferredUSDC`, `emergencyPending` y la pausa; si las lecturas no lo explican, comunica el hash a soporte. | | Cero posiciones cerradas, o `terminada == 0` | Puede faltar precio válido, haber poco gas para otra posición, órdenes, deuda o liquidación pendiente. Consulta los contadores y el mercado; en emergencia puede faltar fijarlo. Una llamada exitosa no fuerza esas condiciones. | | Falta de gas | Comprueba ETH en Base y la estimación. Para ejecución propia, prueba una tanda menor, por ejemplo `maxPositions = 1`; para listas de órdenes, usa lotes más pequeños. | | Fallaría una función «de todos» | El desafío o la emergencia no están en el estado requerido o su plazo no se ha cumplido. Vuelve a leer `status` (`emergencyChallengeAt`, `emergencyAt`) y `market(pairId)` (`challengeOpenedAt`, `settleAfter`, `frozenKind`) antes de repetir. | | Fallaría `confirmEmergency` con una lista de mercados | Vuelve a obtener la lista completa y ascendente de `marketsWithPositions()`; no inventes IDs ni uses una lista recortada. | | Fallaría `settleMarket` aunque se cumpla `settleAfter` | Puede faltar una observación con la que fijar el precio: el plazo cumplido no crea un precio. Revisa `market(pairId)` y comunica el problema. | Si no puedes identificar la causa, conserva el hash y el error visible y consulta [support@botradix.com](mailto:support@botradix.com). No hay garantía de que esperar o repetir la misma llamada permita completarla. ## Pausas, falta de precios y emergencia Con las reglas del router para el que se desplegó Salida, cada pausa de retiros caduca a las 72 horas, exige 24 horas sin pausa antes de la siguiente y no rige en emergencia confirmada. Aun después de caducar, pueden quedar otros impedimentos al cobro. Las funciones **«de todos»** también están en **Write Contract de Salida**. Cualquiera puede pagar el gas para llamarlas cuando se cumplan sus condiciones. Los resultados y pagos corresponden a cada titular; enviarlas no da derecho a cobrar fondos ajenos. No se activan automáticamente al vencer las 24 horas de tu petición. | Función en inglés / alias en español | Condiciones y resultado | |---|---| | `openEmergencyChallenge()` / `abrirDesafioEmergencia()` | Abre el desafío público de **72 horas** si hay posiciones en el DEX y aún no hay emergencia. Lee `emergencyChallengeAt`. | | `confirmEmergency(markets)` / `confirmarEmergencia(mercados)` | Tras las 72 horas, obtén en **Read Contract** la lista `bytes32[]` **completa y ascendente** de `marketsWithPositions()` / `mercadosConPosiciones()` y pégala en `markets` (o `mercados`) de **Write Contract**. Devuelve `true` si activa la emergencia. Una observación de USDC o de un mercado con posiciones desde la apertura, incluso con sesión cerrada, anula el desafío y devuelve `false`. Comprueba `emergencyAt`. | | `fixEmergencyMarkets(markets)` / `fijarMercadosEmergencia(mercados)` | En emergencia, fija los mercados con posiciones que falten; devuelve cuántos fijó. Usa los IDs de mercados de la lectura anterior y repite si el gas dejó trabajo pendiente. Precio y funding se fijan al instante de la emergencia, aunque la fijación se complete después. | | `challengeMarket(pairId)` / `desafiarMercado(pairId)` | Abre el desafío de **3 días** de un mercado con posiciones y aún no congelado. `pairId` es el número del par, no el `marketId` de tipo `bytes32`. Lee `market(pairId)` / `mercado(pairId)`, incluidos `challengeOpenedAt` y `settleAfter`. | | `settleMarket(pairId)` / `liquidarMercado(pairId)` | Desde `settleAfter`, sin observaciones desde el desafío, congela el mercado al último precio observado y fija su funding. Devuelve `true` al congelarlo; una observación posterior anula el desafío y devuelve `false`. Comprueba `frozenKind` y `frozenPriceX18` en `market`. | | `closeFrozen(positions, orders)` / `cerrarCongeladas(posiciones, ordenes)` | Recibe dos listas de IDs, cierra posiciones de mercados congelados y cancela sus órdenes; en emergencia puede cancelar cualquier orden. Devuelve `(posiciones cerradas, órdenes canceladas)`. Puede requerir tandas; los resultados quedan en las cuentas de sus titulares. | | `settleAccounts(accounts)` / `liquidarCuentas(cuentas)` | En emergencia, liquida las cuentas indicadas sin posiciones ni órdenes; devuelve cuántas liquidó. Ganancia neta: reclamación. Pérdida neta: efectivo y después respaldo comprometido en BAQ. Las cuentas aún no liquidables se omiten. | | `payEmergencyClaims(accounts)` / `cobrarReparto(cuentas)` | Sin posiciones en todo el DEX y con todas las cuentas liquidadas, abre el reparto y abona la parte correspondiente a cada cuenta en CrossMargin. Devuelve el importe total pagado, no el número de cuentas; `0` puede significar que el reparto aún no puede abrirse. Cada titular termina con `withdrawAll()` para retirarlo a su wallet. | La emergencia confirmada es definitiva para este DEX y detiene el trading; el administrador puede declararla sin el desafío público. El reparto aplica a todos el mismo porcentaje fijado: el menor entre el 100 % y la liquidez disponible (vault, seguro y emergencia, excluidas las reservas para pagos diferidos anteriores) dividida por las reclamaciones, sujeto a redondeo. Lo no cubierto queda diferido, sin plazo garantizado de pago. Los desafíos, las tandas y el reparto necesitan transacciones; ningún reloj los ejecuta por sí solo. ## Dependencias de esta salida BotradixSalida no tiene administrador ni mecanismo de actualización propio, pero **depende del router y de CrossMargin**. El router debe reconocerlo como `forwarder`. Mientras la configuración esté abierta, la administración puede sustituirlo o desconectarlo mediante `setDexExitForwarder(address(0))` y puede cambiar la lógica que procesa la salida sin aviso previo obligatorio. Una vuelta a una versión anterior del router puede dejar Salida sin uso aunque su dirección siga existiendo. Tras el sellado previsto por este código, la Salida ya no se puede desconectar y los módulos del router solo se pueden cambiar mediante la puerta de aviso previo, con un mínimo comprometido de 72 horas o más. Esto describe las reglas del sellado, no afirma que esté activo. Los cambios administrativos son transacciones públicas en Base. Salir sin la web elimina la dependencia de esa interfaz, pero no la de la red Base, los precios, el código desplegado, las condiciones de la cuenta o la liquidez. Consulta [Seguridad y contratos](https://docs.botradix.com/es/security-contracts/), [Riesgos](https://docs.botradix.com/es/risks/) y los [Términos §22: salida independiente, pausas y emergencia](https://botradix.com/terms?lang=es#dex-salida), junto con las secciones 23–24 sobre administración y pagos diferidos. --- # Cómo leer los proxies de BotRadix > Seguir facetas, rutas modulares, CrossMargin y controles de negocio sin asumir EIP-1967. Source: https://docs.botradix.com/es/proxies/ Los proxies y el router de BotRadix **no usan EIP-1967**. El router tampoco ofrece el loupe de EIP-2535. Que un explorador no detecte un proxy, o que una ranura estándar esté vacía, no demuestra que la lógica sea fija. Hay que seguir las lecturas propias de cada familia. ## Dirección, estado y lógica El anfitrión o proxy conserva su dirección y estado. Al delegar una función, ejecuta código de otra dirección sobre ese estado. Una implementación puede cambiar sin trasladar los fondos ni cambiar la dirección que ve el usuario. Para reconstruir una ruta, parte de las [direcciones oficiales](https://docs.botradix.com/es/security-contracts/), identifica el selector de la función y consulta los contratos en **el mismo bloque**. Conserva número y hash del bloque, direcciones, revisiones y hashes de código: mezclar lecturas anteriores y posteriores a una actualización puede producir una ruta que nunca existió. Una ABI de implementación ayuda a interpretar las funciones delegadas, pero las lecturas de estado y las transacciones de usuario corresponden al anfitrión. Llamar directamente a una implementación puede revertir o leer un estado distinto. Las lecturas de identidad que se indican expresamente sobre la implementación son una excepción. ## Router: facetas, núcleo de despacho y módulos El router combina una tabla del anfitrión, extensiones y un núcleo de despacho que puede dar prioridad al registro modular. Una faceta es una pieza de lógica a la que se dirige una función. | Lectura | Qué permite comprobar | |---|---| | `routerLifecycle()` en el router | Preparación, sello de configuración, época, manifiesto y propuesta pendiente | | `getFacetManifest()` en el router | Las 17 facetas del manifiesto y sus hashes de código | | `facetForSelector(bytes4)` en el router | La ruta del anfitrión para ese selector; por sí sola no refleja una sustitución del registro | | `dispatchLifecycle()` en el router | Dirección, hash de código, revisión y propuesta del núcleo de despacho | | `moduleRegistryInfo()` en el router | Modo de búsqueda, época, manifiesto, congelación, aviso y tamaño del registro | | `moduleRoute(bytes4)` en el router | Destino efectivo reportado para ese selector, identidad, revisión y origen de la ruta | | `TRADE_FACET()` y después `dexModule(0..12)` sobre esa faceta | Componentes internos del DEX a los que delega la faceta de trading | Con un núcleo que habilite el registro, una ruta modular puede tener prioridad sobre la ruta del anfitrión. En `moduleRoute()`, el origen `1` indica ruta fija o extensión, `2` registro y `3` registro que sustituye una ruta fija; `0` indica que no hay ruta efectiva. Un selector nuevo puede apuntar en la tabla del anfitrión al hub: ese hub revierte si no existe la ruta modular necesaria. Un núcleo que ignore el registro cambia esa interpretación; por eso se consulta también `dispatchLifecycle()` y el modo de búsqueda. Los eventos `DexExtensionInstalled` ayudan a reconstruir cambios de extensiones, pero un evento histórico no acredita la ruta vigente. Contrástalo con las lecturas del bloque elegido. Comprobar solo las 17 facetas deja fuera extensiones y sustituciones modulares. ## CrossMargin: ranura propia y módulos En el proxy de CrossMargin, `implementation()` devuelve la lógica y `lifecycle()` muestra el sello, propuesta, revisiones y hashes. La raíz de almacenamiento de su ciclo de vida es: ```text bytes32(uint256(keccak256("botradix.cross.proxy.v1")) - 1) ``` Se trata de Keccak-256 de Ethereum, no de SHA3-256. No es la ranura EIP-1967. El primer campo es la dirección de implementación; comparte una palabra con el booleano de sellado, por lo que no se debe interpretar toda la palabra como una dirección. Es preferible usar las funciones de lectura. Después consulta `implementationModules()` **en la dirección de implementación devuelta**, para identificar sus ocho piezas internas. Las consultas de cuenta siguen haciéndose al proxy. Consulta además `moduleRegistryInfo()` y `moduleRoute(selector)` sobre el proxy para distinguir esas piezas de las rutas del registro modular. Sellar el proxy y congelar todas las rutas o parámetros son cuestiones diferentes. ## Proxies de negocio: control separado El hub del oráculo (PairForge), Registry, Automation y el adaptador de Uniswap usan un contrato de control separado. La misma familia se emplea en otras piezas de negocio, como CrossVerifier. 1. Consulta `BUSINESS_CONTROL()` en el anfitrión. 2. En el control devuelto, consulta `current()`, `revision()` e `isSealed()` para conocer la lógica, su revisión y el sello de esa vía. 3. Consulta `openPolicyLifecycle()` en el anfitrión para la política de actualización correspondiente. Una política y la lógica de negocio no son la misma pieza. 4. Cuando el anfitrión exponga el registro modular, consulta también `moduleRegistryInfo()` y `moduleRoute(selector)` en él. La lógica principal por sí sola no describe todas las funciones. ## Ejemplo de referencia **Instantánea documental: 11 de octubre de 2026.** Estas relaciones sirven para orientarse, no sustituyen una lectura actual: | Punto de partida | Lectura | Resultado en la referencia | |---|---|---| | Router `0x740E207d90ec9D82fce040F8DA0268dB761F364E` | `dispatchLifecycle()` | BotradixDispatchKernelV2 `0x95DC9EFbff26Acb8B9509d68dd73E712c4541093` | | CrossMargin `0x79ED1002F842DE2A9E25d353F2627206483b2b3B` | `implementation()` | BotradixCrossMargin `0xc1030c90C644Df556c5fe311601B55B84387f6d7` | | PairForge `0x55Ec5A8DFEb6ab71BCAE98D833b4E1d96a6c871C` | `BUSINESS_CONTROL()` | Control `0x255DdF4313FC5D547c3925748f30A8008676551f` | | Ese control de PairForge | `current()` | BotradixPairForgeLogic `0x0744e9a3f4ad391414FA2d1443de2259bB1620e6` | ## Qué acredita una verificación Verificar el código de un anfitrión no verifica automáticamente sus implementaciones, módulos, políticas o controles. Una ABI combinada tampoco prueba qué ruta estaba activa en un bloque. Para una comprobación completa se relacionan dirección, bytecode, fuentes reproducibles, rutas, autoridades y sellos de cada pieza. **Estado de publicación en la referencia indicada:** el código se publicará conjuntamente en BaseScan cerca del cierre. No se presupone que ya existan botones de lectura o escritura para todas las funciones. El mecanismo anterior también puede inspeccionarse con herramientas que dispongan de las ABI correctas, sin enviar transacciones. Lee [Seguridad y contratos](https://docs.botradix.com/es/security-contracts/) para interpretar OPEN, los límites de AvisoPrevio y el sellado por partes, y [Compilación reproducible](https://docs.botradix.com/es/reproducible-build/) para relacionar fuentes y bytecode. --- # Compilación reproducible > Receta con solc 0.8.37, hash de la entrada exacta y comprobaciones de fuentes, artefactos y código desplegado. Source: https://docs.botradix.com/es/reproducible-build/ Una compilación reproducible permite comprobar que unas fuentes y ajustes concretos producen los artefactos esperados. Es una comprobación de correspondencia; **no es una auditoría de seguridad** ni demuestra que una implementación siga activa. Para esto último hay que [leer las rutas de los proxies](https://docs.botradix.com/es/proxies/) en un bloque determinado. ## Compilador y ajustes La receta de referencia v2.2 utiliza: | Ajuste | Valor | |---|---| | Solidity | `solc 0.8.37+commit.f401782d` | | Lenguaje de entrada | `Solidity`, formato Standard JSON | | Optimizador | `enabled: true`, `runs: 200` | | Compilación mediante IR | `viaIR: true` | | EVM objetivo | `evmVersion: "paris"` | | Hash de metadatos en bytecode | `metadata.bytecodeHash: "none"` | | Dependencias de la entrada de referencia | OpenZeppelin `5.6.1`, incluidas con sus nombres de unidad originales | Este es el fragmento de ajustes que afecta a la receta. Para compilar se usa la entrada completa, incluidas las fuentes y `outputSelection`, sin reconstruirla a partir del fragmento: ```json { "optimizer": { "enabled": true, "runs": 200 }, "viaIR": true, "evmVersion": "paris", "metadata": { "bytecodeHash": "none" } } ``` ## Identificar la entrada exacta La entrada Standard JSON reúne el contenido de las fuentes y dependencias bajo sus rutas originales. Conserva nombres de archivo, nombres de unidades importadas, ajustes y versiones. No sustituyas dependencias por la versión más reciente ni combines fuentes de varias entregas. **Referencia documental: 11 de octubre de 2026.** La entrada `v22.standard-input.json` del paquete de referencia `20261011-145007` contiene 54 unidades. Su SHA-256, calculado sobre los bytes del archivo, es: ```text 54a204b3dd61ceb7196f84c7337927fbf5b3af5c721e6eac1319487da050ddf6 ``` Este hash identifica esa entrada concreta, no un paquete final aún por publicar. Cambiar comentarios o el formato del JSON cambia el hash del archivo aunque el bytecode pueda seguir siendo idéntico. La publicación deberá identificar su propia entrada y su SHA-256, junto con el resultado de la comparación de bytecode. **Estado de publicación:** las fuentes verificadas se publicarán conjuntamente en BaseScan cerca del cierre. La descarga pública de la entrada final y sus artefactos está pendiente; no se presenta aquí una URL de descarga que aún no está disponible. ## Reproducir sin publicar Con el compilador exacto ya instalado y la entrada completa disponible, trabaja en un directorio local. Estos comandos no envían transacciones ni publican código: ```bash solc --version sha256sum v22.standard-input.json solc --standard-json < v22.standard-input.json > v22.compiler-output.json ``` Comprueba que la versión incluye `0.8.37+commit.f401782d` y que el hash corresponde al archivo de la entrega que estás verificando. El hash anterior solo corresponde a la entrada de referencia indicada. Si una entrada tiene todas las fuentes embebidas, no necesita resolver importaciones por red. Comprueba además los errores del JSON de salida: el código de salida del proceso, por sí solo, no demuestra que Solidity haya compilado correctamente. ```python import json from pathlib import Path result = json.loads(Path("v22.compiler-output.json").read_text()) errors = [item for item in result.get("errors", []) if item.get("severity") == "error"] for item in errors: print(item.get("formattedMessage", item.get("message", ""))) assert not errors, "Solidity compilation failed" assert result.get("contracts"), "No contract output" print("Compilation completed; compare artifacts next") ``` Revisa también los avisos y conserva compilador, entrada, salida y hashes. No hace falta una wallet, una clave privada ni una clave de API para esta compilación local. ## Comparar los artefactos y el despliegue Compara por **nombre de unidad y nombre de contrato**, no solo por nombre de archivo de salida. Para fuentes idénticas deben compararse tanto `evm.bytecode.object` (creación) como `evm.deployedBytecode.object` (runtime), junto con ABI y disposición de almacenamiento cuando se evalúe una actualización. El runtime del compilador puede contener ubicaciones para valores `immutable` que el constructor fija al desplegar. La comprobación de una dirección debe resolver `immutableReferences`, argumentos de constructor y, si existen, referencias a librerías enlazadas. El código de creación y los argumentos del constructor tampoco son lo mismo. No descartes diferencias arbitrarias para forzar una coincidencia. `bytecodeHash: "none"` omite el hash de metadatos del bytecode; no significa que cualquier cambio de fuentes sea inocuo ni que desaparezca toda información de metadatos. Un cambio solo de comentarios puede conservar el código generado, pero hay que recompilar y comparar para demostrarlo. Cambiar lógica, literales o nombres usados para calcular identificadores puede cambiar el resultado. La comparación con código en cadena requiere indicar red, dirección y bloque, y tratar por separado anfitrión, implementaciones y módulos. Una coincidencia del proxy no acredita la lógica a la que delega. Consulta [Seguridad y contratos](https://docs.botradix.com/es/security-contracts/) para el alcance de las revisiones y los cambios posibles mientras las piezas estén OPEN. --- # Riesgos > Los riesgos del trading apalancado, la automatización y los contratos inteligentes, sin rodeos. Source: https://docs.botradix.com/es/risks/ Operar futuros perpetuos, sobre todo con apalancamiento, es de alto riesgo. Puedes perder todo el colateral que deposites. Esta página explica con palabras sencillas los principales riesgos de usar BotRadix. No es exhaustiva y no es asesoramiento financiero. > [!WARNING] > Opera solo con dinero que puedas permitirte perder. Los resultados pasados de cualquier estrategia o bot no garantizan resultados futuros. ## Riesgo de mercado y de apalancamiento - Los precios de los criptoactivos, las acciones, los índices, las materias primas y las divisas pueden moverse de forma brusca y rápida. - El apalancamiento multiplica tanto las ganancias como las pérdidas. A 100x, un movimiento del precio de menos del 1 % en tu contra liquida una posición aislada y se pierde todo su margen. - Los pares sintéticos combinan los movimientos de dos activos y pueden ser más volátiles que cada uno por separado. ## Riesgo de liquidación - Si tu margen cae al nivel de mantenimiento, tu posición se **liquida por completo**, en una única ejecución, y la pérdida es definitiva. - Con los valores de referencia de v2.2, una posición aislada pierde todo su margen al liquidarse (penalización ajustable). - En mercados rápidos, el precio puede superar tu stop loss o tu precio de liquidación antes de que se produzca una ejecución. - Retirar colateral y pagar funding acercan los precios de liquidación de las posiciones cruzadas. Consulta [Liquidación](https://docs.botradix.com/es/liquidation/). ## Riesgo de oráculo y de datos - Todos los precios que usa el DEX proceden del proveedor de datos PairForge. En Base los firman tres reporters que opera BotRadix, y se exige un quórum de 2 de 3. - Si las fuentes dan datos erróneos o los reporters fallan, los precios pueden ser inexactos o no estar disponibles. - Sin precios actuales, las acciones que los necesitan esperan: abrir y cerrar posiciones, las liquidaciones y los retiros mientras tengas posiciones cruzadas abiertas. - Un mercado puede cerrarse administrativamente (`SESSION_CLOSED`) cuando sus datos no son fiables; mientras esté cerrado, sus posiciones no pueden abrirse, cerrarse ni liquidarse por las vías ordinarias, salvo los procedimientos de congelación y emergencia, y el funding válido no se detiene por ello. - Si un mercado deja de recibir precios, cualquiera puede desafiarlo; tras 3 días sin precio se liquida a su último precio observado, que puede diferir del precio al que el activo cotiza en otros sitios. - Las órdenes se ejecutan al precio del oráculo, que puede diferir de los precios de otros exchanges. Consulta [Precios y oráculo](https://docs.botradix.com/es/oracle/). ## Riesgo de los contratos inteligentes - Los contratos pueden contener errores que causen pérdidas, incluida la pérdida de los fondos depositados. - Comprueba la verificación del código de cada dirección en BaseScan. No se ha publicado ningún informe de auditoría de terceros; verificar el código no acredita por sí solo su seguridad. - Base es una red de capa 2; la congestión, las caídas o los problemas en Base o en Ethereum pueden retrasar o impedir transacciones. ## Riesgo de administración y de centralización - Los contratos son **actualizables por BotRadix** con una única clave de administración. Los cambios del router pasan por una puerta de aviso previo cuyo aviso hoy es de **0 horas**; el contrato de margen cruzado que custodia el colateral y la lógica de negocio pueden actualizarse **al instante**. Forma parte de la fase actual de consolidación: está previsto sellar por componentes cuando el sistema haya demostrado su estabilidad. - Si robaran la clave de administración, el atacante podría actualizar el margen cruzado al instante. La vigilancia lo haría visible; no lo impediría. - El administrador puede pausar el DEX, poner mercados en modo de solo reducción, pausar los retiros (como mucho 72 horas seguidas), cambiar las comisiones, el margen de mantenimiento, el beneficio máximo, el crédito BAQ y otros parámetros dentro de los límites de los contratos, y retirar la liquidez libre del vault. Las claves de solo pausa también pueden pausar, pero nunca reanudar. - La **salida independiente** te permite salir desde BaseScan, pero depende de que se publiquen precios dentro de sus plazos (24 horas, 3 días, 72 horas) y, mientras los contratos estén abiertos, de que el contrato de salida siga conectado. Consulta [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/). - Los keepers, los ejecutores, el terminal y la API los opera BotRadix. Si no están disponibles, las órdenes en espera, el take profit, el stop loss y las liquidaciones pueden retrasarse. Consulta [Seguridad y contratos](https://docs.botradix.com/es/security-contracts/) y [Contratos inteligentes](https://docs.botradix.com/es/contracts/). ## Riesgo del vault y de capacidad - Los beneficios los paga el vault del protocolo. Cada posición tiene un **beneficio máximo**; por encima de él, un movimiento favorable adicional no aumenta tu ganancia. - **Desapalancamiento automático (ADL).** Cuando el vault está en riesgo, las posiciones ganadoras pueden reducirse o cerrarse antes, al precio del oráculo, aunque no lo hayas pedido, y pierdes la ganancia que pudiera venir después. Se aplica el tope y se liquida el funding; el neto se paga con la liquidez disponible y lo no cubierto queda diferido, así que no se garantiza cobrar al momento toda la ganancia bruta. Una posición con take profit respaldado válido no se cierra por este motivo. Con un vault pequeño, el ADL puede actuar tras movimientos relativamente moderados. - Cuando se alcanzan los límites de capacidad, pueden rechazarse posiciones nuevas o un mercado puede pasar a solo reducción. - Tras un salto de precio extremo, el vault y las reservas aún podrían no bastar; los beneficios no pagados se registrarían como pagos diferidos, no como saldo retirable, y solo podrían cobrarse si aportaciones o ingresos del vault reponen su respaldo, sin plazo ni garantía de cobro. En una emergencia, los beneficios se pagan a prorrata y lo que falte queda diferido. Consulta [Apalancamiento y margen](https://docs.botradix.com/es/margin/#beneficio-maximo). ## Riesgo de la wallet y de las claves - Cualquiera con acceso a tu wallet puede retirar tu colateral. Protege tu frase semilla y no la compartas nunca. - Un navegador comprometido que guarde tu clave de trading puede operar en tu nombre (no puede retirar). Revoca las claves de trading y de API que ya no uses. - Las transacciones en Base no pueden revertirse. ## Riesgo del trading automatizado - Los bots siguen su configuración de forma mecánica; pueden abrir posiciones perdedoras, acumular posiciones con DCA y seguir operando en condiciones adversas. - Los problemas de conexión, las caídas de los exchanges, los cambios en sus API o las órdenes rechazadas pueden impedir que un bot actúe en el momento esperado. - Un bot pausado o detenido por tu nivel de acceso, por un error o por ti no cierra sus posiciones abiertas. - En Uniswap, cada swap de un bot necesita una segunda firma de un servicio cofirmante de BotRadix y respeta límites de ritmo y una banda de seguridad del precio. Si no hay cofirmante disponible, los bots de Uniswap, incluidos sus stop-loss, esperan hasta que vuelva uno; ninguna banda garantiza ejecutar un stop loss. Consulta [Bot Quant](https://docs.botradix.com/es/quant/) y [Bot Grid](https://docs.botradix.com/es/grid/). ## Riesgo de exchanges de terceros Los bots en Hyperliquid o Uniswap operan en plataformas que BotRadix no controla. Sus reglas, comisiones, caídas o fallos, y la custodia de los fondos que tengas allí, son responsabilidad suya. ## Riesgo del token BAQ BAQ puede ser volátil y tener poca liquidez, y su precio puede bajar con fuerza, incluso perder la mayor parte de su valor. Su valor afecta a los límites de tus bots y a su crédito como colateral en el DEX. BAQ no es una participación en BotRadix y no paga dividendos ni rendimiento. Consulta [BAQ](https://docs.botradix.com/es/baq/). ## Riesgo legal, regulatorio y fiscal - La regulación de los derivados y de los criptoactivos varía según el país y puede cambiar. Eres responsable de usar BotRadix solo donde sea legal para ti. - Eres responsable de tus propias obligaciones fiscales; la exportación del historial puede ayudarte a llevar tus registros. - Lee los [Términos](https://botradix.com/terms) y la [Política de privacidad](https://botradix.com/privacy). --- # Preguntas frecuentes > Respuestas breves a las preguntas más habituales. Source: https://docs.botradix.com/es/faq/ ## General ### ¿Qué es BotRadix? BotRadix es una plataforma de trading con tres partes: el **BotRadix DEX**, un exchange de futuros perpetuos en Base en el que operas desde tu propia wallet; los **bots de trading** (Quant y Grid), que automatizan estrategias en el BotRadix DEX, Hyperliquid o Uniswap; y **BAQ**, el token de BotRadix. Consulta la [portada](https://docs.botradix.com/es/). ### ¿Necesito una cuenta? Para el DEX, no: basta con una wallet en Base. Los bots sí necesitan una cuenta de BotRadix. El registro de cuentas nuevas está cerrado temporalmente; las cuentas existentes pueden iniciar sesión con normalidad. ### ¿Qué wallets puedo usar? Cualquier wallet EVM compatible con la red Base, por ejemplo MetaMask, Rabby, Coinbase Wallet, OKX Wallet, Rainbow, Trust Wallet, Phantom o Brave Wallet. Las wallets de contrato inteligente que no pueden firmar permits depositan USDC con las transacciones clásicas de aprobación y depósito. ### ¿Hay app para el móvil? Sí, para Android, y se descarga desde botradix.com. Todavía no hay versión para iOS. Consulta [App móvil](https://docs.botradix.com/es/mobile/). ## BotRadix DEX ### ¿Qué puedo operar? 150 mercados perpetuos liquidados en USDC: 50 mercados cripto, 18 mercados multiactivo (acciones, índices, metales, gas natural, euro y libra) y 82 pares sintéticos cruzados. Consulta [Mercados](https://docs.botradix.com/es/markets/). ### ¿Qué puedo usar como colateral? USDC, que cuenta al completo, y BAQ, que añade un crédito limitado solo en margen cruzado y, con el código vigente, no se vende para cubrir pérdidas (sigue expuesto a su riesgo de precio). Consulta [Colateral](https://docs.botradix.com/es/collateral/). ### ¿Cuánto cuesta operar? Una comisión de apertura del 0,06 % (taker) o del 0,03 % (maker) más la comisión de servicio de BotRadix del 0,03 %, sin comisión de cierre, y un funding de hasta el 0,03 % cada 8 horas según la política operativa vigente, que se paga o se cobra. Son valores de referencia de v2.2 desplegada el 11-10-2026 y ajustables. La mayor parte del gas de la red la paga el protocolo. Consulta [Comisiones](https://docs.botradix.com/es/fees/). ### ¿Necesito ETH? Solo para las acciones que se envían desde tu wallet: retiros clásicos, depósitos de BAQ, aprobaciones, revocaciones y acciones de salida desde BaseScan. Las operaciones con tu clave de trading, los depósitos de USDC con permit, los retiros por firma y el permiso de ejecución no te cuestan gas. ### ¿Cuál es el apalancamiento máximo? Hasta 100x en el primer tramo de tamaño de cada mercado; las posiciones más grandes tienen máximos menores. La posición mínima es de 18 USDC en el catálogo de v2.2 (configuración de cada mercado). El mantenimiento también limita el apalancamiento máximo. Consulta [Apalancamiento y margen](https://docs.botradix.com/es/margin/#tramos-de-apalancamiento). ### ¿Hay un límite de beneficio? Sí. Cada posición tiene un beneficio máximo bruto: al lanzar la v2.2, 20 veces su tamaño para la exposición nueva, al que un largo solo llega si el precio se multiplica por 21. La exposición anterior conserva su tope. Consulta [Beneficio máximo](https://docs.botradix.com/es/margin/#beneficio-maximo). ### ¿Me pueden cerrar la posición sin pedirlo? Sí. La **liquidación** cierra posiciones al alcanzar el mantenimiento o quedar por debajo; el **ADL** puede reducir o cerrar ganadoras sin TP respaldado válido cuando falta capacidad en el vault. También hay cierres tras congelar un mercado o declarar una emergencia, con sus propias reglas. Se aplican el tope y el funding, y el beneficio que no cubra la liquidez disponible puede quedar diferido sin plazo ni garantía de pago. Consulta [Apalancamiento y margen](https://docs.botradix.com/es/margin/) y [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/). ### ¿Cuántas posiciones y órdenes puedo tener? Hasta 128 posiciones abiertas, posiciones cruzadas en hasta 32 mercados y 256 órdenes de entrada abiertas por wallet. Consulta [Límites por cuenta](https://docs.botradix.com/es/orders/#limites-por-cuenta). ### ¿Por qué se rechazó mi orden? El terminal comprueba cada orden antes de que la firmes y muestra el motivo. Las causas más habituales son un movimiento del precio mayor que tu deslizamiento, un precio que no está actualizado, un tramo de apalancamiento o un límite de interés abierto, la capacidad del vault, un margen insuficiente, o un mercado cerrado o en solo reducción. Consulta [Errores, límites y versionado](https://docs.botradix.com/es/api-errors/). ### ¿Por qué no puedo retirar? Un retiro debe dejar tu cuenta saludable. Con posiciones cruzadas abiertas, necesita precios actuales y margen libre suficiente; si el importe es demasiado alto, el terminal muestra **"Margen libre insuficiente para retirar esa cantidad. Retira menos o cierra posiciones."**: retira menos o cierra posiciones antes. Los retiros también pueden pausarse por seguridad, como mucho 72 horas seguidas. Consulta [Retirar](https://docs.botradix.com/es/collateral/#retirar). ### ¿Qué pasa si me liquidan? Toda la posición se cierra en una única ejecución. Con los valores de referencia de v2.2, una posición aislada pierde su margen (penalización ajustable, repartida 90 % al vault y 10 % a la reserva BAQ); una liquidación cruzada se paga con tu colateral y no tiene penalización adicional. Consulta [Liquidación](https://docs.botradix.com/es/liquidation/). ### ¿Puede BotRadix acceder a mis fondos? Tu clave de trading, tus sesiones de trading y tus claves de API no pueden retirar, y con el código actual el administrador no tiene ninguna función para mover tu colateral a otra dirección. Sin embargo, mientras los contratos estén abiertos BotRadix puede actualizar al instante el contrato de margen cruzado que custodia el colateral (los cambios del router pasan por una puerta de aviso previo, hoy de 0 horas), y los retiros pueden pausarse hasta 72 horas seguidas. Lee [Seguridad y contratos](https://docs.botradix.com/es/security-contracts/) y [Riesgos](https://docs.botradix.com/es/risks/) antes de depositar. ### ¿Qué pasa si los servicios de BotRadix se detienen? Tus posiciones y tu colateral están registrados en Base, y puedes salir sin BotRadix desde BaseScan: pides tu salida y, si BotRadix no la ejecuta en 24 horas, cierras tú tus posiciones con un precio observado desde tu petición, de como mucho 10 minutos, con las dos patas en sesión abierta y dentro de su confianza. Para una emergencia pública hay que abrir un desafío mientras haya posiciones y esperar 72 horas sin observaciones de USDC ni de los mercados con posiciones; entonces las posiciones se cierran a precios fijados y los beneficios se pagan a prorrata con la liquidez disponible. Durante la fase abierta el administrador puede cambiar estas reglas sin aviso previo obligatorio. Consulta [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/). ### ¿Están auditados los contratos? Los contratos pasaron una revisión interna antes de v2.2. Comprueba la verificación del código de cada dirección en BaseScan; no sustituye una auditoría. No se ha publicado ningún informe de auditoría de terceros. Consulta [Verificación y auditorías](https://docs.botradix.com/es/contracts/#verificacion-y-auditorias). ## Bots ### ¿Dónde pueden operar los bots? En el BotRadix DEX, en Hyperliquid (con una agent wallet dedicada) y en Uniswap sobre Base (spot). Consulta [Conectar exchanges](https://docs.botradix.com/es/exchanges/). ### ¿Necesito BAQ para usar bots? En el BotRadix DEX son gratis hasta 2 bots Quant, 6 pares y 1 Grid. En Hyperliquid y Uniswap necesitas BAQ por valor de al menos 20 USD en tu wallet vinculada, y Grid necesita el nivel de 100 USD. Consulta [Niveles de acceso](https://docs.botradix.com/es/baq/#niveles-de-acceso). ### ¿BotRadix custodia mis fondos cuando opera un bot? En Hyperliquid, los fondos permanecen en tu cuenta y la agent wallet tiene permisos de trading. En Uniswap, los swaps usan los límites autorizados por la wallet y la cofirma exigida. En el BotRadix DEX, el colateral queda en contratos de Base; el código vigente impide que una clave API autorice retiradas. No es una garantía absoluta de custodia: BotRadix puede cambiar la lógica de sus contratos abiertos con aviso de 0 h, durante la consolidación previa al futuro sellado por componentes. ### ¿Qué pasa con mis posiciones si detengo un bot? Siguen abiertas. Detener o pausar un bot nunca cierra sus posiciones automáticamente; usa **Cerrar todo** (Quant) o **Cerrar inventario** (Grid) si quieres salir. ### ¿Puede un bot perder dinero? Sí. Los bots aplican sus reglas de forma mecánica y pueden perder dinero, a veces rápido. Consulta [Riesgos](https://docs.botradix.com/es/risks/#riesgo-del-trading-automatizado). ### ¿Qué pasa si baja el valor de mi BAQ? Para el acceso a bots, se ajustan tus límites: los Quant que sobren se pausan y los Grids que sobren se detienen, sin cerrar posiciones solo por el cambio de nivel. Si además usas BAQ como colateral del DEX, una bajada de precio puede reducir su crédito de margen y acercar las posiciones cruzadas a la liquidación. ## Desarrolladores ### ¿Hay una API? Sí. La API v1 del DEX ofrece datos de mercado, datos de la cuenta, órdenes y webhooks, con autenticación por claves de API. Consulta [API: visión general y autenticación](https://docs.botradix.com/es/api/). ### ¿Hay WebSocket o un flujo en tiempo real? Todavía no. El endpoint de streaming está definido, pero no activado. Usa los endpoints de lectura para los datos de mercado y los webhooks para los eventos de la cuenta. Consulta [Tiempo real y webhooks](https://docs.botradix.com/es/api-realtime/). ## Cuenta y seguridad ### He perdido mi contraseña o mi dispositivo de 2FA. ¿Qué hago? Todavía no hay un restablecimiento automático. Escribe a support@botradix.com desde el email de tu cuenta. Consulta [Soporte](https://docs.botradix.com/es/support/). ### ¿Cómo elimino mi cuenta? Desde **Configuración**, cuando no quede ningún bot, señal abierta, ciclo pendiente ni inventario de grid. Consulta [Eliminar tu cuenta](https://docs.botradix.com/es/security/#eliminar-tu-cuenta). ### ¿Cómo informo de un error o de un problema de seguridad? Los errores, a través de soporte; los problemas de seguridad, en privado a support@botradix.com con el asunto "Security". Consulta [Seguridad](https://docs.botradix.com/es/security/#informar-de-una-vulnerabilidad). --- # Glosario > Definiciones de los términos que usa BotRadix. Source: https://docs.botradix.com/es/glossary/ | Término | Significado | |---|---| | Agent wallet | En Hyperliquid, una wallet secundaria autorizada a operar para tu cuenta, pero no a retirar. Los bots de BotRadix usan una creada solo para ellos. Consulta [Conectar exchanges](https://docs.botradix.com/es/exchanges/) | | Apalancamiento | La relación entre el tamaño de la posición y el margen. 10x significa una posición de 1.000 USDC con 100 USDC de margen | | BAQ | El token de BotRadix en Base. Desbloquea límites para los bots y puede depositarse como colateral complementario. Consulta [BAQ](https://docs.botradix.com/es/baq/) | | Base | Una red de capa 2 de Ethereum (chain ID 8453) en la que funciona el BotRadix DEX | | Beneficio máximo | El mayor beneficio que puede realizar una posición. Consulta [Apalancamiento y margen](https://docs.botradix.com/es/margin/#beneficio-maximo) | | Bot Grid | Un bot que compra y vende en niveles predefinidos dentro de un rango de precios. Consulta [Bot Grid](https://docs.botradix.com/es/grid/) | | Bot Quant | El bot de BotRadix de seguimiento de tendencia con DCA. Consulta [Bot Quant](https://docs.botradix.com/es/quant/) | | Clave de API | Una credencial para la API v1 del DEX (`BRX…`), vinculada a tu wallet, con scopes que limitan lo que puede hacer. Con el código vigente no puede autorizar retiradas. Consulta [API](https://docs.botradix.com/es/api/) | | Clave de solo pausa | Una clave que puede pausar el DEX o los retiros, pero nunca reanudarlos | | Clave de trading | Una clave guardada en tu navegador y autorizada por tu wallet para operar sin firmar cada orden. No puede retirar. Consulta [Firmas y sesiones de trading](https://docs.botradix.com/es/sessions/) | | Cofirmante | Un servicio de BotRadix, en un servidor aparte, cuya segunda firma necesita cada swap de un bot en Uniswap | | Colateral | Los fondos depositados en el DEX para respaldar tus posiciones: USDC y, como crédito limitado, BAQ | | Contrato de salida | El contrato (`BotradixSalida`) que permite a cualquier wallet cerrar sus propias posiciones y retirar desde BaseScan. Consulta [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/) | | DCA | Promediar a la baja (dollar-cost averaging): añadir a una posición a mejores precios para mejorar su entrada media. Lo usa el bot Quant | | Desapalancamiento automático (ADL) | La reducción o el cierre anticipado, al precio del oráculo y sin comisión de cierre, de posiciones ganadoras cuando el vault está en riesgo; se aplica el tope y el funding, y lo no cubierto queda diferido. Consulta [Apalancamiento y margen](https://docs.botradix.com/es/margin/#take-profit-respaldado-y-desapalancamiento-automatico) | | Deslizamiento (slippage) | La diferencia entre el precio esperado y el precio de ejecución. Tu deslizamiento máximo protege la orden | | EIP-712 | El estándar para firmar datos estructurados con una wallet. BotRadix lo usa para las claves de trading, las sesiones y las órdenes firmadas | | Ejecutor | Una cuenta del protocolo que envía las acciones que firmas y paga su gas | | EMA | Media móvil exponencial; la referencia de tendencia que usa el bot Quant | | Emergencia | Un estado final del DEX, que cualquiera confirma 72 horas después de un desafío sin observaciones de USDC ni de los mercados con posiciones (o que declara el administrador): el trading se detiene, los mercados quedan fijados al precio y al funding del instante de la emergencia y los beneficios se pagan a prorrata con la liquidez disponible. Consulta [Cómo salir sin BotRadix](https://docs.botradix.com/es/exit/) | | Factor de salud | El patrimonio de la cuenta dividido entre su margen de mantenimiento. En 1 o menos, las posiciones pueden liquidarse | | Fase abierta | La fase actual de consolidación, en la que los contratos siguen siendo actualizables por el administrador. Consulta [Seguridad y contratos](https://docs.botradix.com/es/security-contracts/) | | Funding | Pagos periódicos entre longs y shorts que mantienen el mercado equilibrado. Consulta [Funding](https://docs.botradix.com/es/funding/) | | Futuro perpetuo | Un derivado que sigue el precio de un activo sin fecha de vencimiento, y que el funding mantiene cerca del precio de mercado | | Interés abierto (OI) | El tamaño total de las posiciones abiertas en un mercado | | Keeper | El servicio del protocolo que ejecuta órdenes en espera, take profit, stop loss, actualizaciones de funding y liquidaciones | | Liquidación | El cierre forzoso de una posición cuyo margen ya no puede cubrir las pérdidas. Consulta [Liquidación](https://docs.botradix.com/es/liquidation/) | | Maker / taker | Maker: una limitada comprobada con un precio válido que no podía ejecutarse y quedó en espera (comisión de referencia de v2.2 del 0,03 %); taker: el resto, incluida la primera ejecución de una limitada colocada con el mercado cerrado (comisión de referencia de v2.2 del 0,06 %) | | Margen aislado | Un modo en el que cada posición tiene su propio margen; perderlo no afecta al resto de la cuenta | | Margen cruzado | Un modo en el que todo tu colateral libre respalda a la vez todas tus posiciones cruzadas | | Margen de mantenimiento | El margen mínimo que debe conservar una posición: el 0,5 % de su tamaño en el BotRadix DEX, salvo que un mercado tenga su propio valor; se fija al abrir la posición | | Margen inicial | El colateral necesario para abrir una posición: tamaño dividido entre apalancamiento | | Mercado liquidado | Un mercado fijado a su último precio observado tras 3 días sin precios, cuyas posiciones cualquiera puede cerrar a ese precio | | Oráculo | El sistema que proporciona precios a los contratos. En BotRadix, PairForge. Consulta [Precios y oráculo](https://docs.botradix.com/es/oracle/) | | Orden en espera | Una orden limitada o stop que espera a su precio antes de ejecutarse | | Pago diferido | Un beneficio registrado para pagarse más tarde si alguna vez el vault y las reservas no bastaran | | PairForge | Proveedor de datos de mercado y oráculo del que proceden los precios del DEX. En Base, esos precios los firman los reporters de BotRadix y los verifica el contrato hub | | Par sintético | Un mercado valorado como el cociente de dos activos, como GOLD/BTC, liquidado en USDC | | Patrimonio | El valor de una cuenta cruzada: USDC libre más PnL no realizado, menos comisiones, funding y deuda, más el crédito de BAQ | | Permiso de ejecución | Una autorización única, concedida con una firma gratuita, que permite al keeper ejecutar tus órdenes en espera, tu take profit y tu stop loss por una pequeña comisión. Consulta [Comisiones](https://docs.botradix.com/es/fees/#permiso-de-ejecucion) | | Permit (EIP-2612) | Una firma que autoriza una transferencia de tokens sin una transacción de aprobación aparte; se usa para los depósitos de USDC sin gas | | PnL | Beneficio y pérdida. **No realizado** mientras la posición está abierta y **realizado** una vez cerrada | | Precio de liquidación | El precio al que una posición pasa a ser liquidable | | Puerta de aviso previo | El contrato (`BotradixAvisoPrevio`) que administra el router del DEX: los cambios de código y las operaciones ordinarias del router siguen su aviso (hoy 0 horas), y las acciones inmediatas de protección no esperan. La lógica del margen cruzado y de los negocios puede sustituirse sin aviso obligatorio mientras los contratos estén abiertos. Consulta [Seguridad y contratos](https://docs.botradix.com/es/security-contracts/#la-puerta-de-aviso-previo) | | Punto básico (pb) | Una centésima de punto porcentual: 1 pb = 0,01 %. Una comisión de 6 pb es un 0,06 % | | Reparto a prorrata | En una emergencia, cada ganador recibe el mismo porcentaje de su reclamación con los fondos disponibles; el resto queda diferido | | Reporter | Un servicio de PairForge que lee precios de los exchanges y los firma. Un precio necesita 2 de los 3 reporters | | Reserva de BAQ | Una reserva del protocolo que recibe, con los valores de referencia de v2.2, el 10 % de la comisión de apertura del protocolo (no de la de servicio) y de las penalizaciones aisladas, y respalda el crédito de BAQ como colateral | | Sellado | Pasos futuros por componentes que restringen determinadas vías de actualización. Hoy no hay ninguno activo; sellar una parte no congela todo el sistema ni todos los parámetros | | Sesión de trading | Una autorización temporal (8, 24 o 72 horas) para transmitir tus órdenes, que se usa cuando no hay una clave de trading disponible | | Solo reducción | Un estado en el que las posiciones solo pueden reducirse o cerrarse, no abrirse ni aumentarse | | Stop loss / take profit | Órdenes que cierran una posición automáticamente en un límite de pérdida o en un objetivo de beneficio | | Take profit respaldado | Un take profit para el que el vault ha reservado capacidad dentro del tope. Mientras el respaldo siga válido, su posición no se cierra por ADL; no es una garantía de cobro en todos los escenarios | | Tamaño de la posición (nocional) | El valor de una posición en USDC, sin tener en cuenta el apalancamiento | | Vault | El fondo de liquidez del protocolo, que paga los beneficios de los traders y recibe sus pérdidas y, con los valores de referencia de v2.2, el 90 % de la comisión de apertura del protocolo | | Webhook | Una notificación HTTPS que la API del DEX envía a tu servidor cuando ocurre un evento en tu cuenta. Consulta [Tiempo real y webhooks](https://docs.botradix.com/es/api-realtime/) | --- # Soporte y legal > Cómo obtener ayuda y dónde están los términos y la política de privacidad. Source: https://docs.botradix.com/es/support/ ## Dónde conseguir ayuda | Canal | Para qué | Cómo acceder | |---|---|---| | Esta documentación | Cómo funciona BotRadix: comisiones, límites, riesgos y la API | Busca con `/` o Ctrl+K | | Ticket de soporte | Consultas privadas sobre tu cuenta, los bots, el DEX o BAQ | Inicia sesión en [botradix.com](https://botradix.com), abre **Comunidad** (el foro) y elige **Abrir ticket** | | Email | Cuando no puedes iniciar sesión, y para informar de problemas de seguridad | **support@botradix.com** | | Foro de la comunidad | Ideas, sugerencias y preguntas para otros usuarios | [botradix.com/forum](https://botradix.com/forum) (la lectura es libre; para publicar necesitas una cuenta) | Los tickets tienen una categoría (técnica, trading, cuenta, BAQ, foro, privacidad u otra), un asunto de 4 a 120 caracteres y un mensaje de 10 a 6.000 caracteres. Puedes enviar hasta 5 tickets por hora. Cada ticket recibe un número de referencia. ## Qué incluir Una consulta precisa recibe antes la respuesta. Incluye: - el email de tu cuenta o la **dirección de tu wallet**; - el mercado, la fecha y la hora con tu zona horaria, y el **hash de la transacción** si lo hay; - el mensaje exacto que mostró el terminal, y una captura de pantalla sin datos sensibles; - qué esperabas que pasara y qué pasó en realidad. > [!CAUTION] > El soporte de BotRadix **nunca** te pedirá tu frase semilla, tus claves privadas, tu contraseña ni tus códigos 2FA, nunca te pedirá que instales software de acceso remoto y nunca te pedirá que envíes fondos. Quien lo haga no es BotRadix. ## Antes de escribir Muchas preguntas ya tienen respuesta aquí: - [Preguntas frecuentes](https://docs.botradix.com/es/faq/) - [¿Por qué no puedo retirar?](https://docs.botradix.com/es/faq/#por-que-no-puedo-retirar) - [¿Por qué se rechazó mi orden?](https://docs.botradix.com/es/faq/#por-que-se-rechazo-mi-orden) - [Errores y límites de la API](https://docs.botradix.com/es/api-errors/) ## Legal - [Términos de uso](https://botradix.com/terms), con el apartado del BotRadix DEX. Antes de la primera acción en el DEX firmas con tu wallet, gratis, los Términos completos (secciones 1 a 26) y la Política de privacidad, versión 2026-10-12.2, identificados por su huella SHA-256. Tu contrato en PDF se descarga al firmar y puedes volver a descargarlo desde **Ajustes DEX → Mi contrato (PDF)**. Consulta [Firmas y sesiones de trading](https://docs.botradix.com/es/sessions/#terminos-y-guia-de-riesgos). - [Política de privacidad](https://botradix.com/privacy). - [Riesgos](https://docs.botradix.com/es/risks/). --- # Novedades > Cambios relevantes en la plataforma, el DEX y esta documentación. Source: https://docs.botradix.com/es/changelog/ Los cambios más importantes de BotRadix, de más reciente a más antiguo. Todas las fechas son de 2026. ## 12 de octubre - **Copia firmada en PDF de tu aceptación de los Términos.** Al aceptar firmas ahora el texto completo de los Términos de uso (secciones 1 a 26) y de la Política de privacidad, versión 2026-10-12.2, identificado por su huella SHA-256, y se descarga al momento tu Contrato de Usuario de BotRadix: un PDF en inglés y en español con tu firma y los datos para verificarla sin depender de BotRadix, y desde la tarde del 12 una tercera página bilingüe de Salvaguardas del usuario que resume las protecciones de los Términos con su sección (las copias anteriores conservan sus dos páginas). Cada wallet firma una vez la versión nueva; puedes volver a descargarlo desde Ajustes DEX → Mi contrato (PDF). - **Tu wallet decide sobre su USDC.** Ninguna clave de trading ni sesión puede traer USDC de tu wallet al margen de una posición aislada si tu wallet no firma o cofirma esa operación concreta, además del permiso por el importe exacto. Tras esta actualización, las sesiones de trading se renuevan una vez con una firma. - **Órdenes límite y stop pagadas desde la wallet.** Apartan el margen más el 0,31 % del tamaño y la fianza de la orden, para cubrir sus comisiones máximas aunque la orden se ejecute en varios tramos; lo que no se gaste queda como saldo del DEX. - **Menos gas** al abrir posiciones en cuentas con muchas posiciones, y lotes de liquidaciones y TP/SL que se ejecutan completos. - **Salir sin la web.** Nueva guía paso a paso para usar desde BaseScan el contrato de salida verificado. - **Papelera en el panel de Posiciones.** Cierra a mercado una posición abierta de un bot Quant o Grid y la quita de BotRadix, con los mismos cierres que sus apartados y una vista previa antes de confirmar. Consulta [Historial, PnL y exportaciones](https://docs.botradix.com/es/history/#papelera-cerrar-y-quitar-una-posicion-abierta). - **Nuevas direcciones /Quant y /Grid.** Los apartados de bots están en botradix.com/Quant y botradix.com/Grid; las direcciones antiguas `/Futures` y `/GlobalPendingOrders` redirigen ahí. - **Documentación al día** con los contratos v2.2 (desplegados el 11 de octubre): comisiones, funding, liquidación, margen, BAQ, oráculo y seguridad. ## 4 de octubre - **Más beneficio en el DEX.** Una posición cobra toda su ganancia hasta el 100 % de su tamaño (en un largo, que el precio se duplique). Antes se cortaba en 3 veces su margen, que a 100x era un movimiento del 3 %. Las posiciones abiertas antes conservan su límite anterior hasta que se cierran. - **BAQ como margen con una sola fuente de precio.** El BAQ depositado cuenta como margen con una sola fuente de precio verificada, como los mercados de una sola fuente. - **El margen aislado solo crece.** Puedes añadir margen a una posición aislada o bajar su apalancamiento cuando quieras; ya no se puede sacar margen de ella ni subirle el apalancamiento. Al cerrarla recuperas todo su margen. - **Comisión de servicio de BotRadix del 0,03 %** en las aperturas y ampliaciones del DEX, con tu consentimiento firmado (el terminal lo pide una vez). Los cierres, TP/SL y liquidaciones nunca la pagan. ## 3 de octubre - **App de Android 0.1.0, primera versión pública.** Diseño limpio y compacto: patrimonio y PnL abierto a la vista, accesos directos a operar, crear un bot, historial y posiciones, todos los bots de tu cuenta, gráfico a pantalla completa en horizontal y avisos en la campana. Conectas la wallet eligiendo una de las instaladas en el móvil (MetaMask, Trust Wallet…), sin escanear códigos, y tiene más protección: pantalla protegida por defecto, ocultar saldos y huella para los bots. - **Ticket de orden.** Muestra el beneficio máximo de la posición y la comisión total de apertura antes de confirmar. - **Grid en el BotRadix DEX.** El mercado BAQ/USDC ya está disponible para los bots Grid. - **Gráficos semanales e historial largo.** El gráfico del DEX añade la temporalidad 1W. En 1D y 1W el historial llega ahora años atrás (Bitcoin desde 2011, el S&P 500 desde 1975), con fuentes de mercado reconocidas. Se retira la temporalidad de 30m, que nunca llegaba a cargar. - **Depósitos de USDC.** Los depósitos de USDC con una sola firma vuelven a funcionar. Si un depósito no se puede enviar, el terminal ahora lo indica (tus fondos no se mueven) y el siguiente intento usa el depósito clásico desde la wallet. - **Pares sintéticos en Hyperliquid.** Antes de iniciar un bot Quant con pares sintéticos en Hyperliquid, un aviso breve indica la posición LARGA que cada par necesita como base, y los conflictos entre bots indican qué bot ocupa la moneda y qué hacer. ## 2 de octubre - **Documentación.** Nuevo sitio de documentación en inglés y en español, con una versión en Markdown de cada página y un índice `llms.txt` para asistentes de IA. - **Volumen de 24 horas.** La cabecera del mercado muestra el volumen real negociado en el DEX en las últimas 24 horas. - **Retiros del DEX.** Con posiciones cruzadas abiertas, el terminal actualiza ahora todos los precios que necesita tu cuenta antes de que firmes un retiro, y muestra un mensaje claro cuando el importe supera tu margen libre: *"Margen libre insuficiente para retirar esa cantidad. Retira menos o cierra posiciones."* ## 1 de octubre: contratos del DEX v2.1 - **150 mercados** (55 nuevos), con más pares sintéticos cruzados. - **Liquidación única.** Una liquidación cierra toda la posición en una sola ejecución. Las liquidaciones cruzadas no tienen penalización, y las liquidaciones nunca cobran comisión de ejecución. - **Comisiones.** Comisión de apertura del 0,06 % (taker) y del 0,03 % (maker); el cierre sigue siendo gratis. Se elimina la fianza por posición y la comisión de servicio de BotRadix es del 0 %. - **Las tasas de funding** son válidas durante 2 horas. - **Sesiones de trading** de hasta 72 horas. - **Registro de liquidaciones**, exportación del historial del DEX a CSV y XLSX, y PnL realizado en la cabecera del terminal. - **Guía de riesgos y términos del DEX.** La primera vez se muestra una guía de los riesgos del DEX, y los términos del DEX (versión 2026-10-01) se aceptan con una firma gratuita de la wallet. ## 30 de septiembre: DEX v2 - **Clave de trading.** Autorizas una vez y operas sin firmar con la wallet cada orden. La clave nunca puede retirar. - **Apalancamiento de hasta 100x**, con tramos según el tamaño de la posición. - **Ejecución comprometida.** El precio de ejecución se observa después de que tu orden queda comprometida, lo que protege frente a precios desfasados. - **Gas incluido.** El protocolo paga el gas de red del trading; posición mínima de 18 USDC. - **Take profit, stop loss, cancelar y reemplazar** con la clave de trading, sin firma de la wallet. - **Funding** con un tope del 0,03 % cada 8 horas. Comisiones de apertura del 0,05 % (taker) y del 0,02 % (maker) en el lanzamiento, revisadas en la v2.1. - **95 mercados.** - **Bots en el BotRadix DEX.** Quant y Grid pueden operar en el DEX con una clave de API, con un nivel gratuito de hasta 2 bots Quant, 6 pares y 1 Grid.