[DRAFT][GF: Phase 1 Proposal] Karma Delegate Registry

Project name: Karma Delegate Registry

Author name and contact info (please provide a reliable point of contact for the project): Mahesh Murthy, mahesh@karmahq.xyz

I understand that I will be required to provide additional KYC information to the Optimism Foundation to receive this grant: Yes

I understand that I will be expected to following the public grant reporting requirements outlined here: Yes

L2 recipient address: 0x627f84bb4bBA3333f253F09fe22A445F195bCF34

Which Voting Cycle are you applying for?: Cycle 10

Which sub-committee should review your proposal? (Builders Grants, Growth Experiment Grants): Builders Grants

Project description (please explain how your project works):

Problem:

A number of DAOs have started utilizing delegation to improve governance and solve the problem of voter apathy. There are a number of teams including us at Karma who have built interfaces to make it easy for token holders to find a suitable delegate based on various criteria and delegate their tokens. However, after working on this for over a year, we have seen a number of challenges with how the delegation systems work today.

1. When a delegate wants to move on, there is no way for them to withdraw their nomination. None of the contracts support withdrawal functionality.
2. There is no good place to look up a delegate’s interests and skills, it’s either non-existent or locked in centralized databases.
3. Today, delegates post their commitment message on the forum and everyone has to scrape that info and display it in their systems. There is no global shared place where this data is stored.
4. Delegates can receive attestations from other delegates and DAO core teams but these are not stored in a centralized place for all the UIs to interpret and display.
5. There is no way for delegates to broadcast a message and for all the frontend interfaces to listen to their message.

Solution:

We would like to build a DAO delegate registry on Optimism network to store the following
about each Delegate mapped to the DAO they belong to
1. Delegate address
2. Delegate interests
3. Delegate statement (not on IPFS but store the entire blob of text on-chain possibly)
4. Delegate status (active, withdrawn, recognized etc.)

All of this information would be written to the chain by delegates themselves. We are exploring two ways to accomplish this.

Gasless execution: The user simply signs a message and we store it on-chain on behalf of them. This will be low friction and the user doesn’t need to have OP tokens to interact.

Standard execution: This user has to execute transactions themselves and will need OP tokens.

By building a global registry, various teams in the ecosystem can utilize this data on a decentralized store and display it in their interfaces. By putting the registry on blockchain, it will always be accessible, will become a single source of truth, make delegations efficient and will open up more innovation. The registry can be used for discovering delegates, integrate with different types of on-chain voting systems and so on.

Website: www.karmahq.xyz

Twitter: https://twitter.com/karmahq_

Discord/Discourse/Community: Karma

Other relevant links (including any demos):

Additional team member info (please link): Kathleen Olstedt - https://twitter.com/KatOlstedt
Andre Mury - https://www.linkedin.com/in/andremury/
Arthur Ulhoa - https://www.linkedin.com/in/arthurulhoa/
Amaury Magalhaes - https://www.linkedin.com/in/amaurymagalhaes/

Please link to any previous projects the team has meaningfully contributed to: We built and have been managing Optimism delegate dashboard for few months: https://optimism.karmahq.xyz/
We built and manage Gitcoin dashboard - https://daostewards.xyz/
We have built similar dashboards for Element Finance, dYdX, AAVE and many others.

Relevant usage metrics (TVL, transactions, volume, unique addresses, etc. Optimism metrics preferred; please link to public sources such as Dune Analytics, etc.): We have around 100,000 governance participants in our dashboard spanning 55 DAOs. It’s all sitting in our database. One of the goals of this project is starting moving all this data on to the Optimism network.

Competitors, peers, or similar projects (please link): https://deepdao.io/, https://boardroom.io/, Nouns Agora

Is/will this project be open sourced?: Yes

Optimism native?: Yes

Date of deployment/expected deployment on Optimism: 3/15/2023

What is the problem statement this proposal hopes to solve for the Optimism ecosystem?: DAO delegate information is spread across different centralized databases and there is no global, decentralized registry everyone can rely on.

How does your proposal offer a value proposition solving the above problem?: By building a global registry, various teams in the ecosystem can utilize this data on a decentralized store and display it in their interfaces. By putting the registry on blockchain, it will always be accessible, will become a single source of truth, make delegations efficient and will open up more innovation. The registry can be used for discovering delegates, integrate with different types of on-chain voting systems and so on.

Why will this solution be a source of growth for the Optimism ecosystem?: DAOs who opt-in to this solution will have all their delegates interacting with the Optimism network to register and manage their information. As we onboard more DAOs, the number of delegates interacting with the Optimism network grows. We have plans to extend this functionality to many more usecases and this will result in sustained growth of the Optimism network.

