Vyper contracts used in the Curve Governance DAO.
Curve DAO consists of multiple smart contracts connected by Aragon. Interaction with Aragon occurs through a modified implementation of the Aragon Voting App. Aragon's standard one token, one vote method is replaced with a weighting system based on locking tokens. Curve DAO has a token (CRV) which is used for both governance and value accrual.
View the documentation for a more in-depth explanation of how Curve DAO works.
- python3 version 3.6 or greater, python3-dev
- vyper version 0.2.4
- brownie - tested with version 1.14.6
- brownie-token-tester - tested with version 0.2.2
- ganache-cli - tested with version 6.12.1
To get started, first create and initialize a Python virtual environment. Next, clone the repo and install the developer dependencies:
git clone https://github.com/curvefi/curve-dao-contracts.git
cd curve-dao-contracts
pip install -r requirements.txt
The test suite is split between unit and integration tests. To run the entire suite:
brownie test
To run only the unit tests or integration tests:
brownie test tests/unitary
brownie test tests/integration
See the deployment documentation for detailed information on how to deploy Curve DAO.
Curve DAO contracts have been audited by Trail of Bits and Quantstamp. These audit reports are made available on the Curve website.
There is also an active bug bounty for issues which can lead to substantial loss of money, critical bugs such as a broken live-ness condition, or irreversible loss of funds.
You may find the following guides useful:
If you have any questions about this project, or wish to engage with us:
This project is licensed under the MIT license.