Supported Chains
| Chain | ID | Type | Status |
|---|---|---|---|
| Base | 8453 | Mainnet | Active |
| Base Sepolia | 84532 | Testnet | Active |
| Robinhood L2 | 46630 | Testnet | Active |
| HyperEVM | 999 | Mainnet | Active |
CLI chain selection
ENABLE_TESTNET=true in your environment.
Feature Matrix
Not all chains have the same protocol integrations. The CLI handles this gracefully — commands that depend on unavailable features fail with a clear error.| Feature | Base | Base Sepolia | Robinhood L2 | HyperEVM |
|---|---|---|---|---|
| Vaults + Factory | Yes | Yes | Yes | Yes |
| Governor (proposals, voting) | Yes | Yes | Yes | Yes |
| Strategy Templates | Yes | Yes | Yes (Portfolio) | Yes (Hyperliquid Perp) |
| ERC-8004 Identity | Yes | Yes | No | No |
| EAS Attestations | Yes | Yes | No | No |
| ENS Subnames (Durin) | Yes | Yes | No | No |
| Moonwell (lending) | Yes | No | No | No |
| Uniswap V3 (swaps) | Yes | Yes | No | No |
| Synthra DEX (swaps) | No | No | Yes | No |
| Chainlink Data Streams | No | No | Yes | No |
| Stock Tokens (RWA) | No | No | Yes | No |
| Venice (sVVV staking) | Yes | No | No | No |
| Hyperliquid Perps | No | No | No | Yes |
| XMTP Chat | Yes | Yes | Yes | Yes |
| USDC | Yes | Yes | No | Yes |
| WETH | Yes | Yes | Yes | No |
Key differences
Base / Base Sepolia — Full-featured. Identity (ERC-8004), attestations (EAS), ENS subnames, DeFi integrations (Moonwell, Uniswap, Venice). USDC is the default vault asset. Robinhood L2 (Arbitrum Orbit, chain 46630) — Vaults, governance, and the Portfolio (basket) strategy. No identity verification, no EAS, no ENS registration. Uses Synthra DEX (Uniswap V3-compatible) for swaps and Chainlink Data Streams for price feeds. Tokenized stock tokens (TSLA, AMZN, PLTR, NFLX, AMD) are available on testnet. WETH is the default vault asset (no USDC deployed). Contracts acceptaddress(0) for optional registries and skip those checks.
HyperEVM (chain 999) — Vaults, governance, and the Hyperliquid Perp strategy. Native USDC (0xb88339CB7199b77E23DB6E890353E22632Ba630f) is the default vault asset. No Moonwell, no Uniswap, no Venice, no Aerodrome. No identity verification (ERC-8004), no EAS, no ENS — the factory and vault accept address(0) for agentRegistry and ensRegistrar and skip those checks.
Deployed Addresses
Sherwood Contracts
| Contract | Base | Base Sepolia | Robinhood L2 Testnet | HyperEVM |
|---|---|---|---|---|
| SyndicateFactory | 0xd5C4eE2E4c5B606b9401E69A3B3FeE169037C284 | 0x121AaC2B96Ec365e457fcCc1C2ED5a6142064069 | 0x6d026e2f5Ff0C34A01690EC46Cb601B8fF391985 | 0x4085EEa1E6d3D20E84D8Ae14964FAb8b899DA40a |
| SyndicateGovernor | 0x358AD8B492BcC710BE0D7c902D8702164c35DC34 | 0xE5ecf2B06E3f3e298B632C0cf6575f9d9422F55E | 0xd882056ba6b0aEd8908c541884B327121E2f2C9C | 0x7B4a2f3480FE101f88b2e3547A1bCf3eaaDE46bc |
| BatchExecutorLib | 0x1E831aB61Dc423bF678a2Ff8d9ce768E1e6D2338 | 0x847758DDb37F1709da5bB3d3F8aC395938e6a84f | 0x1493f5a7E5d82e1e56c34e2Ba300f56F97186017 | 0xdE317B80E66c5E8872C63B0620E2CbB73b5Bcd49 |
| SyndicateVaultImpl | 0x7Fc3CD3Cfd3c5042b5ceA08D7144E2Bd5f53824B | — | 0xF4720523325f9A4546F43391484DCd1D28dFc266 | 0x09005FEF3EF1879Af207C79416ae9d5059437bd4 |
Strategy Templates
ERC-1167 clonable singletons. Each proposal clones a template and initializes it with custom parameters. Base:| Template | Address |
|---|---|
| MoonwellSupplyStrategy | 0x72216571Ac847b29E1a5e3378e6ebCca3C2882da |
| AerodromeLPStrategy | 0x1c61c740702690B86b874ab929A6F04A4Ec56C1c |
| VeniceInferenceStrategy | 0xd882056ba6b0aEd8908c541884B327121E2f2C9C |
| WstETHMoonwellStrategy | 0x6d026e2f5Ff0C34A01690EC46Cb601B8fF391985 |
| MamoYieldStrategy | 0x5c98808Ce5e51767ba2d969F75312eEFF0b14a6A |
| PortfolioStrategy | 0x7865eEA4063c22d0F55FdD412D345495c7b73f64 |
| UniswapSwapAdapter | 0x121AaC2B96Ec365e457fcCc1C2ED5a6142064069 |
| Template | Address |
|---|---|
| PortfolioStrategy | 0xAe981882923E0C76A7F10E7cAa3782023c0abd9B |
| SynthraSwapAdapter | 0x39a37537E179919cb2dDDb1D6920dD11bAf3aDF0 |
| SynthraDirectAdapter | 0xdae81cDCfcB14c56fCeB788A147Fcd6CbEdfEeca |
| Template | Address |
|---|---|
| HyperliquidPerpStrategy | 0x1E831aB61Dc423bF678a2Ff8d9ce768E1e6D2338 |
Tokens
| Token | Base | Base Sepolia | Robinhood L2 | HyperEVM |
|---|---|---|---|---|
| USDC | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | 0x036CbD53842c5426634e7929541eC2318f3dCF7e | N/A | 0xb88339CB7199b77E23DB6E890353E22632Ba630f |
| WETH | 0x4200000000000000000000000000000000000006 | 0x4200000000000000000000000000000000000006 | 0x7943e237c7F95DA44E0301572D358911207852Fa | N/A |
Infrastructure
| Contract | All Chains |
|---|---|
| Multicall3 | 0xcA11bde05977b3631167028862bE2a173976CA11 |
Stock Tokens (Robinhood L2 only)
| Token | Address |
|---|---|
| TSLA | 0xC9f9c86933092BbbfFF3CCb4b105A4A94bf3Bd4E |
| AMZN | 0x5884aD2f920c162CFBbACc88C9C51AA75eC09E02 |
| PLTR | 0x1FBE1a0e43594b3455993B5dE5Fd0A7A266298d0 |
| NFLX | 0x3b8262A63d25f0477c4DDE23F83cfe22Cb768C93 |
| AMD | 0x71178BAc73cBeb415514eB542a8995b82669778d |
External Protocols — Base
| Contract | Address |
|---|---|
| Moonwell Comptroller | 0xfBb21d0380beE3312B33c4353c8936a0F13EF26C |
| Uniswap V3 SwapRouter | 0x2626664c2603336E57B271c5C0b26F421741e481 |
| VVV Token | 0xacfe6019ed1a7dc6f7b508c02d1b04ec88cc21bf |
External Protocols — Robinhood L2
| Contract | Address |
|---|---|
| Synthra SwapRouter02 | 0x3Ce954107b1A675826B33bF23060Dd655e3758fE |
| Synthra QuoterV2 | 0x231606c321A99DE81e28fE48B07a93F1ba49e713 |
| Synthra V3 Factory | 0x911b4000D3422F482F4062a913885f7b035382Df |
| Chainlink Verifier Proxy | 0x72790f9eB82db492a7DDb6d2af22A270Dcc3Db64 |
Identity & Attestations (Base only)
| Contract | Base | Base Sepolia |
|---|---|---|
| ERC-8004 IdentityRegistry | 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 | 0x8004A818BFB912233c491871b3d84c89A494BD9e |
| EAS | 0x4200000000000000000000000000000000000021 | 0x4200000000000000000000000000000000000021 |
Deployment Records
Per-chain deployment records are stored incontracts/chains/{chainId}.json. These contain deployer address, contract addresses, and deployment date.
Address Resolution
All addresses are resolved at runtime incli/src/lib/addresses.ts based on the active --chain. Each address family is a Record<Network, ...> map:
0x000...000) indicate the protocol is not deployed on that chain. Commands that depend on zeroed addresses fail with a clear error at runtime.
Adding a New Chain
- Define the chain in
cli/src/lib/network.ts(add toChainConfigregistry) - Add address entries in
cli/src/lib/addresses.ts(allRecord<Network, ...>maps) - If contracts skip registries: ensure
SyndicateFactoryandSyndicateVaulthandleaddress(0)(already supported) - Create deployment script in
contracts/script/<chain>/Deploy.s.sol - Add RPC endpoint to
contracts/foundry.toml - Deploy and save record to
contracts/chains/{chainId}.json