BaseDAO is a generic smart contract on Tezos that enables a community to collectively govern resources, registries, or rules.
The contract enables the creator to customize their DAO based on a number of attributes, and uses a ‘decision callback’ to specify arbitrary code that can be governed by a DAO’s proposals. BaseDAO also includes Permit (TZIP-17) to enable off-chain voting.
The specification document contains more details and is used as a basis for the smart contract development.
BaseDAO uses a build time configuration to generate the required variant of the BaseDAO.
Aside from the specification, that contains detail about the configuration as well, there are also the included DAOs below.
BaseDAO is implemented in LIGO, you can obtain the compiled contract as well as the initial storage for all the included DAOs from the latest release or build them from source by following the building instructions.
The simplest DAO, has no real logic configured but what's common to every DAO. This has only demonstration purposes.
Registry DAO is a decentralized key-value storage of arbitrary data. Much like Treasury DAO it can also hold XTZ and FA2 tokens that its users can decide on how to spend.
Treasury DAO is a DAO that holds XTZ and FA2 tokens and lets its users decide how to spend its XTZ and tokens.
The contract can be originated with tezos-client
:
tezos-client originate contract baseDAO transferring 0 from alice running BaseDAO.tz --init "$(<storage)" --burn-cap 17.0
Instructions on how to install tezos-client
can be found at official Tezos installation page or in our tezos-packaging
repository.
This contract includes a TypeScript API, based on Taquito, to interact with DAO contracts.
For more informations on its features and usage see its documentation.
Tests for this contract are implemented in Haskell using the cleveland framework.
For more detail about the test suite and how to execute it, check out its README.
Please see CONTRIBUTING.md for more information.
MIT License Copyright (c) 2022 Tezos Commons