Feature Update: Orgs 🎉

One of the first Ethereum features on the roadmap is Radicle Orgs. As written in our Integrating with Ethereum post, Radicle Orgs allow a group of people to manage multiple projects on Radicle.

What’s cool about Orgs is that they’re actually smart contracts that can be managed by DAOs or multi-sigs. With Radicle Orgs, projects can maintain an auditable and transparent history of project state on-chain. This enables new workflows around your main branch that is now anchored and secured on Ethereum. These can be used to trigger off-chain actions like the distribution of developer rewards, software releases, or any job you’d like.

We see Radicle Orgs becoming a super-powered primitive for decentralized communities who want to take back control of their collaboration infrastructure.

https://twitter.com/mewn21/status/1373302721135009800?s=20


How it works

Anita is the maintainer of a Web3 project called TunaSwap. They want to host their repositories on Radicle. To do so, they need to 1) publish their repositories to the Radicle peer-to-peer network, 2) maintain a canonical view of the projects and 3) manage the projects as a team. With the Upstream app, Anita can publish all of the TunaSwap repositories to the Radicle network. Once on the network, they will be replicated across her network of peers, hosting the repositories in a peer-to-peer manner.

However, due to its peer-to-peer nature, any of her team members can also publish their own forks of TunaSwap’s repositories, so they need a way to show their community which is the canonical version of the projects. Anita learns that with Radicle Orgs, she can anchor project state on-chain at specific commit hashes, giving her the ability to maintain a canonical global view of project state on Ethereum. In addition, she can do this in a decentralized way with her team by managing the Radicle Org with a Gnosis Safe.

Creating an Org

Anita is tasked with creating a Radicle Org for the TunaSwap team. In the Upstream app, she starts the process by clicking the + icon in the sidebar.

Anita enters the Org creation flow. This flow walks her through deploying an Org and creating a Gnosis Safe to manage it. Since her wallet is connected, she is added as the first member to the Gnosis Safe by default. After creating the Gnosis Safe, it’s set as the admin of the Org contract.

We decided to move ahead with a tight integration with the Gnosis Safe multi-sig for our MVP. With more than $20B in digital assets managed through Gnosis Safe contracts, it’s robust, battle-tested, and very well-documented. We’ve been working closely with their product team to make this MVP a reality! Read more about how the Gnosis Safe works.

After creating the Org, Anita lands on the newly created Org page. On this page, she can view the address of the Org and its admin (the Gnosis Safe). Now, the TunaSwap Org has one member and 0 projects.

Adding a member

Next, Anita will want to add team members to the TunaSwap org. To do so, she can navigate to the Members tab of the Org page and click the Add a member button. Clicking the button in the dropdown will lead her to the Gnosis Safe UI.

After logging in to her Gnosis Safe, she can navigate to the Settings tab and add members by inputting their Ethereum addresses. In the Gnosis Safe UI, she can also set the quorum needed to pass certain actions every time she adds a member.

After adding members, she can navigate back to Upstream and see the members added by viewing the Members tab. If members have attested their Ethereum address in Upstream their Radicle name (and emoji avatar!) will show up here.

Anchoring a project

Once she adds members, she’ll also want to add TunaSwap’s projects. To do this, she’ll need to anchor the projects on-chain through the Org contract.

To anchor a project, she adds the Radicle ID of the project and the commit hash that represents the state of the project that she would like to anchor on-chain.

Once she clicks “Anchor”, she’ll be prompted to sign the transaction. This creates an immutable “snapshot” of the source code of a project that represents the canonical state of a repository and commits it on-chain. If TunaSwap requires signatures from multiple members (i.e. a quorum), other members of the Org will be prompted to sign the transaction in Gnosis Safe. In Upstream, she’ll be able to see the pending project on the project page.

Once enough members have signed the transaction to reach quorum, the project will be added to the Org page and an anchor icon will appear next to its name. When anyone hovers over the anchor, they will see the commit hash, transaction ID, and how many people have replicated the project state.

Next steps

  • We’ll be building the Orgs MVP over the next couple of weeks alongside the Gnosis Safe team :muscle::tada:

  • Once we have something usable, we’ll be doing some user testing to gather feedback on the experience. If you’re interested, DM me!

  • While the MVP will be closely integrated with Gnosis Safe, we see Radicle Orgs being interoperable with other DAO frameworks. I know @papa-raw @jpkcambridge @nico are interested in figuring out their DAO frameworks can integrate - the Gnosis Safe integration will be a great start!

That’s it! Feel free to drop your questions and ideas in this thread. We’d love to hear what people think and how they envision Orgs fitting into their everyday workflow :sparkles:

10 Likes

So awesome this updates , Thank you for all your hard work on this @abbey

1 Like

You have no idea how happy this makes me!

Especially given the recent launch of the Gnosis Safe DAO module and SafeSnap plugin for Snapshot.

1 Like

The beginning of something great for Radicle! Thanks @abbey!

1 Like

This is cool, but eth has got more pricey. 150$ is a non-trivial amount of money to create an org. (and it’s only going to get more expensive).

It’s layer 2 summer. Can we be radicle and use a fraud-proof layer 2? or does the nft nature of it mean that we need to wait for a ZK L2?

1 Like

@igor is exploring Layer 2 options for our contracts as we speak! He did a great overview at our last Community Call.

I really love this feature. I do have an edge case that I believe is likely widespread enough to merit consideration and I’m wondering whether it will be supported: connecting an org to an existing Gnosis Safe.

I am the director of an organization that just created a Gnosis Safe and am now wondering whether we’ll have to abandon it to start a new one through Radicle to manage our repos, or whether there is a way to integrate an existing Gnosis Safe into the new Radicle org.

Thanks for any help or insight you may be able to provide and kudos to the entire team for creating something so powerful!

3 Likes

Hey. What are you working on? Happy to help you onboard to orgs and subsidise. You can setup an org with existing gnosis safe by adding it in the single signer field.

Full setup tutorial can be found here: Tutorial: Setting up your DAO on Radicle — Radworks

Also happy to jump on an call to learn more about what you’re working on get you up and running.

1 Like

I’m so sorry I didn’t respond! Looks like my notifications weren’t on email… (changing that now)

Would you still be up for that call sometime? I’ll take a look at the resource you shared and would love to step through some of this with you.

Can we coordinate via Telegram (@bierlingm) or email (moritzbierling@hey.com)?