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

Chain
Chain ID
Notes

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 with dh23 at the vault entrypoint.

  • PoolManagerLogic.isSupportedAsset(address) and isDepositAsset(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

Last updated