Aragon’s New Smart Contracts: the Why, the What, and the How
When Aragon was first built in 2017, the concept of a DAO was still in its abstract form. To many, this was a challenge. But to us, this meant an opportunity.
AragonOS as our starting point
We embodied the laser-focused mission of bringing clarity to DAO-building and within the next few months, the Aragon team produced a ground-breaking tool that took DAO builders from 0 to 1.
With templates for different types of organizations, our opinionated contracts provided an easy set-up for DAOs to get up and running in a few minutes. For the more advanced builders, we also designed an SDK (software development kit) enabling engineers to integrate their custom needs into DAOs.
Within a few years, the results have been astounding. Without a single hack up to date, we’ve seen thousands of DAOs created and billions of dollars worth of transactions, completely transforming how humanity experiments with new ways of collaboration.
Building from the experience of AragonOS
Today, it’s 5 years later and the 2022 DAO market is still incredibly young. Especially with the explosion of DAOs in the last year, we’re seeing newer protocols arise and a market with nicher requests, more demanding needs, and higher expectations.
After 4-5 years of working side-by-side with DAOs, we’ve gathered enough learnings to realize that our current stack needs to be more modular, flexible, and adaptable to keep providing value in this ecosystem.
We want to build for the next 10,000 DAOs, not only for the first 1,000 – which is why, after months of research and many lines of code, we’re sharing our new set of smart contracts designed for the future.
DAOs are permission management systems
At their core, we realized DAOs are in fact permission management systems for decentralized organizations, where different components need specific permissions to execute certain actions.
In its essence, DAOs are repeatedly granting and revoking permissions to different contracts and externally owned accounts (people’s wallet addresses) to perform tasks. This is how we create trustless systems that collaborate together.
Be it through building sub-DAO or alternative governance mechanisms, we set custom roles for different teams throughout the organization to be able to vote in certain decision tiers or to perform a specific set of actions.
For example, the DAO contract grants the execute
permission to a specific contract, which may only execute
the action when a certain condition is met, like a positive result in a proposal’s vote.
The Roles
contract
It’s why leading our DAO is our Roles
management contract. The DAO contract holds assets and grants roles to other contracts to manage those assets, as well as any other custom functionality the dev wants to add. Depending on these roles, external addresses can execute (or not) predefined actions.
The way it works is that the internal logic of a contract and its role define the execution of the action, as well as the interactions of the community with such contract – rather than the DAO contract itself making all calls. The DAO is merely the one in charge of allowing (or not allowing) those actions to happen.
We can say that components are similar to a remote control to a DAO’s assets, where the remote control says what gets executed or not, but the control needs to be given access to controlling the TV in order to run the actions.
The Roles
contract grants, revokes, or freezes permissions and can ask oracles to allow calls based on on- or off-chain state.
This allows for the DAO contract itself to be incredibly lean, containing only the essential functionalities a DAO needs.
This open protocol is designed to empower DAOs we can’t even imagine today, through a solution that is simple and flexible enough to enable the DAOs of tomorrow.
The Plug-ins
A large part of this is enabled by plug-ins, which are the implementers of the actions**. Any engineer can develop their own plug-ins, pass custom permissions or settings to them, and design the functionalities their DAOs need.
Or, if they’re a more beginner builder, they can simply use our pre-made plug-ins and design a DAO with our preset feature set. We’re working on base plug-ins that can cover 80% of the DAO’s common needs through ready-made tools to support DAOs in getting started quickly.
And if the tool you’re looking for doesn’t exist, anyone can tap into our thriving, open-source community, filled with developers who have been at the leading edge of DAO tooling for years. With full freedom to extend functionalities, developers can integrate and build new plug-ins in whichever way they want – empowering an ecosystem of tooling that thrives for everyone with almost no learning curve or interfaces imposed.
This modularity in the contracts’ architecture enables for a design that is unopinionated, flexible, and adaptable, so that the next generation of DAOs can best suit the needs of its creators and evolve through time.
Extremely light by design, DAO members should only pay gas for the features the DAO truly needs, not for “just-in-case” features as well. Any external integration is possible, but only as a voluntary opt-in choice.
For example, integrating a plugin to perform any action is as simple as assigning a role to a function and then enabling the function to perform any logic from the DAO itself.
Our plugin interface is also upgradeable by default, although teams don’t need to inherit from it if they don’t want to, and we don’t envision teams upgrading them too often either.
Thanks to the contracts’ architectural design, teams are often better off deploying new ones and revoking roles to old ones. They are also gas-efficient, since you’re only paying for the role-assignment transaction. And because they’re so lean, it’s easier to audit the security of the component.
TLDR
To conclude, we built an architecture that is meant to be future proof enough to serve as a base for any type of organization, voting structure, team, or vision.
We’re betting on leveraging the amazing tooling that is already out there to increase the value of everyone’s products by allowing for easy integrations and extensibility.
We’re building an infrastructure thinking of the next 10,000 DAOs and we’re making it open-source and available for anyone willing to experiment with us.
If this is something that is interesting to you, we’d LOVE to hear your feedback. If you’re an engineer, please join our Alpha testing program or consider joining us in building this vision. If you’re a business developer, let’s speak about how we could integrate. We want to meet you and we want to build with you.
--
Aragon is building the future of decentralized governance for Web3 communities & organizations. Deploy a DAO on Aragon Client or Aragon Govern, manage your community on Aragon Voice, resolve disputes in Aragon Court and run enterprise-level votes on Vocdoni, all within our open-source stack. See the latest at aragon.org, subscribe to our monthly newsletter, join the conversation on Discord, or follow us on Twitter.
Docs | YouTube | Telegram | Github | Reddit | Linkedin | Forum