Reading chain state
Reading chain state
Contracts
Eight modules, one registry. Admin everywhere is the protocol multisig; the keeper only holds EXECUTOR_ROLE on the executor; the executor only holds EXECUTOR_ROLE on the treasury, distributor and snapshot. Source lives in contracts/src and is verified on the explorer after deployment.
Contract verification
| Module | Source file | Address | Status |
|---|---|---|---|
| Registry | SonixRegistry.sol | — | NOT CONFIGURED |
| $SNXFI Token | SonixToken.sol | NEXT_PUBLIC_SNXFI_ADDRESS | NOT DEPLOYED |
| Treasury | SonixTreasury.sol | NEXT_PUBLIC_TREASURY_ADDRESS | NOT DEPLOYED |
| Distributor | SonixDistributor.sol | NEXT_PUBLIC_DISTRIBUTOR_ADDRESS | NOT DEPLOYED |
| Basket Manager | SonixBasketManager.sol | NEXT_PUBLIC_BASKET_MANAGER_ADDRESS | NOT DEPLOYED |
| Snapshot | SonixSnapshot.sol | NEXT_PUBLIC_SNAPSHOT_ADDRESS | NOT DEPLOYED |
| Executor | SonixExecutor.sol | NEXT_PUBLIC_EXECUTOR_ADDRESS | NOT DEPLOYED |
| Fee Router | SonixFeeRouter.sol | NEXT_PUBLIC_FEE_ROUTER_ADDRESS | NOT DEPLOYED |
| Protocol multisig | DEFAULT_ADMIN_ROLE | — | NOT REGISTERED |
Chain infrastructure (config-driven)
| Contract | Address | Role |
|---|---|---|
| Uniswap v4 PoolManager | 0x8366a3…0951 | Stock pools (native ETH / stock) are read from here via extsload |
| Universal Router | 0xE28c0e…64D3 | v4 adapter execution path |
| Uniswap V3 Factory | 0x1f7d75…2EfA | Pool discovery for WETH/USDG and stock venues |
| Uniswap V2 Factory | 0x8bcEaA…937f | Pair discovery; BUY $SNXFI routes through a V2 router |
| WETH | 0x0Bd7D3…AD73 | Quote asset |
| USDG | 0x5fc536…d168 | USD-pegged reference (6 decimals) |
| Swap Router ($SNXFI) | NOT CONFIGURED | NEXT_PUBLIC_SWAP_ROUTER — required for the swap flow |
Wallet connectors: injected (EIP-6963). WalletConnect: not configured. Every address above is read from the on-chain registry when one is set; environment values are only a cross-check and any disagreement is flagged, never silently preferred.