A Proposal to Create a Voting Escrow NFT and Governance for ContinuumDAO
-
By Hal (Telegram, Github @hal0177)
31st October 2023Abstract
This document proposes the creation of a vote escrow system for use by ContinuumDAO in line with the objectives of the White Paper. The system will be uniquely tailored for a DAO-led MPC network.
Motivation
The goal is to create an on-chain token based governance reward system comprised of two parts:
-
An NFT which contains locked CTM, called veCTM. This NFT represents a stake in the ContinuumDAO and can be used for voting, revenue collection, MPC node attachment, and tracking proof of contribution to the ContinuumDAO.
-
A governance suite of smart contracts which operates a comprehensive on-chain governance process, which automatically executes the results of the vote.
The system will implement OpenZeppelin’s Governor smart contract system, with some significant modifications to accommodate for ContinuumDAO’s unique requirements.
It will be deployed to a chain which has yet to be chosen. The veCTM will be using a proxy pattern contract, so that it can be upgraded following an on-chain governance vote.
Overview
Developer
My name is Hal, I am a smart contract and web app developer with 3 years experience, having been trained in the Moralis academy. I've worked on Fusion protocol, and Multichain, among other projects. I am based in Europe.
Token Vesting
Holders of CTM, which is a simple fixed supply ERC20, will be able to lock them into a vote escrow NFT, to be named veCTM, for up to four years. The voting power will decrease linearly, where max power is at four years, decreasing to the minimum of zero power on the maturation date, unless locked CTM amount is increased and/or lock time is extended.
In addition, users will be able to merge veCTMs with the resulting lock time having a weighted average lock time of its composite tokens.
Users will also be able to split their veCTM into two or more veCTMs as they wish.
Finally, users will be able to liquidate their veCTM into CTM with a penalty of 50% of the vested power, also being paid to the DAO Treasury.
Governance
The veCTM will either have voting rights or be designated non-voting. For a non-voting veCTM, you cannot merge with another veCTM token, but you can still split them, resulting in two or more non-voting tokens, any of which may be liquidated. A veCTM with voting rights will allow voting either through Snapshot or Tally.
The voting power of an address that owns multiple veCTMs will calculated by adding the constituent veCTM voting powers, so that the address will only have to vote or delegate once.
The veCTM will have a public interface to output the underlying voting power. The token will inherit the OpenZeppelin governance smart contract system, Governor, and contains all of its features, such as the ability to delegate voting power to another address.
There will be some modifications made to the code, for example the delegate vote feature will be disabled for non-voting veCTM. Governor will allow a vote to automatically execute some smart contract code, such as transferring funds from the Treasury, executing a contract upgrade, or configuring an on-chain parameter in a smart contract.
Included in the deliverables will be a demonstration of basic Governor voting mechanisms such as:
- Simple transfer of funds from the Treasury to another wallet.
- Adding and removing a list of veCTM IDs, attaching and detaching them to nodes.
- Redeploying the veCTM smart contract via its proxy pattern.
The Continuum MPC Node Delegation
The veCTM may be attached to a node running on the Continuum to receive extra rewards. The attach/detach mechanisms will be performed by DAO governance. The information provided for attaching a node will be the enode and the wallet address of the veCTM. The rewards paid to attached veCTMs will be adjustable by the DAO. Once attached, a veCTM will not be able to be merged, split, or liquidated. The DAO will also have the power to disable extra rewards for a non-performant attached veCTM, and revoke a veCTM's ability to transfer, liquidate, and split into other veCTMs - if it is attached to a bad actor node on the network.
The contract will be able to access a Fractal ID DiD attached to a wallet address to allow KYC for wallets attaching nodes.
Tally Integration
Integration of a front end to interact with the Governor interface will be created. Tally provides a Governor interaction suite, which will require configuration to suit our unique governance structure. A time lock provision will be included to allow the Committee to prevent the automatic execution of a voting result within a defined window following a successful vote.
Audit
In the case of suggestions for modification of the smart contract code from the auditors, the appropriate modifications will be made to satisfy them. Neither the cost or selection of the auditors will be subject to this proposal.
Token Distribution
Immediately following the audit on the smart contract code, the CTM token contract will be deployed, all tokens minted, and the veCTM will be minted and distributed as appropriate to CTMDAOVOTE token holders.
Type of Proposal
Request for funding.
Scope
Milestones
- veCTM proxy pattern contract that allows vesting, merging, splitting, and liquidation of token IDs. (Fully tested)
- Inclusion of MPC node attachment. (Fully tested)
- Modified OpenZeppelin Governor proxy pattern contract. (Fully tested)
- Functional front end to all veCTM user features. (Completed)
- Token distribution. (Completed)
All tasks will be completed in collaboration with the core contributors, seeking their input into the design of the code and their sign off on each Milestone.
Timeline
Milestones 1 to 4 are anticipated to take 2 months to complete. Work can be started immediately, upon acceptance of this proposal.
Budget
The cost for all the above tasks is 8,000 USDC and 30,000 veCTM, locked for 4 years. The first half of the USDC is payable upon completion of Milestones 1 and 2, and the balance payable upon completion of Milestones 3 and 4. The veCTM will be payable following Milestone 5 which will be completed following the audit.
The cost of the audit is not included here.
-
-
Well done Hal. There is one thing I want to comment. That’s the payments. Sorry, if I look offending but I’m not. Just want to share my opinion. The USDC payment seems on the low side and the veCTM payment seems on the high side. Because there is no market yet for the veCTM token we don’t know the actual value. But in my mind I have value veCTM locked for max years at $1, but that’s me. I suggest maybe we can change a bit for the payment. More USDC and less veCTM. Are you okay with 10,000 USDC and 15,000 veCTM or 12,000 USDC and 10,000 veCTM? I think with the current global economy we all could use some stability. This just an idea from my side and I probably understand why you asked for 4000 USDC per month and not higher. The core team probably suggested to pay maximum of 4000 USDC per month. I think we should pay you more in stables because this work will be very important for the Continuumdao. You can work at ease without thinking of financial obstacles. It’s still up for you to decide to change the payments. I’m very excited to see the work in 2 months when it’s complete.
-
Hi @Apxymous, thanks for your comments, appreciate the feedback. I don't know how much CTM will be worth at launch, but I'd like to get some since I didn't get much in the airdrop and I want to be a part of the project in the future. It might be hard to buy some since I think a lot of people will hold on to it after launch. I think that since I'm proposing to write a core part of the code, it is important that I have an interest in ContinuumDAO doing well after I have finished this project, and owning the token and taking part in governance will ensure that. The USDC I requested is enough to pay the bills, even though I agree that there is a lot of work to do here.
-
Excellent work, @hal0177 !!! Is there a variable percentage for the penalty component of the veCTM? This is important because individuals may have varying unlock periods in the future. We should consider applying distinct ratios to correspond with different veCTM unlock durations.
-
Many thanks @hal0177 for this proposal. Would it be possible to associate images with empty veCTMs? That way we could auction them and holders could merge their existing ones to them. It could be a source of revenue for the DAO and a bit of fun.
We could enable minting of empty veCTM's from our front end at a cost of say 0.1 ETH (or 200 CTM?), or we could issue a collection of them and sell them on OpenSea, with the revenue going to the Treasury.
-
Good idea to add images to the NFT's
-
@Ulliee Do you mean veCTM (subject of this proposal), or ContinuumDAO in general? The NFT is designed to enable governance, distribute protocol income, and allow holders to run nodes in the network. As far as Continuum goes, it's in the White Paper, but we hope to attract a lot of different enterprises to run their own cross chain routers, create multi-chain dApps, create MPC wallets and generally to join up the value systems that are all block chains - EVM's AND non-EVM's. The holders of veCTM will earn a small fee every time someone uses our network.
-
Proposal is reasonable nothing to add at this point
-
I think the proposal from @hal0177 seems reasonable and hear the comments regarding having a vested interest in the DAO moving past this stage of work.
I really like the idea of attaching images to the NFT's. The current logo could lend itself well as the basis of the images. As a designer I would be open to testing out a range of sample images.
-
An additional feature, building on those on TG, is to allow Opensea users to see how much CTM is locked within a veCTM, and for how long. The system used by Multi had a gazillion zeros behind each NFT and it was too difficult to read.
I am good with the cost. It is wonderful that a dev is interested in owning veCTM. Great proposal.