Deploy a Safe on Your Rollup
Safe (formerly Gnosis Safe) is the standard multisig wallet used to control admin roles, treasuries, and contract ownership on Ethereum-style chains. Instead of one key controlling funds or permissions, a Safe requires a threshold of owners (e.g. “3 of 5”) to approve any action.
This guide applies to OP Stack rollups only. The Safe factory is one of the OP Stack’s preinstalled contracts, deployed automatically at the same address on every chain. Arbitrum Orbit chains do not get this preinstall, so contact Support if you need a Safe deployed on an Orbit chain.
Preinstalled contracts
Every OP Stack rollup launched on Conduit ships with these contracts already deployed, at the same addresses as Ethereum mainnet and other OP Stack chains:
For the full list and addresses, see the Optimism preinstalls reference.
Option 1: Deploy with the Safe SDK (recommended)
The Safe protocol-kit handles building the deployment transaction for you: you just supply your RPC URL, owners, and threshold.
Once deployed, you can manage the Safe (propose/approve/execute transactions) using the Safe api-kit against your own transaction service, or manually via protocol-kit, since the hosted Safe Wallet app does not support arbitrary custom chains out of the box.
Option 2: Call the factory directly
If you’d rather not pull in the SDK, you can call the factory’s createProxyWithNonce function yourself:
_singleton: theSafeL2address above (orSafe, if you don’t need events).initializer: the encoded call toSafe.setup(owners, threshold, to, data, fallbackHandler, paymentToken, payment, paymentReceiver)(pass yourownersarray andthreshold, and zero/empty values for the rest unless you need those features).saltNonce: any value you choose; it (plus yourinitializer) determines the resulting Safe’s address, so you can predict it ahead of time.
This is lower-level and mainly useful if you’re scripting deployments with Foundry/cast or integrating Safe creation into your own tooling.