https://lh5.googleusercontent.com/IE3bv4q7xx8HsQhLRHRwA0Ckk_hBmeFek1xknAK4TshsPOdO4CyNvXTnddIiUBlSd9XgUcSyPwEDCCoo4MGUfAtvHroCvtInTcfWwZNPTnoQ_mMSgFLmVtVBSgYi4o2Dq-NC_8Oz

Lego DAO Framework

Minimal Architecture for DAOs

A framework to develop DAOs on Ethereum

This is an early stage document, a work in progress, and we expect this document to change.

All comments welcome

A blueprint for DAOs

One basic starting point of is that a "on-chain DAO" is naturally divided into different functional groups:

  1. The Avatar 🏦 holds the assets of the DAO (tokens, permissions on other contracts). The main purpose of this module is security: this is where constraints are defined and where basic permissions are set. In our MVP, we use the Gnosis Safe for this module.
  2. The Decision Engine 👍⚙️👎 is where the logic of the DAO decision procedures is defined. It defines rules about how proposals are made, how votes are cast and counted, etc In our MVP, we adapt Compounds contracts
  3. The Voting Power 💪⚖️ module defines how much influence each address has in the decision procedure. This voting power can be simply based on the balance of an ERC20 token, or it can be the result of complex calculations on the basis of staked or locked tokens. In our MVP, we will use a snapshottable token from OpenZeppelin.

⚖️

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/def87945-e623-4b5b-a98e-cdd3362e7fd3/Untitled.png

Adopting this tripartite architecture has several reasons:

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/38637267-9d07-417d-b935-202472b8d370/Untitled.png

Avatar

This component is responsible for holding the assets of the DAO - these assets can in the form of transferable tokens, but can also be in the form of voting rights or other on-chain permissions. This module can, in theory, be a very simple execution relayer, but in practice could be an on-chain multi-sig wallet such as Gnosis Safe 🏦