Proposals

/

Proposal

Executed

[Op1] Peer-evaluation service based on OpenZeppelin Governor and Tally


User profile image

by

by

0x34891ADF438609aFCE98987fA629688bB...

0x3489...Bc39

ID 982389...0962

ID 982389...0962

Proposed on: May 27th, 2023

Proposed on: May 27th, 2023

Votes

Actions

Type

Address

Details

Custom

safeMint(..)

Custom

Account

0x7019...77ee

Method

safeMint(..)

Proposal

Overview

  • Project title: Peer-evaluation service based on OpenZeppelin Governor and Tally
  • Project type: Option 1. Web3 app prototype
  • Team name: PeerEval
  • Team members: Kildong Hong (students), Changkil Kim (auditors)
  • Mentor: Jason Han

Delieverables

Summary

It is a service that allows projects to be evaluated and peer reviewed by on-chain governance. As a new proposal, project deliverables can be submitted, and community members can vote on the submitted deliverables with governance tokens. Since tokens are only given to members, outsiders cannot participate. Also, only members can create a proposal, as a minimum of 1 token is required to create a proposal (proposalThreshold = 1). When the voting period ends and the proposal is passed (quorum = 1 token), the class Certificate of Achievement SBT is automatically sent (set as a custom action in the proposal), but when the proposal is passed and executed, only the Governor contract owner (Instructor) can execute it. The certificate SBT is implemented as a non-transferable NFT according to the ERC5192 standard.

We implemented on-chain governance based on OpenZeppelin Governor and integrated it with Tally service. In the process, we encountered a contract size limit, so instead of removing the TimelockController, we implemented some of its functions into the Governor contract. We implemented an ERC20-based Governance token, but implemented the ERC5192 non-transferable feature so that the contract owner can change the token to non-transferable. Originally, we tried to deploy it on Polygon, but due to various issues, we deployed it on Sepolia, integrated it with Tally, completed the web frontend, and tested it in real environment with 5 test accounts.

Implemented three smart contracts.

  • W3K23GovToken.sol: ERC20Votes based governance token (implemented ERC5192 non-transferable feature and batch mint feature).
  • W3K23Certificate.sol: certificate implemented as a soulbound token based on ERC721 and ERC5192.
  • W3K23Governor.sol: on-chain governance contract based on OpenZeppelin Governor. Minimal inheritance to reduce contract size. Key variables (votingPeriod, etc.) can be changed by the contract owner.
Votes
Status