A margin of error exists for users with more than one Safe across multiple networks to accidentally send their funds to the correct address but wrong network which results in a loss of funds.
Proposing Safe to implement a feature to enable one address to be used across different chains. The following two examples illustrate this need:
This primarily protects users from losing their funds by sending them to the wrong network. It also reduces the level of complexity.
Effects and Impact Analysis
Pros: Prevents loss of user funds
Cons: May allow for bad actors to more easily target a single user
Alternative Solutions
It is possible to create the same Safe address if the Safe Contract Factory address is the same. If it is not, this is unfortunately not possible. Additionally, a notification arises within Safes created in this manner that it is not reliable to use.
I can see where you are coming from. There are clear benefits of having the same public address on several chains. And there are indeed technical means to achieve this in many cases (using Create2). However it’s an approach that is not bullet- and future-proof and has some other negative consequences such as state drift between the different Safes. Here’s a good article that goes more in-depth: Account Abstraction in a Multichain Landscape - Part 1: Addresse… — Safe
With some developments such as advancements in roll-up stacks (OP Stack, ZK Stack), trustless bridges, cross-chain human readable IDs (like ENS), I think there will be better solutions to the valid problem you raise. However, it will need some time until a clear path towards this will open up.
There was a hack last weekend at ETHGlobal Waterloo that allows to easily deploy Safes at the same addresses on different chains: Token Rescue Buddy | ETHGlobal
However, due to the reasoning above and in the blog post, I would still see this more of a intermediate/emergency solution, rather than something we should enshrine as an ecosystem.
Thanks for your informative reply Lukas. Looking forward to seeing what the future holds. Taking this as a learning experience :). Cool to look at the Token Rescue Buddy project. I guess it takes into consideration only having the same Safe Proxy Factory since Optimism isn’t included. But love how they made that process more user friendly then using hex in Metamask.
Had a feeling there were risks from a security standpoint.
bryan we ran into this same situation earlier this month, but the token rescue buddy didnt have the right chains available for us. we were still able to recover the funds by replaying the deployment.
this is not always possible though; it depends on how your original multisig was deployed in the beginning. at least the following criteria will need to be filled:
access to the deployer of the original multisig
the factory and mastercopy contracts need to be deployed to the same address on the chain you sent the funds on
hi lukas, when going to “live demo” although origin safe address, safe chain origin and safe chain destination are open, “deply” button is not lauchable. any idea how to get it done ?
Hey Gosuto, We’re facing the same problem right now. Would be greatly appreciated if you could help us out since we’re struggling quite hard to recreate the deployment. Kind Regads, Florian