Creating a proposal
This is a guide for creating a proposal in any Romulus governance system.

Prerequisites

  • A minimum number of voting power. In most systems, it will be 1% of all voting power
  • A basic understanding of smart contracts

How to create a proposal

  1. 1.
    Pick the governance system you would like to create a proposal in. E.g. Poof.cash, Ubeswap etc.
  2. 2.
    Press Create Proposal
  3. 3.
    Add commands that your proposal will execute. For example, if you wanted to transfer 100 POOF to 0x0000000000000000000000000000000000000000
    1. 1.
      Lookup the POOF contract interface. Since POOF is an ERC20, it will have these functions. Transferring refers to the function function transfer(address recipient, uint256 amount) external returns (bool);
    2. 2.
      Press Add under Commands
    3. 3.
      Specify the POOF contract address as the target because that is the contract we need to call to transfer tokens. In this scenario, it is 0x00400FcbF0816bebB94654259de7273f4A05c762
    4. 4.
      Specify 0 as the value as there is no need to give CELO to the POOF contract to transfer
    5. 5.
      Specify transfer(address, uint256) as the signature
    6. 6.
      Specify address,uint256 as the types
    7. 7.
      Specify 0x0000000000000000000000000000000000000000,100 as the values

Notes

  • Creating a proposal does not affect your token balance
  • Every proposer can only have one active proposal at a time
  • If your voting power falls below the minimum number of votes for proposal creation while your proposal is active, your active proposal is at risk of being cancelled by anyone
  • If your proposal succeeds, you need to actively queue, then execute the proposal to ensure that the actions occur
  • Proposers can always cancel their own active proposal