The initial proposal for the DAO1 primitive on Chia is shared in CHIP-0024. Much like how the Chia Network team approached NFTs, they looked at major issues with existing implementations on other chains and aimed to address them in their first iteration, namely addressing voter apathy.
The proposal itself goes into more details about DAOs, how they’re different from traditional organizations, and issues with existing implementations of DAOs. We’ll summarize some of that here.
What is a DAO?
Let’s start with the basics, a DAO – or Decentralized Autonomous Organization – is like a democratic organization existing and managed on a decentralized blockchain. It’s a way for users to collectively make decisions, agree on rules, and manage resources. Each DAO primarily operates through something called a treasury. This treasury is like a communal pot of funds, which can be spent only when the DAO members agree on a proposal. Voting on proposals is done by a DAO governance token — on Chia this is called a DAO CAT (Chia Asset Token). Members can vote “yes” or “no” on proposals and the weight of a member’s vote is directly proportional to how much of the token they hold.
An Example of a Community Funding DAO
@michaeltaylor3d had raised the idea of a community-managed DAO to crowdfund money to support different ecosystem projects. Here’s how such a DAO might function on Chia.
Step 1: Create the DAO
The DAO creator(s) can create a new DAO (which is a singleton on the Chia blockchain) and specify a few important settings (rules) on how proposals in the DAO work including:
- Proposal timelock: the minimum time a proposal is open for voting
- Attendance required: the minimum number of votes required to reach quorum
- Pass percentage: the majority of “yes” votes needed
There are a few more settings such as soft close length and oracle delay that won’t be covered here. See the DAO CLI docs for full details.
Step 2: Fund the DAO treasury
The DAO creator(s) can then fund the treasury by minting and listing DAO CATs for XCH. The process of selling DAO CATs is most likely to be done via Offer files on marketplaces like dexie, though one could imagine distribution via an AMM like Tibetswap as well. People interested in becoming a DAO member simply accepts one of these Offers and purchases the DAO CAT thereby funding the DAO treasury.
Step 3: Make proposals
Any DAO member can create a proposal. Initially the DAO1 standard will ship with three standard proposal categories:
- Sending treasury funds
- Updating proposal settings
- Issue new DAO CATs
Other proposal categories are allowed as well as long as it can be expressed in Chialisp.
For example to make a proposal to fund a community project, anyone can create a proposal to send 100 XCH from the DAO treasury to Spacescan‘s public XCH address.
Step 4: Advertise proposal
The proposer is motivated to advertise their proposal in order to garner participation and votes. This also provides motivation to keep proposals simple in order to reduce voter apathy.
Because DAOs have predefined minimum participation numbers and pass percentage, this ensures any passed proposal is reflective of a true majority of DAO members. One issue in other blockchain implementations is the lack of these controls, letting a small group of actively engaged DAO members exert outsized control over any DAO decisions.
The specifics of a proposal can be validated on-chain by anyone to ensure the advertised specifics matches the underlying Chialisp.
Step 5: Members vote
DAO members vote on proposals by submitting a yes
or no
vote, along with the number of DAO CAT tokens they wish to vote with, without the DAO CAT ever leaving their possession. While a vote is active, any DAO CATs that are participating are “locked” so that they cannot be traded, but they can still be used to vote on other proposals.
The DAO CATs are unlocked if they are not participating in any current proposals and a certain amount of time has passed since the last vote (configurable by the DAO).
At the end of the proposal window, the vote results are tallied and a proposal passes only if:
- The number of votes received exceeds the “attendance required” threshold.
- The proportion of “yes” votes received exceeds the “pass percentage” threshold.
If both are true, then the underlying proposal (spend) is executed on-chain and in this example, it would initiate a spend of 100 XCH from the treasury to Spacescan.
Limitations of DAOs
There are limits to what a DAO can accomplish and many use cases will still rely on trust of a centralized party, namely the DAO creator(s). For example, any DAO action that cannot be defined in a Chialisp puzzle can go through a DAO vote but execution will ultimately rely on a person to carry out. For example, a passed proposal to purchase and donate new computers to a local charity can release treasury funds to a person who is then entrusted with carrying out that physical purchase and donation.
Another limitation is trusting the distribution of the DAO CAT. It is important for members to investigate and understand the tokenomics of a particular DAO set up to ensure they are comfortable with the allocation of the initial (and subsequently minted) DAO CATs. If a proposal passes to mint more DAO CAT for another round of crowd funding/distribution, the CATs themselves will be sent to an XCH address from which Offers will need to be manually created and publicly shared.
Potential Future Uses
Although the first iteration will ship with just 3 standard puzzles, they can already do the vast majority of what one would expect a DAO to be capable of doing. The nature of the design allows for any Chialisp puzzle to be used so future use cases can be developed to enable other types of proposals such as:
- Payroll: A series of timelocked (clawback) future spends to pay a monthly salary to a developer. The developer can sweep a portion of the funds at the beginning of each month, though the DAO could vote at any time to clawback all future spends (for example if the developer quits the project).
- Fractionalized NFTs: Accepting NFT Offer Files, creating a DAO that manages a portfolio of NFTs. Ownership of the NFTs are then proportional to ownership of the DAO CATs. Selling NFTs would be trickier though as Offer File creation is off-chain.
- Verifiable Credential Restricted DAOs: Merging DAO CATs with Credential-Restricted CATs can create a DAO that only allows members that hold a particular Verifiable Credential to participate. For example, a DAO that is restricted to only citizens of a particular country, or only to holders of a specific NFT collection.
What other use cases can you think of?
Diving Deeper: Technical Notes
Credit to @yakuh1t0 (creator of the TibetSwap AMM) for helping me understand the specific implementation of the DAO primitive on Chia.
Each DAO is represented as a ‘singleton’, referenced as the DAO’s treasury. This treasury holds the funds, which are locked within an updated ‘p2_singleton’ puzzle. The treasury has the sole authority to manage (spend) these funds. Side note: anyone can combine change in the treasury into fewer coins.
To get the treasury to take an action, you need to pass a proposal. When launching a proposal, you create two coins – a timer coin to ensure sufficient time for the voting process as dictates by the treasury parameters and a proposal singleton to gather the votes.
First vote always reveals the puzzle that will be run if the proposal passes – that way, you can see on-chain what you’re voting for though a human-readable description and any discussions are more likely shared off-chain.
If the minimum attendance required is not met (too few votes) or the yes
margin is too low, the proposal is simply closed.
However, if everything goes well and the proposal passes, the 3 coins will be spent together (proposal singleton, timer coin, treasury singleton) and the proposed coin will run on-chain.
Theoretically, you can use any CAT for a DAO but the special DAO TAIL is multi-issuance allows the treasury to mint more CATs in the future.
To vote, your DAO CATs need to have a special lockup layer (dao_lockup.clsp
). So the coins would be CAT layer > DAO lockup > inner puzzle (your p2 puzzle). This layer keeps track of what proposals you voted for as a list of proposal IDs to ensure you don’t use the same CATs to vote twice. After a proposal has ended (either passed or not – what’s important is that the voting phase ended), that proposal id is removed from the list. When the list is empty, you can ‘exit’ the lockup layer – and basically get your ‘normal CATs’ again into a tradable state.
[…] article on XCH.today: “Understanding DAOs on Chia and How They’re Better“. […]