Has your project previously applied for an OP grant?: Yes, here is the link to the proposal [READY][GF: Phase 1 Proposal] Karma discourse forum plugin. We successfully built the dashboard and have been maintaining it and have even added additional features to the dashboard. We even started an accountability thread on the forum here Karma - Grantee accountability+feedback thread to hold ourselves accountable.

Number of OP tokens requested: 50,000

Did the project apply for or receive OP tokens through the Foundation Partner Fund?: No

If OP tokens were requested from the Foundation Partner Fund, what was the amount?: N/A

How much will your project match in co-incentives? (not required but recommended, when applicable): N/A

How will the OP tokens be distributed? (please include % allocated to different initiatives such as user rewards/marketing/liquidity mining. Please also include a justification as to why each of these initiatives align with the problem statement this proposal is solving.): OP tokens will primarily be used for 2 purposes
1. Cover the gas cost - 50% of tokens will be used for gasless execution (if we do decide on gasless route) or compensate delegates for executing transactions.
2. Team - 50% of the tokens will be used to compensate our team. We will not sell the tokens for a year per the agreement.

We have already listed all the benefits of having a global shared registry. The biggest friction is in getting users to acquire tokens and use it for transactions. Rewarding users with OP tokens for using the system is not scalable and is short term and unsustainable solution. Instead, we will strive to have gasless execution or retroactively compensate for the transactions the delegates perform on-chain.

This is a major undertaking and we would like the remaining 50% of the tokens to be used to compensate our team.

Over what period of time will the tokens be distributed for each initiative? Shorter timelines are preferable to longer timelines. Shorter timelines (on the order of weeks) allow teams to quickly demonstrate achievement of milestones, better facilitating additional grants via subsequent proposals: We plan to use the tokens over a period of 2 months which will give us enough time to determine how the initiative is working.

Please clearly define the milestones you expect to achieve in order to receive milestone based installments. Please consider how each milestone relates to incentivizing sustainable usage and liquidity on Optimism. Progress towards each milestone must be trackable: Milestone 1: 2 months to build and launch the product
Milestone 2: 2 months of running the registry and getting delegates to sign up. We will continue to enhance the product over this 2 months based on our learnings.

Why will incentivized users and liquidity on Optimism remain after incentives dry up?: We don’t plan to incentivize users directly.

Please provide any additional information that will facilitate accountability (smart contracts addresses relevant to the proposal, relevant organizational wallet addresses, etc.): Organization wallet address: 0x627f84bb4bBA3333f253F09fe22A445F195bCF34

Confirm you have read and agree to the Eligibility Restrictions (here): I have read the Eligibility Restrictions and agree to abide by their conditions

6 Likes

Hi @mmurthy thank you for your proposal. Let me start by saying I love all the effort and work the Karma team has put into making the Optimism delegation process and overall governance info available.

Will you say this proposal is more oriented to:

  1. maximize the number of developers building on Optimism
  2. maximize the number of users interacting with applications on Optimism

?

2 Likes

Thanks for the kind words @Gonna.eth. This proposal will maximize the number of users interacting with Optimism, so (2) closely matches this I think. I received conflicting feedback on what category this proposal should fall under, so I applied under (1) where I thought it fits better but I am fine with either. Thanks!

3 Likes

You did well! thank you for answering!

2 Likes

Adding more detailed milestones per feedback from the committee.

Date of deployment/expected deployment on Optimism: 2 months from the date of approval (Tentative May 1st, 2023)

Milestone 1: Finalize requirements gathering and technical solution

Week 1 - We have already done a lot of research and are gathering requirements by talking to DAOs and delegates. We aim to finalize the requirements soon.
Week 2 - Work has begun on the technical architecture. We want to fully architect the solution and get advice from other smart contract engineers and also the OP team to make sure the design is sound. The eventual product goal is to expand beyond what we have in the proposal and we want to make sure we build it right.

Milestone 2: Smart contract implementation (Benchmark Milestone)

Week 3 & 4 - We will start the implementation of smart contracts. It will be an iterative process and the goal is to have the MVP of the contract to be able to store basic delegate information, their statement, interests and ability for delegates to claim their profile and update their info.

Milestone 3: Design and implement frontend (Critical Milestone)

Week 4, 5 & 6 - Create high fidelity mockups of the design, get feedback from end users. Implement the MVP frontend based on the designs to interact with the contracts. Integrate all the components to make sure the entire application works end to end.

