Introducing the Tribute DAO Framework
Tags: Blockchain, Smart Contracts, Decentralization, Crypto

The era of DAOs is coming. Yet, the technical underpinning of DAOs needs work. The Tribute DAO framework aims to make DAO development easier by balancing a more modular design and an optimistic rollup with the security guarantees of Moloch. Through this approach, DAOs can evolve and teams can work together to rapidly evolve DAOs and their potential use cases.

DAOs are coming into their own. Ethereum’s broad vision has not just been about an underlying token which powers decentralization applications, but also about re-orienting how digital communities organize. With DAOs, individuals from every background, creed, and location can easily work together, stripping away hierarchy in favor of smart contracts and full transparency.

In 2019, MolochDAO brought new life to the DAO ecosystem. Through an elegant smart contract design, MolochDAO helped rebirth the vision of DAOs from the fiery depths of “The DAO” towards the original vision of DAOs sketched out in the Ethereum Whitepaper.

Last year, the OpenLaw team, Ameen Solemani, and people from Metacartel helped evolve and extend the initial MolochDAO smart contracts releasing Moloch v2. This upgrade enabled multiple token support, “guildkicks” to remove unwanted members, and “loot” to issue non-voting shares still entitled to financial distributions. The upgraded contract was built with “venture” and similar for-profit, investment transactions in mind, allowing for more effective swaps and control over tokenized assets and membership.

The MolochDAO v2 extensions fueled a new wave of experimentation with DAOs, aiming to revive experiments with on-chain pooled investment communities. For example, using Moloch v2 and legal contract wrappers provided by OpenLaw, we were able to bridge the legal grey area between the crypto world and the real world and summon five DAOs, with a growing roster of DAOs poised for release.

The LAO, which kicked off these DAOs, and its larger network (Flamingo, Neptune, MUSE0, AlienDAO) has grown tremendously over the last year. The LAO went from $0 in ether contributions to over $30m with a decentralized group of members helping to support over 65 projects. FlamingoDAO, which has over $12m in assets and has acquired over 1,300 NFTs over the past several months and NeptuneDAO has over $22m in assets and closed one hour after it launched.

Outside of our efforts, we’ve seen an explosion of other DAOs focused on managing DeFi and NFT protocols. To put that into context just over a year ago there were tens of millions of dollars in DAOs and thousands of people participating in these new structures. Today, there are billions of dollars being managed by DAOs with tens of thousands of people participating, working, or supporting DAOs. The era of DAOs is truly underway.

Introducing the Tribute DAO Framework

DAOs have made great progress, but in many ways, DAOs are still in their infancy. It’s incredibly expensive to run a DAO, existing DAO frameworks often are designed as walled gardens, and existing treasury management solutions rely on a handful of multi-sig signers creating centralization and regulatory risks. The Tribute DAO Framework aims to address these shortcomings, building on our experience of running successful DAOs.

With the Tribute DAO framework, building and managing DAOs is easier through a modular architecture that is:

Customizable via adapters and extensions,

Upgradeable even after the DAO’s launch,

Closely integrated with Snapshot to enable gasless voting,

Customizable on the UX side, and

Lower cost, using an optimistic rollup that facilitates smart contract executions.

When viewed as a whole, these enhancements mean that development teams can work together to build DAO-related tooling that will benefit all teams in the Ethereum ecosystem and do so in a way that doesn’t bind a team or project to a single centrally maintained dapp, UX, set of signers, or walled garden.

As the growing number of participants in DAOs know, there is no “one-size-fits-all” for managing any organization, let alone a DAO. DAOs need components that can be assembled like Lego blocks to fit the needs of the organization and its membership.

Unpacking the Tribute DAO Framework

These improvements are due to the Tribute DAO framework’s upgradeable and modular design. The framework honors the simple, readable code of the initial two versions of Moloch DAOs, while also being more adaptable by using a library of modules that require less repetitive auditing. The codebase is open, extensible, and building adapters for DAO-specific use cases is straightforward.

For security and adaptability purposes, the Tribute DAO Framework draws from hexagonal architecture, explicitly separating out contracts to provide layered access to DAO state changes.

The framework separates logic between core contracts and different external adapter and extension contracts that can be launched and added as DAOs grow and select new operations.

