IIP 3: Enable Meta-Governance for COMP-Like Tokens

Indexed Improvement Proposal 3: Enable Meta-Governance for COMP-Like Tokens

Snapshot Vote

Author: Dillon Kellar


This proposal would enable NDX holders to vote with the COMP & UNI held by any index pool. Support for other governance tokens that support delegation will follow as the contracts are developed.


The two indices which currently exist are DEFI5 and CC10. These 2 pools collectively hold 285k UNI and 7.3k COMP. These are not quite enough tokens to make a large difference in proposals based on current levels of participation in these protocols, but in the future this may change, and we do not want to contribute to voter apathy in other on-chain networks.

Because these governance tokens allow delegation of voting power, it is possible to use them to vote even while they are held by the index pools. Index tokens do not support the necessary balance snapshots to allow LPs to vote with these tokens in a secure manner, but they can be delegated to meta-governance contracts where NDX holders can determine how to cast votes on UNI and COMP proposals.

This would both make our protocol a better member of the ecosystem by increasing participation in on-chain governance and increase the value proposition of NDX token itself, which would likely encourage governance participation for our own community. Additionally, it would help compensate the NDX treasury for rewards paid to keepers who keep the pools updated.

Meta Governance Contracts

We will utilize two new “meta governance” contracts. These are contracts modeled on GovernorAlpha, the governance contract used by NDX, COMP, UNI and several other projects, which allow NDX holders to vote on “meta proposals” which are proposals for how the delegated votes should be cast on external proposals for Uniswap or Compound governance.

We will use one contract for each governance token - this proposal adds MetaGovernorCOMP and MetaGovernorUNI, which use the same template.

The code for these contracts can be found here:

Proxy Updates

In order to support delegation of COMP-like tokens, the proxy implementations for MarketCapSqrtController and IndexPool must be updated to allow governance to tell the index pools to delegate their voting power to the meta governor contracts.

The primary challenge with this is handling the different governance interfaces. For COMP-based tokens such as UNI and COMP, it is quite simple to enable this feature. For other tokens, we will need to create more specific contracts & delegation functions to enable meta governance. This proposal would enable support only for COMP-based tokens, with other delegation-enabled tokens to follow.

The contracts have been updated on github with the modifications described below.


Add delegateCompLikeTokenFromPool which is only callable by the NDX timelock. This function takes the address of an index pool, the address of the token to delegate, and the address of the delegatee, and calls delegateCompLikeToken on the index pool.


Add delegateCompLikeToken which is only callable by the controller. This function takes the address of the token to delegate and the address of the meta governor to delegate to, then calls the delegate function on the token to delegate to the governor.

The contracts have been deployed! On-chain proposal coming a little later today.

MetaGovernorCOMP: 0xeEB40d10cb86f569BB978A81a4eA178a9E1dfDdf

MetaGovernorUNI: 0x1aa7c2a1E6E0c4981D77b96aB985b161bb7729b9

MarketCapSqrtController Implementation: 0x8542E1ddE76E7725DF3ff3C7829DC07229998333

IndexPool Implementation: 0x2483C55E414447CC78b0Bfac77C1471D81BAAbdf

The audit is available here:


This is an excellent proposal to ensure that holders of Index tokens still have the ability to participate in the ecosystems of UNI and COMP. As you mentioned d1ll0n this is extremely important to help both ecosystems grow.

We also agree that there will be a positive feedback loop created within the NDX holder community.

1 Like

This is a fantastic idea and I think will help to attract new investors that may otherwise stay away from the protocol due to being unable to vote with the tokens. It would also set a good standard for the community and help encourage participation.