Deployment matrix
Which chains Chamber is deployed on, and what differs between them
Chamber's contracts are deployed on seven public chains. The Guard System, SDK, and subgraph support is not uniform across all of them — which protocols a vault can use, and which assets it can hold, depends on the chain.
Supported chains
Ethereum
1
Optimism
10
Polygon
137
Base
8453
Arbitrum
42161
Plasma
9745
HyperEVM
999
Hyperliquid's EVM chain. Perps-native asset support via Hyperliquid guards (see guard system).
For the canonical list of deployed contract addresses per chain, see contract addresses.
What differs between chains
Not every chain supports every protocol. Each deployment ships with its own set of:
Contract guards — which protocols a vault can call (Aave, Uniswap, GMX, Velodrome, etc.). A protocol that doesn't exist on a chain obviously isn't supported; a protocol that does exist may still be absent if a guard hasn't been written or whitelisted for it.
Asset guards — which asset types a vault can hold (plain ERC20, Aave aTokens, Uniswap V3 positions, GMX perps, etc.).
Asset allowlist — the specific token addresses and price feeds that are approved for deposit/trade on that chain.
A vault deployed on Base cannot hold positions on Arbitrum. Chamber does not do cross-chain accounting inside a single vault.
See chain capabilities matrix for the manager-facing version of this (which protocols are available on which chain). For the full list of guards, see the guard system page.
Checking support at runtime
Rather than hard-coding protocol support in your integration, query it onchain:
PoolFactory.getAssetGuard(assetAddress)— returns the asset guard for a given token. Zero address means the asset is not supported.PoolFactory.getContractGuard(contractAddress)— returns the contract guard for a given protocol destination. Zero address means calls to that address will revert withdh23at the vault entrypoint.PoolManagerLogic.isSupportedAsset(address)andisDepositAsset(address)— check per-vault support and deposit eligibility.
These are the source of truth. Governance can add or swap guards at any block, so cached allowlists can go stale.
SDK chain coverage
The @dhedge/v2-sdk exposes a Network enum covering the supported EVM chains. Coverage moves with releases — pin a version and check the enum on it.
Subgraph chain coverage
The subgraph is deployed per chain. Each chain has its own GraphQL endpoint. The hosted chains are the same set of EVM chains listed above; check the subgraph repo for the current endpoint per network.
See also
Contract addresses — canonical per-chain addresses
Guard system — how to enumerate supported protocols and assets
Chain capabilities matrix — manager-facing view of what's available where
Last updated

