Overview
Info
This section is still using Brownie.
The Curve DAO: Governance and Voting¶
Curve uses Aragon for governance and control of the protocol admin functionality. Interaction with Aragon occurs through a modified implementation of the Aragon Voting App.
Much of the following functionality is possible via the DAO section of the Curve website. The following section outlines DAO interactions via the CLI using the Brownie console.
Deployment addresses can be found in the addresses reference section of the documentation.
Creating a Vote¶
A single vote can perform multiple actions. The new_vote.py script in the DAO repo is used to create new votes.
-
Modify the
TARGET
,ACTIONS
andDESCRPTION
variables at the beginning of the script. The comments within the script explain how each of these variables work. -
Simulate the vote in a forked mainnet:
The simulation creates the vote, votes for it until quorum is reached, and then executes. The vote was successful if none of the transactions within the simulation fail. You can optionally include the
-I
flag to inspect the result of the vote once the simulation completes. -
Create the vote:
-
Modify the
SENDER
variable to use an account that is permitted to make a vote for the DAO you are targetting. -
Create the vote with the following command:
- The vote should automatically appear within the site UX shortly.
-
Inspecting Votes¶
The decode_vote.py script in the DAO repo is used to decode a vote in order to see which action(s) it will perform.
To use the script, start by modifying the VOTE_ID
and VOTING_ADDRESS
variables at the start of the script. Then run the following:
The script will output a list of transactions to be performed by the vote.
Voting¶
- To place a vote via the CLI, first open a Brownie console connected to mainnet. Then use the following commands:
-
VOTING_ADDRESS
is the address that is being voted with -
VOTE_ID
is the numeric ID of the vote -
MY_VOTE
is a boolean
Executing a Vote¶
- To execute a vote via the CLI, first open a Brownie console connected to mainnet. Then use the following commands:
-
VOTING_ADDRESS
is the address that is being voted with