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, Cómo leer los proxies de BotRadix y Compilación reproducible.
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 |
| CrossMargin (proxy de colateral) | 0x79ED1002F842DE2A9E25d353F2627206483b2b3B |
| PairForge (anfitrión del oráculo) | 0x55Ec5A8DFEb6ab71BCAE98D833b4E1d96a6c871C |
| Registry (anfitrión) | 0x9ad0298331bda8E08034027e7C2b1352f9cEB164 |
| Automation (anfitrión) | 0x4b9adab771698a52460e5DeC0Ee91955436c68c2 |
| Adaptador de Uniswap V3 (anfitrión) | 0x52D9bbcE58874272E1359769e643e4327427f4dB |
| Fábrica de cuentas | 0x092A0905b357E72bacE1C2e3Fa46A45475FB9e24 |
| Coordinador de administración | 0xA7509a1581bD718DE319475A0CEB9776bc29c463 |
| BotradixSalida | 0x43473B3684ccB5d9d57D119f2A6bc7B9B1f5EEe5 |
| AvisoPrevio (administrador del router) | 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 |
| BotradixAvisoPrevio | 0x3a3273Df1c640D2625Bcc0f378Fc571D371f0dEd |
| BotradixAvisoPrevioFactory | 0xD3369F63E6a8Dc60914a428c0d15d98CB9f5Ba12 |
Despacho y administración modular#
| Contrato o función | Dirección en BaseScan |
|---|---|
| BotradixDispatchKernelV2 | 0x95DC9EFbff26Acb8B9509d68dd73E712c4541093 |
| BotradixRouterModuleHub | 0x1939D6DEA5032Af296888A2b5b379121981807E5 |
| BotradixRouterModuleAdminFacet | 0xd7Ee406f1309e422Ce215e1257799D595fA3EA02 |
| BotradixBusinessModuleAdmin | 0x75434e902a3e9538fE9Cdc9606163fCd26073177 |
Facetas del router#
| Contrato o función | Dirección en BaseScan |
|---|---|
| BotradixAdminAuthFacet | 0x281f19360d4bd6278D8b36D239319E0152c4d15a |
| BotradixMarketLifecycleFacet | 0xFBe27EDAAD662eCf2315bCeEeAD626A88A8a1C3c |
| BotradixTradeFacet | 0x4C154d0e8EC1123db8BfA9cAf5e9170229B01d59 |
| BotradixPositionFacet | 0xa1D5a5B20b7ec4729d8d72B633CF6743Ed69E37b |
| BotradixSettlementFacet | 0x69c8228f0679db9b9d1815C5f46596D3A3cD794E |
| BotradixReadMarketFacet | 0x7CC58E07E4FF466cEB637F181118A13840b056D6 |
| BotradixMarketAdminFacet | 0x13aa7628E7f163Ee6B55BB9d2b185Ab9e609680E |
| BotradixAssetRiskFacet | 0x4c3528F5086af74B546Faa8F12AEc31A246aE77d |
| BotradixDelegateAuthFacet | 0xC10072306b31d3ad13d6c517ced6E003f92a3e5f |
| BotradixIncreaseFacet | 0x5351963473f2E1fB58853024D51494495e3E988b |
| BotradixCollateralFacet | 0xD3a6759D95Dd186B3E0a04E81F3F4c0d6fF29520 |
| BotradixSignedExitFacet | 0xcF06610b85C1274aEbc21BFA11C6086f87f996d8 |
Componentes del DEX#
| Contrato o función | Dirección en BaseScan |
|---|---|
| BotradixDexCreateEngine | 0x1eC79D9d237a4C1C52a1A031277418008DDc3Cc8 |
| BotradixDexIncreaseEngine | 0x19c1124d3781902b027DFa6552d5C45a4feB86D8 |
| BotradixDexCloseEngine | 0x72027074498955a67c621b2D7f7f1afCcd5Dbd1E |
| BotradixDexOrderEngine | 0x1194767Edff4E934cdDbB559261fEdE19baEc3a2 |
| BotradixDexMarketFacet | 0xAf0c1d7b11E8D0D90A2Cb591D601b02f861E1B94 |
| BotradixDexIntegrationFacet | 0x2015603CF00329CE95EfF785Ec28d9501056C407 |
| BotradixDexOrderFacet | 0xb18145Dde11aae097AFBe722A11df102c4C2fE47 |
| BotradixDexPositionFacet | 0xC36d1735434ba694C2e9b4A1efB7A9d0c2B9F8e5 |
| BotradixDexCanonicalFacet | 0xed8bc62D385f04a5ee9feC62F4b0B8e8AB7050AF |
| BotradixDexVaultFacet | 0x1039f4bC44BCa16F568C25fB954B5F88389bC7e3 |
| BotradixDexOpenEngine | 0x2Ff92928880f4ec898Be3aA71429fac326f9C490 |
| BotradixDexManageEngine | 0x393a9C32b81F817987E7FE6B97Dd67582ED939f6 |
| BotradixDexInvertEngine | 0x510F52C36A8c77346A0209DbD77C1865E0a5882B |
Módulos y parámetros del router#
| Contrato o función | Dirección en BaseScan |
|---|---|
| BotradixDexIntentFacet | 0x7Cc3c4b13AC75C02283797ACa5e8253e65CB5974 |
| BotradixDexAgentFacet | 0x4E73fa57C3458Cec0e09518C65A878859D939947 |
| BotradixDexAgentEditFacet | 0xFb63b83aDb8Aa6f34E305c599dDec9De6E154776 |
| BotradixDexRiskModule | 0xEdA449CF2F93C57D7B4D8984Fb60e28615C13615 |
| BotradixDexAdlModule | 0xc1733C0bf5df9AEDD8B1386818A5C19A7CBbeA57 |
| BotradixDexListingModule | 0xc21Afd694cCFDB601725A596e2ba02C9bEc16A9F |
| BotradixDexGuardModule | 0xF4a7a7Cac96Da442367557798214667b3a928fb4 |
| BotradixDexExitModule | 0x65d1f0dF2E078ba5c80bDB0091A941948160CeE4 |
| BotradixDexEmergencyModule | 0xe35353e8864559a8833510F23E62e7E41D4f133C |
| BotradixDexKeeperBatchModule | 0x736372e8cbd577BbEd55860C1d82C5ab46CfA513 |
| BotradixDexParamSpec | 0xeB2EdE33468721B8116dD135b70c286a51946f3A |
Margen cruzado#
| Contrato o función | Dirección en BaseScan |
|---|---|
| BotradixCrossMargin | 0xc1030c90C644Df556c5fe311601B55B84387f6d7 |
| BotradixCrossSettlementFacet | 0xcD9dE1b0f9A7Fc5afE22cF4eb781198FF99FA851 |
| BotradixCrossAutomationFacet | 0xF18D2E033418DF345473FA696FF5c0aD1d504671 |
| BotradixCrossDexCollateralFacet | 0x09E04102cE4Af4567F3f6698B23E3213cb723177 |
| BotradixCrossDexBridgeFacet | 0x3744a1c6a8646a53404D530FF1e007d0c7af1E11 |
| BotradixCrossDexReadFacet | 0xc1d7ccfCE31873129B08426C115C2B6f5D72eB78 |
| BotradixCrossModuleFacet | 0xA466E60cAe42E695Fb8f1Fc71d2f6816eE17E3dF |
Lógicas, extensión y políticas de negocio#
| Contrato o función | Dirección en BaseScan |
|---|---|
| BotradixPairForgeLogic | 0x0744e9a3f4ad391414FA2d1443de2259bB1620e6 |
| BotRadixRegistryLogic | 0xFBD00C93D96EF1a62EA1f017a6736927f5b98c2D |
| BotRadixAutomationLogic | 0xDC9604745165a2eA737485dB4232aa8555e0e529 |
| BotRadixAutomationExtension | 0x5256C7EbC2437F4820439D9754213B7759Db5dF5 |
| BotRadixUniswapV3Logic | 0xa9Ad93A078aB62830fbC7A4D9B9924bbBca2FAf1 |
| BotradixPairForgeParams | 0xD114ea201713EA7B9B5ea6244Fb850f0526Cc695 |
| BotradixRegistryPolicyV2 | 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 |
| BotradixCrossQuantFacet | 0xC31e4A46C514129983A5086d79D444854e54087b |
| BotradixLiquidityFacet | 0x9EaC5c10855d1C494b30Af3e9C28123fe98ef5B9 |
| BotradixPreviewFacet | 0xEfdCe096526849dc313F0B0581f19aBb1bF1C4bd |
| BotradixReadAccountFacet | 0xdD1D8aB402FCED0b2DbD02b9D0D7783f54909B81 |
| BotradixConstantsFacet | 0xe65314C1ae2FE001d60Ad49d017a4869A30cB4a2 |
| BotradixProviderRegistryFacet | 0x5B815ef9c353b62Ca1d5885077a8D7C19B5269F8 |
Contacto y textos relacionados#
Comunica problemas de seguridad a 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, sobre protocolo, salida, poderes administrativos, pagos diferidos, parámetros y vuelta atrás, y la página de Riesgos. Esta explicación del mecanismo no elimina esos riesgos.