With $ENS potentially being added on various platforms such as AAVE, and with permissionless platforms like Uniswap already having substantial liquidity pools, it seems useful to open a discussion on whether we should try and provide some way for users with tokens on these platforms to vote.
I’ve looked into some options a bit, and as far as I’m aware this is the state of things:
- We can’t easily allow LPed or staked tokens to vote onchain. Voting changes onchain require replacing the governor, which is not a problem, but only works if the token contract(s) involved have support for delegation and checkpointing - and while $ENS does, most LP tokens and ATokens are unlikely to. The only viable solution I’m aware of here would be to wrap those tokens (yet again) in something that tracks delegation power.
- We can create Snapshot strategies that would allow these tokenholders to vote in Snapshot votes. The most viable solution would appear to involve writing a subgraph that tracks the delegated voting power from all the tokens we want to include in the franchise and exposes it as an API that a Snapshot strategy can fetch.
- Voting with tokens staked on AAVE and other platforms gets complicated; implemented naively you can end up with a situation where someone can multiply their voting power using these platforms. One possible solution would be to diminish each account’s voting power in proportion to the amount they have borrowed against it.
- The fact that the distribution of tokens could become different between Snapshot and onchain could mean that Snapshot votes are no longer a reliable indicator of how onchain voting would proceed, which seems problematic.
Thoughts?