A DAO Registry smart contract tracks all the state changes of the DAO. The external world (e.g. RPC clients) only can access core DAO smart contracts via adapters, never directly. And, every adapter contains all the necessary logic and data to update/change the state of the DAO in the DAO Registry contract directly or via an extension. As a result, an adapter tracks only the state changes in its own context and extensions isolate the complexity of state changes from the DAO Registry contract and simplify the DAO’s core logic.

Extending a Tribute DAO

Indeed, the real power of Tribute DAO is its ability to be easily extended by any development team, like DeFi’s “money legos.” Extending a Tribute DAO is as simple as adding another lego block. There is no need to build an entire DAO framework or to rely on other DAO implementations that rely on expensive and complex smart contract designs that have added cost and potential security issues.

Using adapters and extensions you can quickly add new capabilities to the DAO while reusing the core contracts, which enable us to easily assemble new and customized DAOs.

For example, out of the box Tribute DAO will have:

Coupon Onboarding: a way to onboard upcoming members to a Tribute DAO without the DAO paying the gas costs. A DAO creator produces and signs “coupons” to be issued to a particular ETH address for a specified number of tokens in the DAO. These coupons are then redeemed by the assigned ETH address, and once redeemed the tokens are issued directly to the ETH address.

TributeNFT: Any member or potential member can now provide as tribute a standard ERC-721s in exchange for the DAO’s internal tokens with this adapter. If the NFT is accepted by the existing Dao members, then internal units/tokens are minted to the potential member which submitted the NFT.

ERC20 Extension: Membership interests in a DAO can be ERC20 tokens. This extension allows the owner of the units to view their holdings in wallets such as MetaMask. By default these tokens are only transferable to other members in the DAO, but members of the DAO can vote to make these tokens transferable to any ETH address. This allows for members of DAOs to freely float their units on an exchange such as UniSwap.

We believe that there is a range of other adapters that could be useful for DAOs and Ethereum based software projects, including adapters to:

Interact with outside oracles like Chainlink

Facilitate swaps on Sushi or Uniswap

Create staking pools for a DAO’s native assets

Take out loans on Maker, Compound, or Aave from a member vote

Tap into Liquidity pools on Uniswap or Balance

Deposit assets into Yearn or Idle

Facilitate the sale of NFTs using protocols like Zora

Upgrade a Gnosis SAFE and summon a Tribute DAO

Work on UX so members only interact with the DAO through meta transaction, meaning that only the DAO pays for the execution

Building a DAO Stack

What’s more, the Tribute DAO framework is closely integrated with Snapshot, enabling DAOs to engage in low-cost governance voting and soon lower-cost smart contracts executions from a snapshot-based vote (assuming there is no evidence of fraud). We’re beginning to work closely with Collab.Land to bring DAO-based voting and DAO actions to various different platforms, like Discord and Telegram.

The Tribute DAO Framework covers Moloch v2 features and is feature compatible with Moloch v2. Those already in the Moloch DAO community should be familiar with the utility of these adapters, such as `ragequit` and `guildkick` to remove guild capital and members, respectively, as well as the escrow function of member proposals in `onboarding` and pull pattern of `withdraw` for payments.

Deploying a Tribute DAO

To learn more about the Tribute DAO framework, check out our tutorial where you can learn how to:

Install and configure the development environment

Deploy your own DAO

Setup the Tribute UI dApp to interact with your DAO

If you follow the tutorial, you will be able to create and deploy a DAO to the Rinkeby network and will be able to invite your friends to play with the DAO using our dApp.

Creating an Adapter and Extension

Once you set up your DAO, you can learn how to add new features by following these additional how-tos:

As an example, we prepared two simple adapters that extend Tribute DAO using the: withdraw and onboarding adapters as base logic.

These adapters were able to quickly extend Tribute DAO to make it easy for users to claim tokens related to a DAO, handle NFTs in the DAO’s GuildBank, and integrate Chainlink as an oracle for a financing proposal.

No more need to manage these functions with a third-party solution or through a multisig — all of these tasks can be easily managed via members of a DAO.

Join Us

We’re at the tip of a much larger iceberg with DAOs. We hope the Tribute DAO framework will evolve to help the DAO ecosystem grow in a more sustainable and collaborative way.

Hit us up if you’re interested in learning more about the Tribute DAO framework, have development ideas, or have any technical questions. And, if you want to build an adapter or extension for a particular use case, you can make a pull request or create an issue in Github.

You can send us a note at hello@tributedao.com or join our telegram or discord, or follow us on Twitter for updates, or explore Tribute DAO docs at https://tributedao.com.