Procedure

This page outlines the process of submitting a DAO proposal and voting on it.

DISCLAIMER: This page is still located here, because our Operating Agreement specifies this as its location. Moving it somewhere under the ILIS DAO header should happen relatively soon.

This governance procedure is out of date, and was used for the previous iteration of smart contracts. The up to date procedure will follow very soon. To submit a proposal to the DAO, one needs to hold at least 1 ILIS and present it to the voting contract (component_rdx1cpzm6rgdwgw9p075zsh5kfjuxa9rzzyt47x6xcgzhzydp9lkymyx78), together with a description of your proposal, using the propose method on the voting contract by submitting a transaction manifest*. All relevant details, such as voting period and conditions for the vote to pass (must be a simple majority or higher) must be included in the description. An example of a transaction manifest used to submit a proposal:

CALL_METHOD
  Address("{your_account_address}")
  "withdraw"
  Address("resource_rdx1t4r86qqjtzl8620ahvsxuxaf366s6rf6cpy24psdkmrlkdqvzn47c2")
  Decimal("1")
;

TAKE_ALL_FROM_WORKTOP
  Address("resource_rdx1t4r86qqjtzl8620ahvsxuxaf366s6rf6cpy24psdkmrlkdqvzn47c2")
  Bucket("proof_of_membership")
;

CALL_METHOD
  Address("component_rdx1cpzm6rgdwgw9p075zsh5kfjuxa9rzzyt47x6xcgzhzydp9lkymyx78")
  "propose"
  "{your proposal's description}" //describe your proposal following the guidelines mentioned above
  Bucket("proof_of_membership")
;

CALL_METHOD
  Address("{your_account_address}")
  "deposit_batch"
  Expression("ENTIRE_WORKTOP")
;

After a proposal is submitted, it is displayed on the official venue, together with the relevant parameters. Voting on a proposal is done through the vote_on_proposal method on the voting contract.

To call this method, a manifest like such can be used:

CALL_METHOD
  Address("{your_account_address}")
  "withdraw"
  Address("resource_rdx1t4r86qqjtzl8620ahvsxuxaf366s6rf6cpy24psdkmrlkdqvzn47c2")
  Decimal("{amount_to_vote_with}") //fill in the amount of ilis you want to vote with
;

TAKE_ALL_FROM_WORKTOP
  Address("resource_rdx1t4r86qqjtzl8620ahvsxuxaf366s6rf6cpy24psdkmrlkdqvzn47c2")
  Bucket("ilis_to_vote_with")
;

CALL_METHOD
  Address("component_rdx1cpzm6rgdwgw9p075zsh5kfjuxa9rzzyt47x6xcgzhzydp9lkymyx78")
  "vote_on_proposal"
  {proposal_id}i64 //fill in the proposal id of the proposal you want to vote on. This is displayed on the official venue next to a proposal (https://ilikeitstable.com/governance)
  {vote}           //fill in whether you want to vote for or against the proposal, use `true` to vote for, and `false` to vote against.
  Bucket("ilis_to_vote_with")
;

CALL_METHOD
  Address("{your_account_address}")
  "deposit_batch"
  Expression("ENTIRE_WORKTOP")
;

After the voting period has passed, and the conditions to pass have been met it is excecuted, preferably autonomously. If a proposal cannot be autonomously executed on chain after passing, the managing members are responsible for executing the necessary steps to enact the proposal.

* submitting a transaction manifest to the Radix DLT can be done in multiple ways, but we recommend using the console by RDX Works: https://console.radixdlt.com/transaction-manifest

Last updated