Contract Architecture

The CLOB system is composed of multiple contracts with clearly defined responsibilities and interactions.

Contract Hierarchy


Contract Responsibilities

ContractLayerResponsibility
CLOBRouterEntryUser-facing API for orders, deposits, withdrawals
CLOBSwapRouterEntryOptimized swap execution across pools
PoolManagerManagementPool lifecycle, trading rules, OrderBook deployment
OrderBookCoreOrder matching and trade execution
BalanceManagerCoreFund custody, locking, fee collection
HooksRegistryExtensionCustom hook registration and execution
MarketMakingVaultExtensionAutomated market making strategies
VaultGaugeExtensionIncentive distribution for LPs

Beacon Proxy Pattern

OrderBook contracts are deployed as Beacon Proxies, allowing efficient upgrades across all trading pairs. Benefits:
  • Single upgrade transaction affects all pools
  • Lower deployment cost per pool
  • Consistent behavior across all trading pairs

Authorization Model

The system implements a strict authorization hierarchy:

Caller Authorization

ContractAuthorized Callers
OrderBookCLOBRouter, PoolManager
BalanceManagerCLOBRouter, OrderBook
HooksRegistryOrderBook

Role-Based Access

RolePermissions
OwnerUpgrade contracts, configure fees, pause trading
OperatorCreate pools, modify trading rules
RouterPlace/cancel orders, manage balances
OrderBookLock/unlock funds, execute transfers

Upgradeability

The contracts use ERC-7201 namespaced storage for safe upgrades.

What Can Be Upgraded

  • OrderBook implementation (via beacon)
  • Router logic
  • BalanceManager logic
  • Hooks implementation

What Cannot Be Changed

  • Core authorization relationships
  • Fund custody guarantees

Contract Addresses

ContractAddress
CLOBRouter0x29BF83fF2bb9E0c5C273b0B118C465D6c602C173
CLOBPoolManager0x9C6B7292a52ea1Ca2A19B45E041d8653A4aD534f
CLOBBalanceManager0xE75E8b4861D9cC5Da3bbF6C7f280A8E163dD8554