deploy_multichain_lagoon_vault
Documentation for eth_defi.lagoon.deployment.deploy_multichain_lagoon_vault function.
- deploy_multichain_lagoon_vault(*, chain_web3, deployer, config, cctp_enabled=False, max_workers=None)
Deploy Lagoon vaults across multiple chains with a shared deterministic Safe.
Uses CREATE2 via the canonical Safe v1.4.1 ProxyFactory to produce the same Safe address on every chain. Each chain gets its own vault and guard deployment, but all vaults share the same Safe multisig address.
Deploys all chains in parallel using threads to minimise wall-clock time.
If
cctp_enabledis True, CCTP whitelisting is automatically configured per chain. Chains without CCTP support (e.g. HyperEVM) are silently skipped.- Parameters
chain_web3 (dict[str, web3.main.Web3]) – Mapping of chain names (lowercase, matching
eth_defi.chain.CHAIN_NAMES) to Web3 instances. Example:{"ethereum": w3_eth, "arbitrum": w3_arb}.deployer (eth_account.signers.local.LocalAccount) – The deployer account. A separate
HotWalletis created per chain for nonce management.config (eth_defi.erc_4626.vault_protocol.lagoon.deployment.LagoonConfig) – Shared
LagoonConfig. Must havesafe_salt_nonceset. Theparameters.underlyingfield is auto-resolved per chain frometh_defi.token.USDC_NATIVE_TOKENif set to a zero/empty address.cctp_enabled (bool) – If True, auto-create
CCTPDeploymentper chain usingCCTPDeployment.create_for_chain(). Chains not inCHAIN_ID_TO_CCTP_DOMAINare silently skipped.max_workers (int | None) – Maximum number of parallel deployment threads. Defaults to the number of chains.
- Returns
LagoonMultichainDeploymentwith per-chain results.- Return type
eth_defi.erc_4626.vault_protocol.lagoon.deployment.LagoonMultichainDeployment