With this post, we’d like provide a timeline and some much required context on the (re)launch of Celo Safe (safe.celo.org) on Celo.
TLDR
We are re-forking and re-deploying Celo Safe (a version of Safe, formerly “Gnosis Safe”, on Celo)
By Wednesday, November 16 you can expect a fully functioning deployment of Celo Safe on Mainnet at safe.celo.org
More details (FAQ)
What is Celo Safe?
Celo Safe is a fork of Safe (formerly “Gnosis Safe”) deployed on Celo.
Why is it a relaunch?
Celo Safe was previously forked from Safe and a beta version was deployed on Celo. Over time, the deployment fell behind on upstream changes in the original Safe repositories.
Instead of merging upstream changes from the Safe repositories, we decided to re-fork Safe and re-deploy Celo Safe using the latest forked version.
Will my existing Safe still work?
Yes! This is only a cosmetic change on the surface.
Celo Safes are controlled by your keys and the existing smart contracts they control are unchanged.
What exactly are you doing?
Here are the necessary components for a fully functioning Celo Safe deployment, what they do and what work is required until the (re)launch on November 16.
Smart contracts:
TLDR: Smart contracts that define the on-chain part of the Celo Safe deployment
Team: These were already deployed on Mainnet previously () and the Safe team kindly deployed the same smart contracts on Alfajores recently. This means Celo Safe will work on the Alfajores testnet.
Servers (incl. databases):
web-core:
TLDR: Next.js front-end server, which speaks to safe-client-gateway
Is it possible to simply petition Gnosis to launch Celo as a supported network on Safe themselves and manage the entire process? Keeping connected to upstream changes is always going to be an issue otherwise?
+1, that would be ideal. We are in contact with the Safe team regarding this question.
One idea is to do the configuration and deployment on Celo and enquire if they would be willing to own it going forward, now that the main bulk of the work is done.
To be specific, how did you envisage we petition the Safe team to launch on Celo?
Pretty much as you are, I suppose. I know they explicitly say they can’t or wont support every EVM-compatible chain and testnet out there, but in my opinion Celo is a fairly glaring omission from the network menu. Perhaps there’s some conflict of business interest as xDai / Gnosis chain has some of the same selling points as Celo.
That sounds quite good. With this upgrade, would Celo Safe integrate w/ celo.explorer or celoscan.io so it can identify verified contracts? Specifically, this would be applied when users want to submit a transaction related to contract interaction - and such integration would avoid the need for pasting the contract’s ABI for verified contracts.
Thanks
Great question! Honest answer, unfortunately I don’t know sorry
We’re doing Celo Safe Beta Testing, so you could test this yourself and let me know if it works.
If it doesn’t, we can add this feature request to the backlog
Good question (and very nice to see you @josh! ). In general, Celo Safe will support applications But you never know, so to be realistic I would caution there are often hidden quirks that make things not 100% compatible out of the box. We’re doing Celo Safe Beta Testing, so if you’re interested, I’d love your feedback on how the beta deployment works
For transparency, in this first release (due latest Nov 16), we prioritised launching a production-grade standard version of Celo Safe on mainnet/alfajores, over adding various custom features. That means applications will not automatically be available.
In general, we have been wondering how to process new application requests. In my mind, cLabs isn’t a bottleneck in an ideal world and we can enable the community to add applications, but I’m not sure how the Safe team does this on Ethereum. Do you have any ideas around that?
Great question, honest answer, unfortunately I don’t know.
I took a look at a hacky loom video showing how to do this on certain L1s, but I can’t confirm this will work on Celo Safe. But we’re doing Celo Safe Beta Testing , so if you’re interested, you could try this out and let us know if it works.
On Celo network, I created a safe, the transaction is successful with 74 blocks confirmation, but the app says “Step 1/2: Waiting for transaction confirmation.”
Steps to reproduce
Connect Wallet to the app. The network should be Celo
Click on Create New Safe
Click on Continue at stage 1
Click on Continue at stage “Name”
Click on Continue at stage “Owners and confirmations”
Click on Continue at stage “Review”
Confirm transaction and wait for transaction to be confirmed.
The transactions should have completed but the App is stuck.
Thank you so much for the bug report with a video recording, it made the investigation a breeze!
The issue came from a missing address specifically for alfajores in the node_modules patches. It should be fixed
I don’t know for sure, but I would say… “maybe”. If you do some tricks like roll your nonce (on Celo) to the same value it was before creating a Safe on say, Ethereum, and then create the Safe, it might work, depending on how the create contract function is performed on Celo Safe. You would need to be using the same address derivation scheme on both networks also, I imagine.
You could try it out on Alfajores, and Baklava, get two shots at it to get it right?
Thanks, @arthurgousset and team, for working on this! I’m a frequent user of Celo Safe and see the value in having a more updated and stable deployment.
I’m also a SafeDAO Delegate and would love to support efforts to get Safe to Celo natively - I think it will take a bit more before SafeDAO stabilizes. Still, I could see this happening in a couple of months! Just let me know how I can help.