The BotRadix DEX runs as smart contracts on Base mainnet (chain ID 8453). This page lists the official addresses, explains what each contract does and describes, without simplification, the controls that the BotRadix administrator holds.
The Official v2.2 contract addresses section details fixed components, replaceable logic, upgrade functions and who signs. Consolidation phase, with sealing planned by component; currently unsealed with 0 h notice: the administrator can change the logic at any time, without advance notice.
Official addresses#
| Contract | Address | Role |
|---|---|---|
| DEX router | 0x740E207d90ec9D82fce040F8DA0268dB761F364E | Entry point for trading, isolated margin, orders, the vault and on-chain reads |
| Cross margin | 0x79ED1002F842DE2A9E25d353F2627206483b2b3B | Cross-margin accounts and collateral (USDC and BAQ) |
| PairForge hub | 0x55Ec5A8DFEb6ab71BCAE98D833b4E1d96a6c871C | Oracle: signed prices and funding rates |
| Coordinator | 0xA7509a1581bD718DE319475A0CEB9776bc29c463 | Executes administrator-signed configuration and upgrade plans |
| USDC | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | Settlement asset (native USDC issued by Circle on Base) |
| BAQ | 0x1B9f61483Dd6710E1Ad3b9d0bb92b710F1BA56B5 | BotRadix token; supplementary collateral |
Caution
Approve tokens and sign transactions only for these addresses, and only from app.botradix.com or, for the independent exit, from BaseScan following Exit without BotRadix. A wallet request involving any other contract does not come from BotRadix.
How the contracts fit together#
- Router. A modular contract: each function is delegated to an implementation module (a "facet") for positions, orders, the vault, delegated execution, market data and administration. Trading, isolated margin and orders all go through this single address.
- Cross margin. Holds cross collateral and evaluates the health of each cross account across all its positions. It is an upgradeable proxy: its address (which holds the collateral) is fixed, but the administrator can replace its logic instantly during the open phase.
- PairForge hub. Stores the latest prices and funding rates signed by the reporters, and checks the 2-of-3 quorum and the age of every price. See Prices and oracle.
- Coordinator. Executes administrative plans. Each plan is authorized with an EIP-712 signature that carries a nonce and a deadline, and commits to the exact list of actions it will run.
- Advance-notice gate. An immutable contract without an administrator of its own, which only obeys the Coordinator. Since version 2.2 it is the router's administrator and applies a notice to code changes and to operations. See Security and contracts.
- Exit. An immutable contract with no owner. It forwards to the router the exit actions of the wallet that calls it; its community functions (freezing markets, closing frozen positions, completing distributions) can act on other accounts when their conditions are met, and payments always belong to the account owners. See Exit without BotRadix.
- Protocol executors and keeper. BotRadix accounts that submit the actions you sign through your trading key or a session, and execute resting orders, take profit, stop loss, funding updates and liquidations. They pay the gas. They can only submit actions that you signed or that the contract rules allow, such as the liquidation of an account below its maintenance margin.
Administrative controls#
The contracts give the BotRadix administrator these powers:
| Control | Effect |
|---|---|
| Upgrade | Replace the router modules (through the advance-notice gate) and the cross-margin implementation and business logic (immediately), which changes the contracts' logic |
| Pause | Suspend DEX activity, or only the opening of new positions. Pause-only keys can do this too, but never resume |
| Reduce-only mode | Positions can only be reduced or closed |
| Pause withdrawals | Collateral withdrawals are blocked while the pause lasts: at most 72 hours, then at least 24 hours without a pause |
| Market configuration | List markets, set leverage tiers, open-interest caps and market sessions |
| Parameters | Adjust fees, maintenance margin, the profit cap, the BAQ credit and other values within the limits of the code in force (which the administrator can also change while the contracts are open) |
| Oracle management | Add, replace or revoke reporters and set the quorum |
| Vault liquidity | Withdraw the vault's free liquidity: the part not reserved for traders' potential profits, and, under the code in force, only if after the withdrawal reserved capacity satisfies the admission ceiling and the auto-deleveraging target (being below the trigger is not enough). During an emergency it requires an open distribution, all claims paid and no deferred payment outstanding |
| Emergency | Declare an emergency or settle a market without prices (anyone can do it after the waiting times described in Exit without BotRadix) |
| Service fee | Currently 0.03% on opens and increases, with a hard cap of 0.20% in the current code; each wallet must consent in its signature |
Important properties of these controls:
- Advance notice on the router, 0 hours today. Router changes go through the advance-notice gate. Its notices are 0 hours today, so a change can still take effect immediately; raising them is immediate and lowering them requires waiting for the notice in force.
- No notice on CrossMargin and the business logic. Their proxies store a fixed administrator and a zero delay in immutable code, so upgrades of the contract that holds the collateral can take effect immediately while the contracts are open. They are publicly monitored.
- Single administrator key. Administrative plans are signed by one administrator key held by BotRadix (an externally owned account, not a multisig).
- Open contracts. The contracts are deliberately kept open (not sealed), so that features can be added and issues fixed. This also means every guarantee described in these docs depends on the code deployed at that moment. It is a temporary consolidation phase: sealing is planned by component after stability has been assessed, without a committed timetable. Each step must state which upgrade paths and parameters it constrains; sealing one component does not freeze the whole system.
- Independent exit. Any wallet can close its positions and withdraw from BaseScan through the exit contract, with fallbacks after 24 hours, 3 days (a market without prices) and 72 hours (no prices at all). See Exit without BotRadix for the steps and their limits.
Important
Under the current code, the administrator has no function to move a trader's collateral to another address, and your trading key cannot withdraw. Because CrossMargin can be upgraded without delay while the contracts are open, these protections ultimately rely on BotRadix operating its administrative key correctly. Read Security and contracts and Risks.
Verification and audits#
- All transactions, events and token balances are public and can be checked on BaseScan.
- Check each address on BaseScan: its Contract tab shows whether its source is verified. Deployment alone does not prove source verification; matching source is not an audit.
- No third-party audit report has been published. Before version 2.2 the contracts went through an internal multi-approach review and invariant testing, and the upgrade was rehearsed on a copy of Base.
These docs will link any third-party audit report if one is published.
How to verify it#
You do not have to take this page on trust: the key facts can be read directly from the chain. These commands use cast, the command-line tool from Foundry, with Base's public RPC. They are read-only: they sign nothing, send no transaction and cost no gas.
RPC=https://mainnet.base.org
ROUTER=0x740E207d90ec9D82fce040F8DA0268dB761F364E
CROSS=0x79ED1002F842DE2A9E25d353F2627206483b2b3B
HUB=0x55Ec5A8DFEb6ab71BCAE98D833b4E1d96a6c871C
COORD=0xA7509a1581bD718DE319475A0CEB9776bc29c463
BAQ=0x1B9f61483Dd6710E1Ad3b9d0bb92b710F1BA56B5
USDC=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
# Cross margin: implementation, revision and open status
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 as collateral: reserve
cast call $CROSS "dexBaqReserveState()(uint256,uint256)" --rpc-url $RPC
# Router: administrator (the advance-notice gate) and the notices in force
cast call $ROUTER "admin()(address)" --rpc-url $RPC
# Coordinator: administrator key and open status
cast call $COORD "OWNER()(address)" --rpc-url $RPC
cast call $COORD "isSealed()(bool)" --rpc-url $RPC
# PairForge hub: quorum and number of reporters
cast call $HUB "QUORUM()(uint8)" --rpc-url $RPC
cast call $HUB "reporterCount()(uint32)" --rpc-url $RPC
# Tokens: BAQ supply and USDC held by the DEX contracts
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 $RPCResults with version 2.2 (checked on 11 October 2026):
| Read | Result | What it confirms |
|---|---|---|
implementationRevision | 24 | The cross-margin implementation included in version 2.2 (the revision may increase in later upgrades) |
isSealed (cross margin and Coordinator) | false | The contracts remain open, as explained in Administrative controls |
dexBaqReserveState | Two USDC amounts (6 decimals) | The BAQ reserve and the part committed at that moment |
admin (router) | The gate's address | Changes to the router only come through the advance-notice gate |
ADMIN (gate) | The Coordinator's address | The gate only obeys the Coordinator |
delays | 0, 0, 0, 2592000, 1209600 | Code notice and operations notice of 0 hours, no committed minimum, a maximum notice of 30 days and a 14-day window to execute a scheduled change |
OWNER (Coordinator) | An externally owned account | The single administrator key that signs the plans |
QUORUM and reporterCount | 2 and 3 | The 2-of-3 PairForge reporter quorum |
totalSupply (BAQ) | 5000000000000000000000000000 | 5,000,000,000 BAQ (18 decimals) |
balanceOf (USDC) | Amounts with 6 decimals | The USDC held by each DEX contract at that moment |
The BAQ reserve and the balances change with activity, so you will see different figures. The implementation address and its revision change with every contract upgrade. Fees, the profit cap, the BAQ credit and the other adjustable values can be read on the router's and CrossMargin's Read Contract tabs on BaseScan; the Security and contracts lists their values at launch and their limits.
For integrators#
- Signed intents use the EIP-712 domain
BotradixDEX, version1, chain ID8453, with the DEX router as verifying contract. See Trading through the API. - To index DEX events from the start, begin at block 51,767,085.
- USDC uses 6 decimals and BAQ 18 decimals.
- Since version 2.2, every change to a position emits
DexPositionStateV2(leverage, size, margins, profit cap and funding) and every close emitsDexPositionCloseReasonwith its reason (your order, take profit or stop loss, liquidation, auto-deleveraging, exit or emergency). - Useful router reads on BaseScan:
dexAdlState(auto-deleveraging),dexPositionRiskV2(a position's cap and take-profit backing), anddexExitStatus(the exit contract and an account's exit request); on the cross margin,dexWithdrawPauseState(current withdrawal pause and when it ends). PRODUCTION_READYreturnsfalseon purpose: it only gates the legacy V1 venue and has no effect on the DEX.- For most needs, the API is simpler and returns the same on-chain data already indexed.
Version#
The current contracts are version 2.2, live since 11 October 2026 (version 2.1.1 went live on 4 October 2026). See the Changelog for the history.