DAOOOR is a powerful tool for creating, joining and managing DAOs. Create a DAO with a treasury and a governance system in less than 2 minutes.
DAOOOR is a powerful tool for creating, joining and managing DAOs. Create a DAO with a treasury and a governance system in less than 2 minutes.
DAOOOR leverages ERC6909 semifungibility, ERC6551 account abstraction and OZ Governor to create an innovative DAO system.
6909 -> multiple owners of the same tokenId 6551 -> smart wallet account bound to a tokenId with multiple owners. It looks like a problem, everyone can call executeCall on the TBA. But there is not a problem, there is a DAO.
The problem is to choose an schema:
On top of that, we have built sponsored dao memberships powered by Sismo. Scholarhips, onboarding artists and contributors, private communities are some of the use cases unlocked.
How it started: Beyond the limits of DAOs, ERC6551 and ERC6909. Exploring the possibilities of this powerful combination.
How it is going: An nft with multiple owners abstracted into an smart wallet with no trust that gets abstracted in a DAO managed trough a trustless governance system.
We built a little Next dapp to interact with our contracts where all the magic happens. Data from contracts is indexed in a Subgraph powered by The Graph. We leverage Sismo ZKPs to achieve sponsored dao memberships. Deployed on Mantle, Scroll and Polygon (mumbai and zkevm)
The DAORegistry is the core of our project. Create, join and manage DAOs. The 6551Registry allows us to create TBAs bound to our DAOs. The DAOTBA is a custom implementation of the 6551 TBA with support for erc6909 and OZ Governor. The erc6909 implementation is a custom version combining the 2 reference implementations.
The main problem was the 1-of-n to m-of-n schema problem. Having multiple owners of a TBA allows every member to run out with the treasury funds, while it maybe okay in trusted environments, web3 is about trustless ones. Finally, 2 days ago we found a way to get trustless execution on our DAOTBA, just requiring the DAOTBA to only call the Governor, the absence of trust is no more a problem, now every call to the executeCall function must pass trough the proposal system of the Oz Governor (it can be easily change to support Compound and Nouns style daos) converting the an erc6909 semi fungible token in a smart wallet controlled by voting system.