Simplifying the Complex Language of DAOs
With due respect to the multiple authors, visionaries, builders, and creators who have written volumes of content on the Web3 ecosystem, there’s one crucial piece that’s missing: a simple, bare-bones explanation of what a Decentralized Autonomous Organization (DAO) actually is.
Once you’re in the DAO/Web3 space, the buzzwords and definitions make sense. Web3 natives know so much about the topic and all of the intricacies of governance, issuing tokens, how every part of the blockchain actually works, and so on. They live it, they breathe it, and they just know it.
But for someone who’s just starting to explore decentralized organizations and Web3, it’s helpful to slow things down to a crawl, break things down, and explain things in the simplest way we know.
What’s a Decentralized Organization?
DAOs are Decentralized Autonomous Organizations. They can be any group (like a company or a non-profit) but instead of being controlled by a single owner, they are run by a community that’s most likely distributed globally.
The main element that enables DAOs is a smart contract. Not unlike a digital version of a shareholder agreement, a smart contact is a coded program that defines and operates on predetermined conditions or rules.
When it comes to decision-making, the DAO community votes on what actions to take. The contract itself, the voting, the distributions, and everything else within the DAO runs on a blockchain, therefore everything is transparent and all of the members can see everything. When they reach the reqired consensus, the contract acts automatically to actualize the approved decision.
Most DAOs issue a token; a term that refers to cryptocurrency that’s not Bitcoin or Ether. If you hold a token, you have a vote.
A DAO can be built for a specific purpose. A Service DAO such as RaidGuild exists as a design and development agency for Web3 projects, no different from an ad agency or design firm in Web2. MetaCartel is an investment DAO that offers to fund promising projects that are building new applications, while providing financial returns to its members. On the other hand, there can be DAOs that exist for reasons outside the scope of Web3 infrastructure building such as Krause DAO, which is governed by a community of passionate NBA basketball fans. If there’s a reason, then a DAO can exist.
At a high-level, this is a broad and general definition of a DAO, and it makes sense.
A DAO is an entity led by a community, based on a smart contract on a blockchain, that automatically and transparently executes decisions that have been voted upon.
Without going into the nuances of different DAOs and their mandates, you won’t find much argument over this high level description. Especially if you’re familiar with the Web3 space. But, as noted earlier, not everyone is there. It’s important to understand the nuances of DAOs, DAO tools, smart contracts, and on.
Sometimes, it is easier to understand complex topics with a relevant example. Let’s say you are committed to cleaning up the oceans. You can form a DAO with 99 others who have the same goal in mind. You can each buy a token for $100 to create the treasury of the DAO. In your smart contract, you can stipulate that a simple majority vote from all the token holders is all that is needed to disburse funds. You can then bring it to a vote which projects you want to fund. Say 51 people voted to donate $500 to the Oceanic Society, the vote automatically verified and recorded on contract, and a designated representative can send the funds to that charity.
Conversely, you could also propose to pay your kid and his friends $500 to pick up trash at the local beach; but, if you don’t get the required 51 votes for this idea, the money remains in the treasury.
Demystifying the DAO
The important thing is always to go back to thinking that a DAO is very similar to a company, with a shareholder agreement incorporated in a specific jurisdiction. That’s a pretty straightforward way of describing it. But in this case, instead of creating an LLC in the US, for example, we’re incorporating and using a smart contract, on a specific chain. For example:
A shareholder agreement = A smart contract (A Moloch contract, for example)
A specific jurisdiction = The blockchain you’re on. (This could be Polygon, Ethereum, NEAR Protocol, etc…)
But the thing about the DAO explanation above, unlike a traditional corporate hierarchical structure, is that in Web3 there’s no clear definition on what makes an organization a DAO. There’s no such thing as an official DAO ‘framework,’ or organizational model. There’s just the DAO smart contract, which can be a pre-built contact from a template. Or you can create your own from scratch. You can really do whatever you want when it comes to establishing the rules, structure, distribution and procedures of your DAO.
For example, your DAO might not have a treasury or issue any tokens; it can be all about voting and decision-making on a Discord channel. Great. It’s still a DAO.
Some crypto-purists, however, will argue that you can’t have successful governance without a token, or else it’s not a ‘true’ DAO. This isn’t true. Technically, you could govern the members of the DAO without a token at all or any assets. You can just write a contract that defines who is part of the club. Have a fantasy team? It can be a DAO. Book club? DAO. They’re basic examples, sure, and not all that common, but any protocol that allows voting by members, regardless of having a treasury or assets, is DAO.
Building a DAO
There are a few words that are used to describe the components and features of DAOs, that are used interchangeably, such as framework, contract, protocols, and so on. In most cases, they’re used appropriately. At other times, what they’re trying to say isn’t what they mean. We’ll explain.
Reframing the Framework
Earlier, we mentioned that there’s no official framework for building a DAO. You can either use an all-in-one DAO creator tool, or you can code your own smart contract from scratch. You don’t need any “official” framework to build.
But, the word framework is thrown around a lot in Web3. What does it mean?
When someone is talking about framework, what they usually refer to is something like DAOhaus, TributeDAO, or AstroDAO, for example. These are the all-in-one platforms/tools for building, launching, and managing DAOs. They are not a mold, a template, or a blueprint that define what a DAO should be. They’re an aggregator of tools and templates, if you will.
For example, from a DAO building perspective, think of DAOhaus as something akin to a meal kit box like Amazon Fresh Meal Boxes; a service that collects your ingredients from Whole Foods, packages it up, and delivers it to your door with a recipe. Everything you need is included. Or, you can find a recipe online, modify it, and go shopping for the ingredients.
Hence, in the language of DAOs, a framework isn’t the shape your DAO should take, it’s the platform that helps you build it.
You also shouldn’t classify or categorize DAOs by their frameworks/building platforms. It wouldn’t be all that useful. You can’t make a pile of AstroDAO-built organizations over here, and classify them as a certain type of DAO. The platform is irrelevant to the purpose, objective, or functionality of the DAO.
Using the Interface
Offering the tools and resources isn’t the only thing that AstroDAO and DAOhaus do. These platforms are also the visual front end interfaces that allow developers to interact with a smart contract that’s deployed on a supported chain. Much like when they build their DAO and create a smart contract, DAO builders have the option to use DAOhaus, or AstroDAO as their interface, but they could also go out and just completely create their own front end to it as well. Or they could clone AstroDAO and make it look totally different. And the fact is, a lot of organizations do that.
These front ends have the capability of enabling developers to add features to their DAO. You can access the code on the server and then develop a protocol or build an integration with whatever you want - Slack or Discord, for example. Then your framework can become much more than just the visual front end. It could be doing more, and look completely different from the next DAO.
Being Smart about a Contract
A smart contract is a computer program or a transaction protocol which is intended to automatically execute, control, or document relevant events and actions. When the smart contract is coded, the stakeholders all agree on what the purpose of the smart contract is. They define the trigger events, program the actions, and decide how governance will be administered. Each building platform has a smart contract/protocol associated with it, or you can code your own from scratch. For example, DAOhaus uses a Moloch contract, while AstroDAO uses the Sputnik Protocol.
On the Web3 forums, in conversation, or in speaking to builders and developers, there may be a mention of a DAOhaus contract that’s being used, or some variation of that. There’s no such thing. When you’re using DAOhaus as your framework, you’re actually referring to the Moloch protocol. Or, when someone’s referring to AstroDAO, they really mean the Sputnik Protocol. These are the protocols and contracts that users are referring to.
Also, a contract might also be referred to as a protocol. In simple terms, a protocol is a program that permits a user to interact directly with the blockchain without needing to know implementation details, something only a developer might know. This could be any smart contract, a wallet such as MetaMask, or a chain like NEAR Protocol.
Is it DAOhaus or the DAOhaus DAO?
One more thing. The confusing conversation that inspired us to write this blog post, and it has to do with DAOhaus, but can also be applied to other examples in Web3.
While in a discussion with another builder, they asked if Grindery was partnering with DAOhaus. We’re not partnering with them. We are using the framework and the Moloch contract, but we’re not sharing our code with them, nor are they sharing anything with us in any formal relationship.
This prompted a “what’s the difference?” In actuality, there is a huge difference, and it’s a valid point. There’s ambiguity around how builders and developers say they are working with something like a DAOhaus, because they are also a DAO. Is it a true partnership that they have, or are they using the tools that DAOhaus is providing?
Really and officially partnering with a DAO is something else entirely. DAOs that partner with other DAOs work together across 3 successive layers:
Social interoperability - where there are strong relationships that have been built between the DAOs. They may speak at each other’s events of work collaboratively on a project. This is when the relationship/rapport/trust building begins.
Product/Technology interoperability - DAOs start to invest resources into building connections between the products/services of each DAO.
Governance Rights interoperability - when the governance rights of each DAO is extended to the other DAO, likely via something called a mutual grant - an agreement that protects both parties, but also gives simple rights of access.
Granted, we’re all playing in the same sandbox and Web3 builders are focused on the interoperability between chains, DAOs and dApps, but we’re not there yet.
Going back to DAOhaus, the challenge lies in the fact that DAOhaus has a DAO to manage themselves, and function accordingly. So on one hand, they offer a framework that allows someone to build a DAO and interact with it via an interface. But they can also be a channel partner with another DAO or Web3 tool. So when someone says they’re working with them, they could be referring to the interface or the DAO. Without clarification, it’s confusing.
For example, at Grindery, we’re not supporting DAOhaus, or have any official relationship with them. Technically, we are using the Moloch Protocol, not anything to do with their DAO. When someone goes into Grindery and creates a workflow to trigger a call, we’re not doing anything with DAOhaus, but the protocol on a specific chain. If we were to interact or partner with DAOhaus that would mean we’re somehow interacting with their front end, and building an integration and relationship, which doesn’t exist at present.
Despite Web3 existing as a universe of blockchains, code, decentralized organizations, and a backend that only seasoned developers can understand, language and education is important when it comes to the community and the introduction of new members. Grindery is looking to simplify how dApps, chains, DAOs, and apps speak to each other. To do that, we should all start using agreed-upon terminology to minimize miscommunication.