Skip to content

Governance

Sebastian Bor edited this page Jul 17, 2021 · 7 revisions

Governance v2 proposals

  1. CreateMintGovernance instruction. In similar way to CreateProgramGovernance instruction and program account it would setup a governance over a mint account and validate mint authority and/or transfer it to the governance account at the creation time.

  2. Prevent creating mint and program governances using CreateAccountGovernance. They should be created using the account type specific instructions. The main reason for this is to provide a better UI where we could clearly indicate to users what type of governance they work with. It's possible to infer what account type a governance is for but it doesn't have the same strong guarantees as the account type specific governances.

  3. Require and validate community and council token possession to create a realm. It should prevent anecdotal realm creations by users who don't posses the relevant tokens.

  4. Require and validate community and council token possession to create a governance. It should prevent anecdotal governance creations by users who don't posses the relevant tokens.

  5. Remove Governance:id() and always pass it from instruction to support multiple runtime clones.

  6. Add cool off period to proposals to make it still possible to cancel them after they were voted on

  7. Add UpdateGovernanceConfig instruction to make it possible to change governance config through a proposal

  8. Add ExecutionError state for a proposal. Currently when an instruction fails there is no indication that it was attempted to be executed and proposal hangs forever in Executing state.

  9. Support alternative vote thresholds. Users find it confusing when yes_vote_threshold_percentage is below 50%. Some interpret it as min votes to tip the vote while others expect that majority still has to be reached. The first group is confused when votes are not automatically tipped after reaching the threshold. I think more common and intuitive threshold is how many (as percentage) votes should be cast for a vote to be valid. For example for vote to be valid 80% of community members must vote and then majority of 50%+1 within the voting population is required to tip the vote

  10. Add timestamps to SignOff instructions to show when proposal was signed off by each signatory

  11. Add timestamps to CastVote instructions

  12. Support ordering of instructions within a proposal

  13. Support transaction for instructions to make it possible to execute multiple proposal instructions within a single transaction

Clone this wiki locally