kinto-core icon indicating copy to clipboard operation
kinto-core copied to clipboard

Nio Governance System

Open ylv-io opened this issue 6 months ago • 3 comments

Nio Governance System

Summary

This PR introduces three new contracts to implement the Nio governance system for Kinto. The NioElection contract manages the election process for Nio guardians, the NioGuardians contract represents the elected guardians as NFTs with voting power, and the NioGovernor contract handles the actual governance proposals and voting.

Implementation details

  • NioElection contract:

    • Manages the entire election process for Nio guardians
    • Implements a multi-phase election: candidate submission, candidate voting, compliance process, nominee voting, and final election
    • Uses the BridgedKinto token for voting power in elections
    • Enforces KYC requirements for candidates and nominees
    • Implements a vote weighting system for the nominee voting phase
    • Mints NioGuardian NFTs for elected guardians
  • NioGuardians contract:

    • ERC721 token representing elected Nio guardians
    • Implements ERC721Votes for on-chain voting capabilities
    • Only allows minting and burning of tokens (no transfers)
    • Automatically delegates voting power to the token holder upon minting
    • Prevents manual delegation of votes
  • NioGovernor contract:

    • Implements OpenZeppelin's Governor contract with various modules
    • Uses NioGuardians tokens for voting power
    • Sets specific governance parameters:
      • 3-day voting delay
      • 5-day voting period
      • 1 token proposal threshold
      • 5 Nios required for quorum
    • Integrates with a timelock for executing proposals
  • The election process is designed to occur every 6 months, alternating between electing 4 and 5 Nios

  • Implements various security checks and access controls throughout the election and governance processes

  • Provides extensive view functions for querying election and governance data

This implementation aligns with the Kinto Constitution's governance framework, providing a robust and decentralized system for electing Nio guardians and managing the Kinto DAO's decision-making process.

Type of change

  • [ ] Bug fix
  • [x] New feature
  • [ ] Breaking change
  • [ ] Dependency changes
  • [ ] Deployment
  • [ ] Forge Script
  • [ ] Code refactor / cleanup
  • [ ] Documentation or wording changes
  • [ ] Other

Checklist:

  • [x] The diff is legible and has no extraneous changes
  • [x] Complex code has been commented, including external interfaces
  • [x] Tests have 100% code coverage
  • [x] The base branch is either main, or there's a description of how to merge

Issue Resolution

ylv-io avatar Aug 16 '24 23:08 ylv-io