Proposal to Begin Technical Implementation of Onchain Governance for MORPHO
On August 26, 2024, the Morpho community was invited to discuss the transferability of the MORPHO token, and on September 30, 2024, the Morpho Association provided a preliminary recap of the discussions. One area of focused discussion related to transferability has been around advancing the MORPHO token to onchain governance. (See Comments from @Leuts, @Hubert, @Steakhouse). The Morpho Association has undertaken additional research on the technical deployment of onchain governance for the MORPHO token, which I present here for further discussion amongst the community.
Background
The Morpho governance documents state that governance has been organized into various components to ensure that “each one advances at its own pace, according to what is relevant at the time. The governance architecture must adapt to meet unique needs to navigate different stages of the protocol best.”
When the MORPHO token was first deployed over two years ago, the original token contract was created to be immutable. Immutable contracts offer advantages in terms of reliability, transparency, and enabling others to build on top of them with confidence (as exemplified by the Morpho Protocol).
Meanwhile, the core tooling for protocols with fully decentralized governance and instances on multiple networks include:
- onchain vote accounting
- governance contracts with rules like quorum thresholds, timelock duration, and possibly veto mechanisms for malicious proposals
- crosschain tooling to allow governance to interact with protocol instances on multiple networks
As the protocol advances to enable greater onchain governance features, as has also been discussed in the Morpho governance documents, the current immutability of the token contract lacks a mechanism for onchain votes accounting and the potential to comply with crosschain transferability standards.
In particular, onchain vote accounting, including the ability to delegate votes to other addresses, is a foundational feature to full onchain governance. Voting imposes transaction costs on participants, costs such as gas fees or time. Delegation plays an important role in ensuring quorum thresholds can be met, without imposing gas fees for those who share the same view. Delegation also helps mitigate against economic attacks (where a user buys tokens to create and pass malicious proposals). Delegation functionality is close to universal in DAOs. Early protocols like Compound and Maker created bespoke systems, while many today use standard frameworks descended from these implementations.
Since the MORPHO token contract is immutable, onchain vote accounting can be enabled using a wrapper contract. The wrapper contract can be made upgradeable to enable the DAO to make other future technical improvements towards full onchain governance, including crosschain functionality. This wrapper contract can be used as the primary form of the MORPHO token going forward, including for DEX liquidity which is currently under discussion in the forum. While it would be possible to use the original token contract for onchain liquidity and have a separate wrapper contract for governance, this would introduce additional friction for users having to manage two different implementations for the same token, likely resulting in a lower delegation rate and thus less secure governance process.
Technical Deployment Details for Onchain Vote Delegation
- Develop and deploy a new token contract on mainnet with the features described below:
- Total supply of 1B, which will ensure all current MORPHO tokens can be wrapped for any holders who choose to enable the wrapper contract
- Upgradeable proxy implementation, which would allow the DAO to make upgrades without the need for deploying new wrapper contracts in the future
- Data structures to track an address’s chosen delegate, if any, and the voting power of each address including delegations so that users can participate in onchain voting in the future once the DAO selects a governance implementation. For reference, see the standard open source implementation from OpenZeppelin, ERC20Votes
- Deploy contract instance compliant to the bridged token interface for all tokens that will be made claimable on Base, or that users choose to bridge in the future. The Base contract will have the same voting and upgradeability features, while wrap/unwrap will be supported only on mainnet, since the original MORPHO token will not be deployed on Base
- Deploy a wrapper contract to enable users to wrap to the new token contract, with the initial supply of 1B tokens minted to the wrapper.
- Add support for using the wrapper contract to the UI, including:
- ability for holders of the existing MORPHO token to wrap it and participate in governance
- bundling of claim and wrap flows so that future token claimers can receive the wrapped version without the friction and cost of a separate wrapping step
- token delegation interface
- Use the wrapped MORPHO token for future onchain incentives. Existing Merkl claims and vesting contracts will be unaffected.