ETHBoston Hack Report:
Having just gotten home from ETHBoston, I thought I’d do a quick writeup about our project. Our team, Jesse B. Miller and I, built a simple proof of concept for state management in DAOs, a DAO primitive we think DAOs should incorporate as soon as possible.
What do we mean by “state management”?
The term sounds technical, but most examples of it are very intuitive: DAOs should be able to endorse mission statements, codes of conduct, official product versions, partnership agreements, and so on. Generalized, we’re calling this idea “state management,” as in state machines.
Aside: In a sense, Ethereum is already recording some state information for all DAOs, and many DAOs track aspects of their own state directly (like storing proposal history). These are highly specific states, though, and neither is particularly good for the purposes described above.
What we built
To demonstrate generalized DAO state management, Jesse and I built a DAO on Ethereum’s Ropsten testnet that manages one arbitrary state: the code for its own UI. It uses a naive DAO smart contract to let users
- propose potential state changes (a variable stored on the smart contract)
- “join” to gain voting power so they can vote on those proposals (insert existing DAO framework here)
- execute passed proposals to change the state (which changes the stored variable on the contract).
We then built a simple shell UI that replaces itself with whatever is stored at the address currently stored in the DAO contract’s state.
The shell UI is hosted here, and you can check out the solidity code for the DAO here. The voting, proposing, and executing actions, if they are not currently supported by the UI, can be done using remix, with instructions here.
Why should you care?
1) State management strengthens DAO foundations
Mission statements, codes of conduct, core values, and their like are fundamental organizational tools, but without state management, DAOs can’t easily use them. We believe that these types of constitutional texts will be particularly useful for decentralized organizations, since the texts’ interpretations can be formalized through Kleros or the Aragon Court.
2) State management allows new DAO actions
Not only can state management DAOs endorse specific chunks of data, they can iterate on them. That means state management DAOs can do things like refine product designs, write multi-author articles, edit videos, collaborate on digital art, and so on. And this iteration need not be linear: A/B testing and branching are possible.
DAOs might also use state management to get “smarter,” iterating on budgets and plans that then bind the DAOs’ future actions in some way.
Next up for this project
Jesse and I are hoping to start work on implementing some MVP state management features for existing DAO frameworks like DAOstack and Aragon as soon as we can. If you’d like to help, get in touch: Ezra, Jesse.
Thanks for reading! 🙏🙏🙏