Milestone 4: Deploy and test (Critical Milestone)

Week 6 & 7 - Deploy MVP to the network, test and gather feedback and add more missing features. Index data by building subgraphs utilizing the Graph Protocol for anyone to easily query on-chain data.

Milestone 5: Launch to one DAO (Critical Milestone)

Week 8 & 9 - Launch publicly to one DAO and let delegates claim their profiles. Fix bugs and add any features required to onboard delegates.

Milestone 6: Rollout to more DAOs (Benchmark Milestone)

Week 10 - 12 - Start rolling out to more DAOs and delegates. By now, we would have gathered more feedback and we can start whitelisting more DAOs and delegates. We will continue to iterate and add more features and get more adoption. We will also add developer docs for other interested parties to start integrating with the registry.

The goal is to get at least 10 delegates/week to claim their profile and update their information from here on.

We will continue to iterate, build and improve the product. Below are some tentative milestones and features we plan to build over the next weeks.

Milestone 7: Bring Voting reason to chain (Benchmark Milestone)

Week 13 - 16 - Every delegate posts their voting reason on forum, twitter and other channels regularly. Since the goal of our product is to build a registry with all the information on-chain, it makes logical sense to provide an interface for delegates to write the voting reason to chain and
have it accessible to anyone.

Milestone 8: Peer to peer endorsement (Benchmark Milestone)

Week 17 - 22 - Token holders have a hard time picking a delegate to assign their voting power to. Having delegates with high voting power endorse other upcoming delegates will help spread the voting power, give more opportunity to new delegates and decentralize the DAO further.

Milestone 9: Registration fee

Week 23 - 26 - If a DAO wants to introduce a registration fee for officially registering as a delegate, we would like to implement that feature to enable this. This feature could also help prevent non serious candidates from enrolling as a delegate.

Milestone 10: Write delegate’s aggregated stats to chain

Week 27 - 30 - Karma aggregates’s delegate’s voting and other stats to help the community understand delegate activity. If this is valuable to other platforms, we can write this data to the registry as well.

3 Likes

Question from committee: Will you be selling OP tokens to cover gas costs (for gasless transactions)?

The gas costs on Optimism network is very low. We will be able to cover the gas cost ourselves without selling any tokens during the lockup period.

1 Like

Hi @mmurthy! Can you provide a Telegram handle or other contact method so the Optimism team can get in touch about paying out this grant! Feel free to DM or email lavande@optimism.io

2 Likes

Thanks @lavande, I will email you.

1 Like

Good project.
Although this reply might sound out of date by the time that the project going to release, I think the idea of registering all the Delegates in a global environment on the Optimism chain is a great and unique idea. I am a new member of this community, but I think such a project can help the system to be more authenticated and give accessibility to the Delegates to store their activity records. Can you explain about the number of OP Tokens you need? why 50,000? Thank you.

1 Like

Sorry, somehow missed this message. Glad you see the value of such a system. As far as tokens requested, we mentioned it in the original proposal. It is going to be used for dev work (it is a lot of work to build the registry, sdks, frontend etc.) and we will also use it to possibly reimburse gas.

2 Likes

Posting our first update to share some progress we have made with the project.

Milestone Type Milestone Source of Truth
Benchmark Finalize requirements gathering and technical solution Google doc
  • Formed a group with few other DAO tooling companies with the help of DAOStar One and started collaborating to design this registry system.
  • Identified the common fields that we should store in the registry and came up with an initial schema. All the details can be found in this doc DAO Delegate Registry Specification - Google Docs
  • I wanted to store all the delegate data on chain directly but it is still cost prohibitive. I built and deployed contract on Optimism network and tested. It costs $0.60 for writes to chain which is more than I hoped for. We are working on few solutions.
  • As a next step, we will finalize the right solution and start implementing.
3 Likes

it’s good progress in itself. For sure, decreasing the cost of registration will be beneficial for all of us. Can not wait to read the doc you shared here. Good luck with your project.

1 Like

Posting update regarding the next benchmark milestone to share some progress we have made with the project.

Milestone Type Milestone Source of Truth
Benchmark Smart contract implementation Github

Goal: We will start the implementation of smart contracts. It will be an iterative process and the goal is to have the MVP of the contract to be able to store basic delegate information, their statement, interests and ability for delegates to claim their profile and update their info.

