Oracle DAO Proposals

As a reminder, there are two types of Oracle DAO duties:

  1. Automated duties - these are duties related to routine Rocket Pool operation, such as shuttling information from the Consensus Layer to the Execution Layer, calculating various aspects of the protocol off-chain, and submitting them as updates to the Smart Contracts. Each of these is performed automatically by the watchtower daemon process and do not require manual intervention so long as your Execution and Consensus Clients, and your watchtower daemon, are all operating normally. You set up the watchtower daemon in the previous steps already, so this section will not go over them again.
  2. Manual duties - these are duties that require your own decision-making and out-of-band communication with the rest of the Oracle DAO to perform. They include things such as voting on contract upgrades, changing parameters, and inviting or kicking members to/from the Oracle DAO. These can all be done via the standard Smartnode CLI. This section describes each of these duties and how to perform them.

Proposals form the core of your responsibities outside the automated watchtower duties. Essentially, they work as follows:

  • The collective Oracle DAO should discuss an upcoming proposal extensively ahead of time, so each member is aware of it and understands what that proposal will entail.
  • An Oracle DAO member then creates the proposal via an on-chain transaction.
  • The proposal will then enter a wait period before voting can begin to have further discussion and form their opinion on it. This is currently 7 days on Mainnet.
  • After the wait period is over, members can vote on the proposal via a simple yes-or-no vote.
  • When a quorum of 51% of the Oracle DAO members has voted the same way, the vote is concluded. If 51% agreed to the proposal, it will be able to be executed. Any member can execute the proposal once it is approved.
  • Execution refers to formally triggering the change on-chain, thus modifying the state of the core Rocket Pool contracts.

Making a Proposal

Once you make a proposal, it will enter a review period where the other members can see it and discuss it, but will not be able to vote on it. At the time of writing, this is currently 7 days.

After the review period, there will be a voting period where members can vote either for the proposal, or against it. At the time of writing, this is currently 14 days.

If the proposal reaches quorum before it expires (that is, if enough members vote in favor of it to reach consensus), it will be passed. Quorum is a configurable parameter by the Oracle DAO; it is currently set to at least 51% of the total member pool.

Once a vote is passed, it can be executed which causes its changes to go into effect. At the time of writing, the execution is 14 days after the proposal was passed.

The process for making a new proposal depends on the type of proposal you want to make. Select a type from the tabs below.

Oracle DAO Member List
Oracle DAO Parameters
Contract Upgrades

To propose modifying the list of Oracle DAO members, use the rocketpool odao propose member command which provides the following options:

NAME: rocketpool odao propose member - Make an oracle DAO member proposal USAGE: rocketpool odao propose member command [command options] [arguments...] COMMANDS: invite, i Propose inviting a new member leave, l Propose leaving the oracle DAO kick, k Propose kicking a member OPTIONS: --help, -h show help

invite

Inviting a member is done via rocketpool odao propose member invite which will take 3 additional arguments:

  • The node address to invite (must be a registered Rocket Pool node)
  • The name / label for this node
  • The URL or contact info for the user or organization running the node

For example: to invite a new member, run rocketpool odao propose member invite 0xabcd1234abcd1234abcd1234abcd1234abcd1234 some-user [email protected].

kick

Kicking a member out of the Oracle DAO is done via the rocketpool odao propose member kick command. It will ask you to select which member you want to kick, and issue an optional fine (from 0 RPL up to the bonded RPL amount, currently 1750 RPL). This fine, if provided, will burn part of (or all of) the member's RPL bond if the Oracle DAO votes to kick that member.

leave

If you would like to voluntarily resign from the Oracle DAO, use the rocketpool odao propose member leave command. This will create a new proposal so the other members can vote on whether or not to approve your resignation.

Viewing Proposals

To view a brief summary of all of the proposals in the protocol's history, use rocketpool odao proposals list. This will sort the proposals by their status and show who proposed it and what it does.

To view the details of a specific proposal, use rocketpool odao proposals details value where value is the ID of the proposal you would like to view. This will show a comprehensive breakdown of the proposal's information including who created it, when it was created, the payload body, how many members voted in favor of it, how many members voted against it, and whether or not your node has voted on it yet.

Voting on Proposals

To vote on a proposal, use the following command:

rocketpool odao proposals vote

This will provide you with an interactive dialog asking which proposal you would like to vote on, and whether you would like to vote in favor of it or against it. Follow the prompts carefully to complete the vote.

Executing Proposals

When a proposal has received enough votes in favor of it to reach quorum, any member of the Oracle DAO can then execute the proposal (apply its changes) using the following command:

rocketpool odao proposals execute

This will provide you with an interactive dialog asking which proposal you would like to execute. Follow the prompts carefully to complete the execution.