# Deploying a Safe on Multiple Networks Safe contract addresses are determined by the initializer function and a nonce. In order to deploy a Safe to the same address on multiple networks it is important to ensure the following conditions are met: - Same factory address is used on both networks - Same singleton address used on both networks - Same nonce used on both networks - The same initializer payload is used on both networks This guide includes addresses for the latest v1.4.1 release of Safe. If the Safe you are trying to replicate is an earlier version you must find the old singleton address. This can be found in your original Safe creation transaction (see below) ### Factory The latest Safe factory is deployed to 0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec67 on most networks ### Singleton Address The v1.4.1 template Safe contract is deployed to 0x41675C099F32341bf84BFc5382aF534df5C7461a on most networks ### Initializer The initializer sets up the Safe settings like owners and thresholds. You must copy the initializer used on the first network to the second. However **this means that the new Safe will match the original settings of the first Safe**. If after setup you have changed signers, thresholds, modules, etc, you will have to make these changes on the new Safe as well ## Example - Deploying to the same address on Sepolia and Scroll ### Sepolia Deployment This example uses a v1.4.1 Safe deployed on Sepolia first then Scroll second. Sepolia Deployment Tx: https://sepolia.etherscan.io/tx/0xdce9314dea0d3080d26e347d0828918be17dbb6e290ac0cd5711a066d1728df1 ![Screenshot 2024-10-18 at 17.13.00](https://hackmd.io/_uploads/rJcfg8eg1e.png) - Singleton: 0x41675C099F32341bf84BFc5382aF534df5C7461a - Initializer (REMEMBER to change this to your initializer): 0xb63e800d00000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000bd89a1ce4dde368ffab0ec35506eece0b1ffdc540000000000000000000000000000000000000000000000000000000000000140000000000000000000000000fd0732dc9e303f09fcef3a7388ad10a83459ec99000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005afe7a11e7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000001b2f8877f3e8f366ef4d4f482309491237338970000000000000000000000000000000000000000000000000000000000000024fe51f64300000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c76200000000000000000000000000000000000000000000000000000000 - Nonce: 1 ### Scroll Deployment Scroll Deployment Tx: https://scrollscan.com/tx/0xdb2e69796a1ff5ba22392fceabd437b88e6c3c08cdd53788f8932571a827d4ab - Singleton: 0x41675C099F32341bf84BFc5382aF534df5C7461a - Initializer (REMEMBER to change this to your initializer): 0xb63e800d00000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000bd89a1ce4dde368ffab0ec35506eece0b1ffdc540000000000000000000000000000000000000000000000000000000000000140000000000000000000000000fd0732dc9e303f09fcef3a7388ad10a83459ec99000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005afe7a11e7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000001b2f8877f3e8f366ef4d4f482309491237338970000000000000000000000000000000000000000000000000000000000000024fe51f64300000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c76200000000000000000000000000000000000000000000000000000000 - Nonce: 1 ## Instructions 1. Find the deployment transaction for the Safe you want to copy Note the version of the previous Safe. I think if it's v1.3.x or v1.4.1 it will work ![Screenshot 2024-10-19 at 09.59.47](https://hackmd.io/_uploads/HkKzv1-gke.png) 2. Go to the Safe Proxy Factory contract on the new chain https://scrollscan.com/address/0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec67#writeContract 3. Enter the matching date on the `createProxyWithNonce` function and send the transaction ![Screenshot 2024-10-19 at 10.02.31](https://hackmd.io/_uploads/BJcnwJ-xke.png) 4. Check transaction logs for the Safe address This should match the original Safe address ![Screenshot 2024-10-19 at 10.03.10](https://hackmd.io/_uploads/SkTx_kWxyg.png) 5. Visit the Safe on the UI Enter your address in this link https://app.safe.global/home?safe=scr:0x164730037ae0ccffb55dbd43df9cd6e040bf73e7 ![Screenshot 2024-10-19 at 10.04.07](https://hackmd.io/_uploads/H1DNOy-xJx.png)