Outcome: The contract has been implemented and can be found on Github. The schema has been finalized and can also be found in the repository. We are ahead of the schedule, have deployed the contract on Goerli and have been testing Contract Address 0xb797479bf1fa0c982a68a18ad9090286397c3a97 | Etherscan. There will be few more small changes to the contract but the meat of it is there.

2 Likes

Greetings,
Thanks for the update. The contract address shows that it’s just created. I am very enthusiasts to see its progress. Keep us posted for the next update. Thank you.

I working 12 hour per day send me any cash with my account and i no have stres with rent and have time for lerning but now … Explaint me how if i work 12 h… 5 days… 2 .5 year put cash and any cent no back why no Ask me why you doo revoke and why you 1.yers or more no answer …

Please find the next milestone update below.

Milestone Type Milestone Source of Truth
Critical Deploy contracts and test Onchain

We made good progress over the last month iterating on the contract and finalizing the protocol.

  • We deployed the contract to Optimism mainnet (we were waiting on Bedrock upgrade to complete). The contract address is 0x6dd79ef7bc4f4310485201e3e900292550b600460xd17206EC4D268D0E55bb08A369b6864f1178B81d.
  • The group includes devs from Tally, Agora and Boardroom who all are planning to adopt the registry in their interfaces.
  • As a group, we made few changes to the contract, details below:
    • It is unreasonable to ask all delegates to register onchain. We now have a way to whitelist providers who can upload existing delegate info to the registry.
    • The admin will be a multisig managed by devs across different providers.
    • There is a time component which the group will agree to allow everyone to upload data after which the registry updates can only be made by the delegates.
  • The subgraph is currently deployed here. We uploaded 10 Optimism delegates info to the registry to test and it worked well. It can be accessed by querying the subgraph.
  • We have a monorepo with smart contract, subgraph and sdk. All the code can be accessed on Github. Thanks Tally team for working on the sdk!
  • We have started talking to a few DAOs who are interested in adopting the registry. If there are DAOs who would like to utilize this registry for their delegates, please reach out to me (mahesh@karmahq.xyz).
Milestone Type Milestone Source of Truth
Critical Design and implement frontend Website

We built a site to interact with the delegate registry. It’s live at https://www.delegateregistry.xyz/! The code can be found at https://github.com/show-karma/dao-delegate-registry-explorer.

The two core functionalities are ability to register as a delegate and delegate registry explorer. Below are some details about each of those features

  1. Register as a delegate: Anyone can register as a delegate through the website. For now, the registration is gasless. We have added a number of DAOs and can easily add any DAO the community wants.
  2. Delegate Registry explorer: There is a simple explorer to see all the statements as the registrations roll in. You can lookup a delegate by their interests, statement substring or ETH address.

ps: There was a bug in the contract and we pushed a fix and redeployed the contract. The new contract address has been updated in the previous milestone.

At Karma, we are soon going to integrate to read data from this registry and write to it. Other ecosystem partners like Tally and Agora plan to implement it soon as well.

Milestone Type Milestone Source of Truth
Critical Launch to one DAO onchain
Benchmark Launch to 3 more DAOs onchain

We just enabled the registry for many delegate dashboards we have built for different DAOs. Any delegate can write their statement and interests to the onchain registry by simply logging in to the dashboard and saving their profile. The registry is enabled on the following dashboards:

Optimism: https://optimism.karmahq.xyz/
Gitcoin: https://delegate.gitcoin.co/
dYdX: https://dydx.karmahq.xyz/
Compound: https://compound.karmahq.xyz/

Attached is the screenshot of how it looks. If you are a delegate, navigate to any of the dao dashboards and save your delegate profile to the registry. Currently, we are covering gas fee too!

This is one of the greatest problem inside the ecosystem, all the governance tokens are used for funding and not for DAOlations

Posting another update with few milestones we completed.

Milestone Type Milestone Source of Truth
Benchmark Milestone Bring Voting reason to chain On-Chain

Delegates can post voting reason onchain now! We integrated it into the delegate dashboard https://optimism.karmahq.xyz/ but any application can integrate easily. It’s an onchain attestation linked to their delegate address. The schema for voting reasons can be found here. Delegate can login and navigate to their voting history and add the voting reason.

Milestone Type Milestone Source of Truth
Benchmark Milestone Peer to Peer Endorsement On-Chain

Delegates can endorse other delegates onchain now! We wrote all the details in this forum thread Peer to peer delegate endorsements onchain

Milestone Type Milestone Source of Truth
Benchmark Milestone Registration Fee On-Chain

We decided to build a new contract to include Registration fee. This is an optional feature a DAO can utilize. Code can be found here and contract is deployed here.

2 Likes