Skip to content

Instantly share code, notes, and snippets.

@danizord
Last active December 10, 2022 02:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danizord/5632f89c0e4a035cf7f308173711b216 to your computer and use it in GitHub Desktop.
Save danizord/5632f89c0e4a035cf7f308173711b216 to your computer and use it in GitHub Desktop.

voters.wtf

TLDR; A Prop House extension aimed to boost voter participation ⚡️

  • Clear metrics, including voter turnout and % voter influence.
  • Full-featured voter profiles aggregating multiple on/off-chain data sources.
  • Gamification elements that incentivizes voting and delegation.
  • Smart delegate suggestions based on personal voting history.
  • Easy tracking with personalized push notifications.

⌐◨-◨ public good, compatible with all Prop House communities.

Background

Hey! 👋 I'm @Danizord, a passionate coder, father of @NounAssistant, currently focused on developing innovative tools and experiments that improves the Nounish DAO model.

Prop House is doing a fantastic job attracting new contributors and facilitating funding for new ideas. With NounsBuilder simplifying the creation of nounish DAOs, I expect Prop House to grow even quicker and become the primary funding tool for a whole new generation of nounish communities.

However, there's an important concern that is especially relevant for those small communities: the low voter participation rates and how it impacts voting power decentralization (more on that later).

That said, some time ago I proposed the development of a proof of concept scoped delegation mechanism that allows setting different delegates for Prop House and main DAO Governance. The proposal was successful, and the source code is available here: https://github.com/danizord/voting-power-tokens.

While discussing with the Prop House team how to integrate it in production, I felt the smart contract wasn't enough. We needed a UI that provides delegators the confidence that they are making the best use of their voting power.

So I started working on this MVP:

MVP available at https://voters.wtf

It received a lot of positive feedback indicating that it can be a valuable tool for the ecosystem. NSFW retro-funded 2 ETH for the MVP and suggested putting an on-chain proposal to fund the complete roadmap. So here we go:

The problem

The problem is that voter participation on Nouns Prop House is very low. On average, 90%+ of Nouns voters are not actively voting on Prop House rounds. [1]

Such low participation leaves the decision to a small group of active voters. Between those active voters, 1~3 addresses controls the majority of the voting power.

Those voters are not to blame at all! They are just exercising their voting power. But as we know, there are some serious risks associated with centralization.

Deciding which proposals get funded is sometimes challenging and time-consuming. Read through every prop, evaluate risks and benefits, prioritize, check reputations... Oof, completely understandable why so many holders don't vote.

Fortunately, voting is not the only way. It is also possible to participate via delegation.

The solution

Delegation allows holders to participate in the voting process even if they are unable or unwilling to vote themselves. However, to be effective, the delegate must be active in Prop House and actually cast the delegated votes.

It's also important that the delegate has a relatively small voting power. That makes voting power more evenly distributed among the community and prevents potential manipulative voting practices.

Even if a holder is able to find someone that represents their interests and meets the above criteria, that delegate must be regularly monitored to ensure it continues to be the case. It can be a difficult task, while it requires ongoing attention and effort from the delegator.

Can we simplify this whole process and automate some stuff? Oh yeah ⌐◨-◨

Objectives

  1. Problem awareness: Bring more attention to voter turnout and voting power distribution.
  2. Positive feedback loop: Drive engagement and reward the most nounish voters.
  3. Reduced friction: 1-click delegations, personalized suggestions and smooth UX.
  4. Informed decisions: Clear insights to help delegators choose their best representatives.
  5. Social accountability: Public voter profiles with detailed voting and delegation history.

Roadmap (Q1 2023)

⚙️ Integrate Prop House delegation

Incorporate feedback from PH team and promote the PoC to production.

  • Seamless migration: Inherit current delegate configuration from the DAO Token by default, no user action required.
  • Optional override: Allow setting different delegates for Prop House and DAO Governance.
  • Expiration: Support setting delegation expiry date.
  • Composability: Allow plugging in other smart contracts to extend functionality and implement future upgrades/integrations.
  • Interoperability: Out-of-the-box delegation support for any Prop House community token (ERC-721/1155/20), including those without native delegation.
  • Future-ready: Make sure it is ready to integrate with the upcoming Prop House Protocol.

🏠 House dashboard

The home page, where users can see what is going on in the house.

  • Rounds list: Quick access to running rounds and links to Round View.
  • Voter turnout: Chart with historical voter turnout across all finished rounds.
  • Voting power: Chart with Prop House voting power distribution among active voters.
  • House feed: Infinite-scrolling house activity feed, including round updates, votes, delegations, etc.

🔎 Round View

A deeper look into each round, with less F5 and more fun.

  • Live mode: Watch voters in action with animated realtime updates + countown to voting end.
  • Round timeline: Horizontal navigation with all votes placed on a temporal line.
  • Proposal rank: Select a proposal in the rank to see who voted on it, and the % weight of each voter.
  • Round voters: Highlight early voters that caused most impact on round results.

✨Improved voter profiles

  • Advanced search: Search voters by name (ENS/NNS), address, Noun ID, Twitter handle, etc.
  • Vote latency: Measures how long the voter took to cast votes after the voting period started. Per-round and average. Qualified as low/medium/high.
  • Activity streak: For how many rounds the voter has been active in a row. Current and highest streak.
  • Indirect participation: Optionally show votes cast by the voter's delegate in their name.
  • Memberships: Show other communities that the voter also has voting power.
  • Feed: Historical view with votes, delegations, and other community-specific events.
  • Delegators: Show currently active and previous delegators.
  • Social links: Display Twitter/Discord links from ENS registry.

🤖 Smart suggestions

If the connected user holds voting power but is not actively voting, automatic delegate suggestions are displayed. The delegate suggestions are personalized and ranked with a scoring mechanism that takes into account the following factors, sorted by priority:

  • Higher activity streak (actively participating in voting rounds).
  • Voting history similarity (# voted on the same proposals as the connected user).
  • Higher historical activity (total rounds voted).
  • Lower vote latency (convicted voters).
  • Unique delegators (represents a broad range of holders).
  • Lower voting power (to make it more evenly distributed).

A detailed score breakdown for each suggestion will be accessible in the UI, so that it can be manually verified.

The scoring mechanism will be open source and is expected to evolve over time with community feedback. Initially, the same scoring mechanism will be applied for all users. But in the future, we may add support for user customization.

🔔 Notifications

  • Notification center: Where users can manage their subscriptions and see the notifications history.
  • Subscriptions: Subscribe to push notifications about your account, a specific voter, or an entire house.
    • Delegations (added, removed, changed, expired).
    • Automatic suggestions.
    • New rounds.
    • Vote reminders.
    • New votes.
    • Finished rounds.

Proposal

  • Requested funding: 25 ETH:
    • 3x 8 ETH for ~3 months of fullstack development.
    • 1 ETH for (at least) 1 year of infrastructure costs.
  • Support/maintenance guaranteed at least during the 3 months mandate.
  • Roadmap is subject to small changes with community feedback and suggestions.
  • Fully open source and CC0. Forkable and deployable by anyone.
  • Included technical documentation, reusable libraries, and automated test coverage.

Thanks for your time! Hope you find it valuable and looking forward to hear your feedback :)

Please follow https://github.com/danizord/voters.wtf and https://twitter.com/danizord for updates.

Stay nounish ⌐◨-◨

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment