ecosystem-contributions
ecosystem-contributions copied to clipboard
Foundation Mission Request: Dynamic Delegate Attestations [IDENTITY]
*To take on this project, submit a proposal to this thread by June 28. Read more about Missions here
- Foundation Mission Summary: Dynamic Delegate Attestations
- S4 Intent: Improve Governance Accessibility
- Proposal Tier: Ember
- Baseline grant amount: 20k OP
- Should this Foundation Mission be fulfilled by one or multiple Alliances: One
- Optimism Foundation point-of-contact: Emily (@C-Emily-Furlong)
- Submit by: June 28th 2024 at 19:00 GMT
- Selection by: July 13th 2024 at 19:00 GMT
How will this Foundation Mission (RFP) help accomplish the above Intent?:
Delegates of the Optimism Token House are important participants in the Collective. Certain elements of governance process, including the ability to “endorse” proposals to go to vote, are endowed to delegates in the top 100 based on voting power (previously with voting power equal to or above 0.25% of total votable supply of OP).
Today, top 100 Delegates are tracked via a Dune query, and appropriate Discord or forum permissions are granted manually. This process is both inefficient and centralized.
Instead of this manual process, the Collective should move to tracking this important information onchain in a way that is consumable by the various community platforms that the Collective uses. This will help make delegate recognition more accurate, improving governance accessibility for proposers seeking delegate approvals and allowing all qualifying delegates to receive tagged notifications in Discord. It will also be less dependent on any one Optimist to maintain or update.
Since this mission request was originally published, the Collective has moved from a system where delegates with voting power > 0.25% are given specific privileges, to a system where the top 100 delegates by voting power are given specific privileges. As such, the system built as part of this mission request should be composable and adaptable to similar future changes.
What is required to execute this Foundation Mission (RFP)?
A completed Mission includes the following outcomes:
- Issue an attestation for each delegate address in the top 100 based on votable supply of OP using EAS attestations.
- Regularly (ideally daily) poll registered delegates to monitor fluctuations in voting power. Revoke the attestation of any delegate who is no longer in the top 100, and/or issue new attestations where necessary.
- Code must be open-sourced under an MIT license.
- The solution design must be generalizable and easy to update if/when the requirements change. For example, requirements might change such that only top 100 delegates who have voted on the last X proposals are considered. The solution should be easy to adapt in such cases.
It is up to the applying teams to suggest an appropriate solution architecture. We recommend teams to explore a design that can take the results of any arbitrary query as input and issue / revoke attestations to a list of addresses output by the query.
What milestones will help the Collective track progress towards completion of this Foundation Mission (RFP)?
- Specification for implementation, design approach, and architecture for the functionality listed above.
- Monthly progress updates on design and/or implementation.
- Open-source code repository to observe progress over time.
How should Badgeholders measure impact upon completion of this Foundation Mission (RFP)?
- Governance community platforms (like Discord and Discourse) are able to consume an accurate, regularly updated source of data to understand which delegates are in the top 100.
- Fewer errors, inconsistencies, or delays in updating community platforms to reflect current accurate delegate information.
- Improvement in proposer experience due to improved visibility into which delegates are able to provide approvals on proposal drafts.
Application instructions
To apply for this RFP, please complete the form in the expandable section below and leave your response as a comment on this issue thread. Submissions will be open until June 28, at which time the Foundation will review all submissions and select one individual/team to complete the work defined here.
Submission form
Copy the entire application below and leave a comment on this issue with your answers completed. A representative from the Optimism Foundation may reach out using the contact info provided to request more information as necessary.
Foundation Mission (RFP) Application
Please verify that you meet the qualifications for submitting at the above Tier
- Alliance Lead: Please specify the best point of contact for your team
- Contact info:
- L2 recipient address:
- Please list the members of your Alliance and link to any previous work:
Read more about Alliances here
What makes your Alliance best-suited to execute this Mission?
- [...]
- [...]
Please describe your proposed solution based on the above Solution Criteria (if applicable):
- [...]
- [...]
Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each peice of work:
- [...]
- [...]
Please define the critical milestone(s) that should be used to determine whether you’ve executed on this proposal:
- [...]
- [...]
Please list any additional support your team would require to execute this mission (financial, technical, etc.):
- [...]
- [...]
Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:
- [ ] I understand my grant for completing this RFP will be locked for one year from the date of proposal acceptance.
- [ ] I understand that I will be required to provide additional KYC information to the Optimism Foundation to receive this grant
- [ ] I understand my locked grant may be clawed back for failure to execute on critical milestones, as outlined in the Operating Manual
- [ ] I confirm that I have read and understand the grant policies
- [ ] I understand that I will be expected to following the public grant reporting requirements outlined here
-- end of application --
Foundation Mission (RFP) Application
- Alliance Lead: Mahesh Murthy
-
Contact info: [email protected] | Discord:
mmurthy | karmahq.xyz#4254
- L2 recipient address: 0xC98786D5A7a03C1e74AffCb97fF7eF8a710DA09B
- Please list the members of your Alliance and link to any previous work:
- Mahesh Murthy (Founder, Karma) - Profile I am a full stack dev and have been in the crypto space since 2015. In the past, I built a platform to teach Solidity programming to developers. I have built small to large scale software applications from ground up. I have been working on Karma for last 18 months.
- Andre Mury (Full stack dev) - Profile
- Arthur Ulhoa(Backend dev) - Profile
- Amaury Maghales(Frontend dev) - Profile
Our team has been working together for the past one year. We received a grant to build a delegate dashboard which we successfully completed. We have continued to add features to the dashboard. You can see all our updates here.
We are currently working on the Delegate Registry Project.
What makes your Alliance best-suited to execute this Mission?
- The core product we are building at Karma is to index Governance stats and let DAOs perform actions based on that data. This RFP aligns with our mission and what we are building.
- You can see in Karma delegate dashboard (we received OP grant to build this), we already calculate the voting power of delegates. This RFP is a logical extension to what we have done.
- We also recently implemented a very similar feature for Apecoin DAO, you can find some details here.
- We have been working on this product for 18 months and we have the necessary expertise to execute on this project.
Please describe your proposed solution based on the above Solution Criteria (if applicable):
The dynamic delegate attestation system aims to automate the permissions management of the platforms used in the Optimism ecosystem and become a lego block upon which other ecosystem projects can be built.
Below are high level implementation steps
-
Create an attestation schema by following the Ethereum Attestation Service standard. Attestation station has adopted the EAS schema system, so we will define the schema to make sure all necessary fields are included and register the schema on-chain. The schema will be visible in the EAS explorer for anyone to inspect.
-
Build a subgraph to fetch all delegates with more than 0.25% voting power. We intend to use the graph protocol's subgraph to index and query on-chain data to get the voting power of delegates. We have already implemented and open sourced the subgraph. We will make any modifications necessary to accommodate this use case.
-
Issue or revoke attestations based on delegate voting power criteria. Code to query the subgraph and issue or revoke attestations based on the voting power will be implemented. We will also wrap this code in Gelato's new web3 function product that can be used to execute this in a decentralized way.
-
Add/remove access to gated channels based on attestation. We will integrate with forum and discord to automatically update roles based on the criteria set. If everything is already setup in Guild, we can easily integrate. If not, we will integrate with Discourse API for forum actions. For Discord, we already have a bot that can be enhanced to add logic to add/revoke roles.
-
Setup cron job to run steps 2 to 4 every day. We will have a job that triggers the code in Step 3. However, this job can be triggered by anyone at any time even if our job runner were to go away. We will discuss with your team to see if you prefer a solution like Gelato that can be used to run it in a decentralized way.
-
We will build a simple UI to see who has attestations at any point in time.
The application will be primarily built using TypeScript and all the code including schema, job runner, services and subgraphs will be open sourced.
Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each peice of work:
- Week 1: Finalize requirements, setup repositories, define and create Attestation Schema.
- Week 2: Implement job to fetch delegates and issue/revoke attestation.
- Week 3: Integrate with guild to automatically add/remove roles.
- Week 4: Set up cron job and final handoff. Publish all code to github repo.
- Week 5 and later: Create a thread on forum to post updates, communicate enhancements and share metrics. There is always going to be tweaks and small enhancements once the project is launched and we are happy to work with your team and make the necessary updates.
Please define the critical milestone(s) that should be used to determine whether you’ve executed on this proposal: Below are two critical milestones for this project:
- Anyone should be able to see the attestations issued on-chain.
- Delegates can confirm if they have the correct role based on their voting weight.
Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:
- [X] I understand my grant for completing this RFP will be locked for one year from the date of proposal acceptance.
- [X] I understand that I will be required to provide additional KYC information to the Optimism Foundation to receive this grant
- [X] I understand my locked grant may be clawed back for failure to execute on critical milestones, as outlined in the Operating Manual
- [X] I confirm that I have read and understand the grant policies
- [X] I understand that I will be expected to following the public grant reporting requirements outlined here
Foundation Mission (RFP) Application
• Team Lead: Jeremie
• Contact info: @attestations
(discord username)
• L2 recipient address: 0xe85594EBfa7B0CF32dD675142aC69ae6c816F8f4 (Safe)
• Please list the members of your Alliance and link to any previous work:
Jeremie - Team Lead with knowledge in web development and blockchain technology. He has been a long-term and active contributor to the Eco network, as well as to several DAOs including Eco, Colony, and Alchemist. Over the past 6 months, he has been a key contributor to the development of Eco ID, reputation and identity primitive of the Eco network. Recently, Jeremie participated in ETHGlobal Lisbon and won the first place in the category "Decentralize Our Identities" from Optimism. OMiage - He is a business analyst with 5 years of experience who is passionate about user experience, creative technology, and sports data. Some of his day-to-day activities include modeling and building applications, helping builders to improve their design thinking process and better communicate to a larger audience. His experience in data ingestion, generation, and verification has considerably aided in Eco ID's developments. Lina - She has years of experience in communication and is a full-stack developer that joined the team to help with the development of Eco ID. Her excitement, new perspectives, and commitment to learning have made her a valuable addition to the team, which helped with implementation and testing phases of Eco ID, gaining practical knowledge about blockchain-based identity and reputation solutions.
What makes your Alliance best-suited to execute this Mission?
In the last six months, our team has collaborated on identity and reputation protocols, we are confident in our ability to provide a high-quality solution that meets or surpasses expectations. Our team is qualified and well-positioned to carry out its objective due to the following reasons:
- Decentralized collective: We have already been functioning under a decentralized structure, delivering results and meeting milestones. We collaborate in a transparent, productive manner with focus on coordination and streamlined progress.
- Experience with reputation and identity primitives: We contributed significantly to the development of Eco ID, a decentralized identity and reputation mechanism. Our deep research and brainstorm sessions provides us with a thorough understanding of the variety of use cases and challenges involved in developing a robust identity and reputation system.
- Support, vision, and alignment: Being active participants of the Eco ecosystem, along with the protocol team of Eco presently launching on Optimism, gives our team in a unique position and allows us to function as a "bridge" that encourages developments and collaboration across both ecosystems.
Please describe your proposed solution based on the above Solution Criteria (if applicable):
Optimism strives for complete decentralization, but some of its governance processes remain centralized. This proposal is based on the progressive decentralization that Optimism is pursuing.
The existing process of delegating the right to endorse a proposal in Optimism is manual, centralized, and inefficient. When an OP token holder changes their delegation to a delegate, the change in voting power is indexed on the Dune dashboard. Then, an Optimism administrator will manually update the necessary permissions in both the Discourse Forum and the Optimism Discord server by comparing the list to the current list of delegate having the rights to Endorse proposal. The current system operates as shown in the flowchart below:
Our approach uses EAS composability to create a permissionless and decentralized system with a single source of truth: a revocable attestation that corroborates a delegate has more than 0.25% of total voting power and is not under active suspension.
We ensure the longevity of this solution by providing a trustless system; leveraging resolver contracts abilities to enforce onchain data verifications. As a result, because anybody may attest or revoke an attestation of a delegate using the new Attestation Station powered by EAS, automation will be far easier to construct because the centralized component of such automation will no longer be in a concern.
The key elements of our architecture are explained in the flowchart below:
Flowchart video explainer: https://www.loom.com/share/ecdd5c4934ed414d89896d12e044c66d
Flowchart text explainer:
(a) An EAS Schema ("Endorse proposal") that will be linked to Resolver contract (b). Every attestation of this schema's attestations will be revocable.
(b) This resolver contract will be trustless and will provide the same results regardless of who calls it, by ensuring that Attestations (c) created via the "Endorse proposal" Schema (a) comply with the following condition:
- Share of votable supply ≥ 0.25%
- No Active suspension of this delegate
(c) These “Have right to Endorse proposal” attestations are revocable. Anyone detecting whether or not a newer delegate fits the conditions will be able to attest or revoke that attestation using the Schema (a) using the Attestation Station.
(d) Regarding the Delegate suspension, as agreed upon in this proposal, the token house can vote to suspend a delegate, and because Optimism Agora allows proposals to execute transactions upon approval, we could use this to implement temporary suspensions for each delegate suspension.
(e) This schema "Delegate Suspension" will be linked to Resolver contract (f). This schema's attestations will be irrevocable, with a suspension start and end date.
(f) This resolver contract will ensure that all attestations from Schema (e) are triggered via a on-chain proposal on Optimism Agora.
(g) If these "Delegate suspension" attestations occur as a 'side effect' of our proposed system, it will provide the essential flexibility for future use cases.
(h) Regarding the Automation process, it consists of:
(i) Subgraph (EAS subgraph already allows requesting attestations from a certain schema)
(j) An incentivized open source Supervisor, if the team believes being the best way to ensure a short delay between a change in delegation or a new suspension agreed on, and its reflection on the related attestation. We will provide a NodeJS Supervisor that will pull data from the Subgraph (i) and certify or revoke the associated attestations using the EAS node SDK.
Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each piece of work:
We scheduled what we want to do in a weekly agenda to help us keep on track.
** Research & Application:**
- [x] Discovered the ability to suspend a delegate
- [x] EAS research and experimentation
- [x] Team’s Safe creation
- [x] High level architecture schema
- [x] RFP Application
Week 1 - POC :
- [ ] Gather feedback
- [ ] Provide a test revocable "Have Right to Endorse Proposal" attestation
- [ ] automation with Guild.xyz
- [ ] Creating a test Discourse and Discord server to demonstrate how the entire procedure will function
Week 2 & 3 - Implementation :
- [ ] Create the 2 resolver contracts (which will be hosted on the Builders Ecollective github
- [ ] Create the Supervisor code
- [ ] Custom Guild.xyz requirement module based on attestations
Week 4 - External Communication :
- [ ] User guides and documentation:
- [ ] System specs
- [ ] How to run the supervisor
- [ ] Social communication
- [ ] Analytics and KPIs
Please define the critical milestone(s) that should be used to determine whether you’ve executed on this proposal:
Some specific points used to measure the progress toward our ultimate goal are:
- Contract addresses and transaction hashes publicly verifiable on-chain
- Attestations verifiable on-chain
- User interface that users may access and interact with
Please list any additional support your team would require to execute this mission (financial, technical, etc.):
It would be fantastic and very appreciated if the following could provided:
- 30% of the grant amount in cash upfront
- Security audit on our resolver contracts
- Active feedback that directly helps us hone and develop improvement
Thank you!
Submissions for this RFP are now closed. Thanks to everyone who submitted a proposal!
Someone from the Optimism Foundation will reach out on or shortly after July 13 to communicate which proposal(s) have been accepted and schedule a kickoff. We may also reach out individually to the contact info you've provided if we want to discuss the proposal in more detail.
In the meantime, feel free to tag me here or reach out directly ([email protected]) with any questions.
Hi y'all – thank you all for the amazing submissions!
We're excited to share that we will move forward with the proposal from @jeremie-olivier from Eco. Their robust, decentralised, evergreen design made them an excellent fit for the project.
@jeremie-olivier, we will contact you directly to discuss the project and expectations in more detail. Please update your email in your RFP as it bounces emails.
For all other teams here: we'd love to help you find the right way to contribute to the Optimism Collective. See the rest of the issues in the Ecosystem Contributions repo for ideas, suggestions, and other possible projects. And stay tuned for more RFPs posted in the next few months. Thank you all for your effort and thought; this was a tough call.
Hi @Nicca42,
We're truly honored and excited to dive into the project with you. Just wanted to give you a heads up that I've updated my contact email to a new one, so you can reach me directly now.
Looking forward to make this project a success together!
Hello @Nicca42,
Ready to build this with the team !
We are glad to announce that the work of this RFP has started.
Thanks to @Nicca42 for the Kick-off call today.
We're thrilled to share some news with you all. The Supervisor is now available here OP-RFP-60.
For now, it is possible to create, and revoke attestations, check if there is active suspension, and a pooling is automatically done every 5 seconds.
What the Supervisor can do :
-
Enhanced Data Gathering: The supervisor now efficiently pools data from both the Optimism governance portal subgraph and the EAS subgraph. This ensures that our governance processes are backed by the most accurate and up-to-date information.
-
User-Friendly Configuration: We've introduced a simple and intuitive way to adjust the required voting power threshold. It's all possible with the config.ts file, allowing you to adapt our tools to your specific governance needs.
Also, we updated the architecture of our solution as we have found in EAS-contracts that only original attesters are able to revoke their attestations. So we decided to create a Pass-through contract to ensure that all attestations can be revoked while being generated from the same address. To make this possible we are going to create an attesterVerifier to our main resolver.
Feedbacks are welcomed!
Pe
Foundation Mission (RFP) Application: Dynamic Delegate Attestations #60
-
Contact info: [email protected] | Discord: cdiddy2
- Alliance Lead: Carl Gocht
- L2 recipient address: 0xa1Fa3Be803baB262a8C1185e31f9019788eBd89B
- Please list the members of your Alliance and link to any previous work:
- Kevin Nielsen (Founder, Boardroom)
- Carl Gocht (Backend dev)
- Sudheer Timmaraju (Full stack dev)
- Pedro Fernandes (Frontend dev)
What Makes Your Alliance Best Suited to Execute this Mission?
- Extensive Governance Experience: Our team has been at the forefront of governance execution for the past four years, specializing in DAO operations. We possess deep expertise in data indexing and API development for crucial DAO metrics, including detailed delegate information, which is pivotal for dynamic delegate attestations.
- Proven Track Record with Optimism Grants: We have successfully secured and delivered on previous Optimism grants, demonstrating our ability to meet and exceed expectations within this ecosystem.
- Comprehensive Platform Capabilities: Boardroom, our governance data and delegate services platform, is designed to support stakeholders in making faster, smarter, and more informed decisions. Our platform's capabilities directly align with the objectives of dynamic delegate attestations, ensuring a robust and effective execution of this mission.
By leveraging our extensive experience and proven track record, we are well-equipped to execute the Dynamic Delegate Attestations mission successfully.
Please describe your proposed solution based on the above Solution Criteria (if applicable):
Our proposed solution is designed to meet the specified criteria for Dynamic Delegate Attestations effectively and transparently. Here’s a step-by-step breakdown:
-
Creating the Attestation Schema:
- Using the Ethereum Attestation Service (EAS), we will create a schema for dynamic delegate attestations. This schema will enable transparent onchain tracking of attestations.
- Proposed attestation schema:
bool canEndorseProposal
- Proposed attestation schema:
- Using the Ethereum Attestation Service (EAS), we will create a schema for dynamic delegate attestations. This schema will enable transparent onchain tracking of attestations.
-
Developing the Attestation Runner:
- We will create an attestation runner using AWS Lambda, which will be triggered periodically (likely daily) to check the state of delegate attestations. The attestation runner will follow these steps:
- Check Delegate Status: The runner will use newly created Optimism delegate subgraphs to identify delegates who meet the vote power requirements. To start this is the top 100 delegates based on vote power.
- Issue and Revoke Attestations: Based on the results, the runner will issue EAS attestations for delegates who meet the requirements and revoke attestations for those who no longer meet the necessary vote power.
- Store and Expose Data: The runner will use the EAS subgraph to get a current list of delegates who meet the requirements. For transparency and ease of access, this information will also be made accessible through one of our APIs.
- We will create an attestation runner using AWS Lambda, which will be triggered periodically (likely daily) to check the state of delegate attestations. The attestation runner will follow these steps:
-
Frontend Website Development:
- We will create a front-end website to display the current attested delegates, enhancing system transparency for users and providing a clear and user-friendly interface for viewing delegate information.
-
Integration with Guild.xyz:
- Guild.xyz will be configured to monitor the EAS attestations and manage role assignments and removals as needed. Initially, this will include roles in Discord and Forum platforms, potentially expanding to other platforms like Telegram.
This comprehensive solution leverages our technical capabilities and existing infrastructure to ensure a robust and transparent system for dynamic delegate attestations. The following diagram outlines the general architecture:
Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each piece of work:
Week 1: Finalize Requirements and Setup
- Finalize the detailed requirements for the project, ensuring all stakeholders are aligned.
- Set up repositories on GitHub for code collaboration and version control.
- Define and create the Attestation Schema using EAS to ensure clear and transparent tracking of delegate attestations.
Week 2: Integration with Guild.xyz
- Integrate with Guild.xyz to automate the addition and removal of roles based on EAS attestations.
- Configure initial roles for Discord and Forum platforms, ensuring seamless integration.
- Test the integration to ensure roles are correctly assigned and removed.
Week 3: Implement Attestation Runner
- Develop the attestation runner using AWS Lambda, ensuring scalability and reliability.
- Create the Optimism delegate subgraph. Use it to query for the delegates that meet the vote power requirements.
- Implement functionality to issue and revoke EAS attestations based on delegate status.
- Store and expose the list of attested delegates and associated data through our API for transparency.
- Conduct initial tests to ensure the attestation runner functions as expected.
Week 4: Develop Frontend Website
- Create a front-end website for viewing the current attested delegates, focusing on a user-friendly interface.
- Ensure the website provides clear, accessible, and transparent information about delegate status.
- Perform user testing to gather feedback and make necessary adjustments to the website.
Week 5: Documentation and Code Publication
- Write comprehensive documentation for the project covering setup, usage, and maintenance.
- Publish all code and documentation to the GitHub repository, ensuring it is accessible and well-organized.
- Announce the publication and guide how the community can contribute or provide feedback.
Beyond: Ongoing Improvement and Expansion
- Gather user feedback and metrics to assess system performance and identify areas for improvement.
- Implement updates, fixes, and maintenance based on feedback to ensure the system remains robust and effective.
- Explore further features for future engagement, such as:
- Incorporating delegate-to-delegate attestations as additional criteria for delegate entry.
- Expanding role management to other platforms like Telegram and additional forums.
- Enhancing the attestation schema to include more detailed criteria and metrics.
Risk Management and Contingency Planning
- Identify potential risks (e.g., integration issues, data discrepancies) and develop contingency plans.
- Regularly review progress and adjust the plan to address any unforeseen challenges.
Community Engagement
- Engage with the community through forums, Discord, and other platforms to gather ongoing feedback.
- Provide regular updates on progress and encourage community involvement in testing and feedback.
Please define the critical milestone(s) that should be used to determine whether you’ve executed this proposal:
To determine whether we have successfully executed this proposal, we will achieve the following critical milestones:
-
Onchain Attestations using EAS:
- Successfully create and deploy the attestation schema using the Ethereum Attestation Service (EAS).
- Demonstrate that the system can issue and revoke attestations based on delegate status.
- Verify that the attestations are transparently tracked onchain, ensuring the integrity and reliability of the system.
-
Functional User Interface for Viewing Attestations:
- Develop and deploy a front-end website that allows users to view current attested delegates.
- Ensure the user interface is intuitive and user-friendly and provides transparent information about delegate status.
- Conduct user testing and gather feedback to refine the interface, ensuring it meets user needs and expectations.
-
Github Repository with Comprehensive Code and Documentation:
- Publish the complete codebase to a public GitHub repository, ensuring it is well-organized and accessible.
- Include comprehensive documentation covering setup, usage, and maintenance of the system.
- Provide clear instructions for community contributions and feedback, fostering an open-source development environment.
-
Integration with Guild.xyz:
- Successfully integrated the attestation system with Guild.xyz to automate role management based on EAS attestations.
- Verify that roles are correctly assigned and removed in platforms such as Discord and Forum based on delegate status.
-
Performance and Reliability Testing:
- Conduct thorough testing to ensure the attestation runner and frontend website perform reliably under expected load.
- Address any issues identified during testing to ensure a robust and dependable system.
-
Community Engagement and Feedback:
- Actively engage with the community through forums, Discord, and other platforms to gather feedback on the system.
- Incorporate community feedback into system improvements and updates, demonstrating responsiveness to user needs.
-
Metrics and Reporting:
- Establish key performance indicators (KPIs) to measure the success and impact of the system.
- Provide regular updates and reports on progress, including metrics such as the number of attestations issued, user engagement with the frontend interface, and system reliability.
By achieving these milestones, we will demonstrate the successful execution of the Dynamic Delegate Attestations proposal, ensuring a transparent, reliable, and user-friendly system for the Ethereum Optimism ecosystem.
Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:
- [x] I understand my grant for completing this RFP will be locked for one year from the proposal acceptance date.
- [x] I understand that I will be required to provide additional KYC information to the Optimism Foundation to receive this grant.
- [x] I understand my locked grant may be clawed back for failure to execute on critical milestones, as outlined in the Operating Manual.
- [x] I confirm that I have read and understand the grant policies
- [x] I understand that I will be expected to follow the public grant reporting requirements outlined here
Thank you to everyone who has previously applied to this mission request! This mission was never completed, and in the meantime some of the requirements have changed. The Collective now uses the ranking in the top 100 to determine top delegates, whereas previously it looked at delegates with more than 0.25% voting power.
This mission request was updated yesterday with new requirements, and we invite builders to re-submit their applications with modifications based on the new requirements @maheshmurthy @CarlGocht 🙏
@C-Emily-Furlong is it open for builders who didn't apply previously?
Updated the Boardroom proposal to reflect the changes.
Foundation Mission (RFP) Application
Alliance Lead: v3naru.eth (Varit Ruangsiri)
Contact info: [email protected] | TG: @v3dao
L2 recipient address: 0xA8A2b3EA014BEDaBdD6a12EEB699f7E2dE33Dff0
Please list the members of your Alliance and link to any previous work:
- Varit Ruangsiri (Co-founder, Curia Lab) - Alliance Lead
- Apemon (GitHub) - Data & Smart Contract Engineer
- Jirayu Rungruang - Full Stack Developer
- Other roles may be filled as needed
What makes your Alliance best-suited to execute this Mission?
Our alliance stands uniquely positioned to spearhead the Dynamic Attestation mission, underpinned by our intrinsic ties to the Optimism Collective and a shared history of impactful contributions. Here’s why we believe we are the ideal fit for this mission:
-
Proven Track Record in Building Tailored Governance Database and Dashboard for Optimism Collective:
- We have built the OP governance analytics dashboard, one of the first and only dashboards besides the Agora website to integrate the latest partial/advanced delegation data. Additionally, we've assisted the OP Lab Data team in populating data from Agora to create their dune delegation dashboard with partial delegation. This collaboration highlights our technical proficiency and dedication to providing the most up-to-date and accurate data for the Optimism Collective.
-
Expertise in Onchain Attestation:
- Our team is currently working on the OP Passport project, which includes features similar to those required for this mission. This project leverages our experience in creating robust, privacy-preserving attestations, which will be directly applicable to the Dynamic Delegate Attestations mission.
-
Deep Engagement with the Optimism Governance Ecosystem:
- Varit, one of our key team members, is an active participant and a top 100 delegate in the Token House. His consistent presence in governance calls and deep understanding of the governance dynamics within the Optimism ecosystem give us a unique vantage point. This enables us to quickly grasp and implement changes in requirements from the Optimism Collective, ensuring that our solutions are always aligned with the community's needs.
Our combination of technical expertise, hands-on experience with similar projects, and deep engagement with the Optimism governance ecosystem makes us exceptionally well-suited to execute this mission effectively and efficiently.
Please describe your proposed solution based on the above Solution Criteria (if applicable):
Our proposed solution is designed to meet the specified criteria while maintaining flexibility and adaptability to changing requirements. This section will outline the solution architecture and workflow as follows:
Solution Architecture
The system architecture includes the data pipeline, back-end services for smart contract integration and API provision, front-end interface, and a database for tracking delegates' voting power.
-
Subgraph: Indexes data from on-chain sources. We chose Subgraph over our in-house indexer for its flexibility and easier maintainability by the community, as it is widely adopted in many Web3 data communities. The contracts we index include:
- OP Contract: for voting power and delegate data
- Alligator Contract: for partial delegation information
- Gov Contract: for governance participation data
- EAS Contract: to retrieve attestation data for delegates
- Data Pipeline: Consumes data from both the indexer and off-chain sources (e.g., proposals) to calculate the top 100 voting power delegates and store them in the database. Our current implementation will use GCP Cloud Run and be orchestrated by GCP Workflows. We also index some off-chain data like proposal information for new use case extensions.
- Frontend: Web interface for users to interact with the platform.
- Database: Storage for delegates' voting power and subdelegation rules.
- Attestation Issuer: The backend service responsible for issuing and revoking attestations to delegates.
Workflow
- Daily trigger to update the indexer
- Daily trigger to data pipeline to fetch data from the indexer and calculate top 100 delegates' voting power
- Fetch existing attestation and check conditions for revoking
- Revoke delegates that have not met the criteria
- Issue new attestations for top new delegates
- Update roles on guild.xyz
- All information will be stored in the database and can be provided by API and user interface
Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each piece of work:
Week 1: Implement Indexer and Data Pipeline
- Develop a subgraph to collect raw data from on-chain sources. This raw data will be used in the data pipeline to calculate voting power and retrieve existing delegate attestations.
- Develop a data pipeline to collect data from the subgraph and calculate the voting power of the top 100 delegates.
- We chose to implement on Subgraph first because it requires a significant amount of time to initialize indexing data (OP gov-related contracts have more than 45 million events).
Week 2: Finalize Requirements and Setup Infrastructure
- Finalize requirements and voting power calculation methodology
- Finalize EAS schema
- Set up GitHub repositories for open-source development
Week 3: Implement Attestation Issuer
- Create a Safe account for attestation to ensure team access in case of EOA key loss or compromise
- Register ENS for attestation Safe account
- Develop attestation issuer using GCP Cloud Run, triggered by Cloud Scheduler
- Provide all attestation information via API for transparency
Week 4: Integrate with Guild.xyz & Develop Frontend Website
- Create front-end interface
- Integrate with Guild.xyz for automated notification channel
- Automate the addition and removal of roles based on EAS data
- Establish notification channel
Week 5: Provide Documentation and Refine Code for Publication
- Develop a GitBook for comprehensive project documentation, including:
- Design specifications
- Setup instructions
- Maintenance guidelines
- Contribution guidelines
- Refactor and export selected code to create more generalized and maintainable solutions
- Consider implementing subgraphs to enhance maintainability and facilitate easier access for community providers
- Refine and optimize code
- Update and polish documentation before pushing to the GitHub repository
Please note that the actual time for some of these tasks may differ slightly from the plan. We may add a 1-2 week buffer to accommodate potential adjustments.
Further Plan:
- Maintain and implement updates with bug fixes, and new requirements based on feedback from the community.
- Plan to Open-Source Our In-House Indexer.
Maintaining a subgraph incurs significant costs and performance sync time, which may discourage community members from hosting the subgraph infrastructure themselves. To address this problem, we aim to create a new indexer infrastructure based on our in-house indexer design, developed in Rust and Python, optimized for high-volume data processing.
Currently, our in-house indexer is tightly coupled with Curia infrastructure. Our objectives are to:
- Make the indexer more generic
- Improve maintainability
- Open-source the solution
These changes will enable the community to benefit from:
- Improved performance
- Reduced costs for self-hosting indexer infrastructure
Ultimately, this initiative will promote greater decentralization and transparency within the OP ecosystem.
Please define the critical milestone(s) that should be used to determine whether you’ve executed on this proposal:
To ensure the successful execution of this proposal, we will achieve the following critical milestones:
-
Deployment of Onchain Attestations Using EAS:
- Develop and deploy the attestation schema with the Ethereum Attestation Service (EAS).
- Implement functionality to issue and revoke attestations based on delegate status.
- Ensure that all attestations are transparently recorded onchain, maintaining system integrity and reliability.
-
Development of a Functional User Interface for Attestation Viewing:
- Create and launch a front-end website displaying the current attested delegates.
- Design an intuitive and user-friendly interface that provides clear, transparent information about delegate status.
- Conduct thorough user testing and incorporate feedback to refine the interface and ensure it meets user needs.
-
Publishing a Comprehensive GitHub Repository:
- Release the complete codebase on a public GitHub repository, organized and accessible for community use.
- Provide detailed documentation covering system setup, usage, and maintenance.
-
Successful Integration with Guild.xyz:
- Integrate the attestation system with Guild.xyz for automated role management based on EAS attestations.
- Verify the accurate assignment and removal of roles on platforms such as Discord based on delegate status.
-
Performance and Reliability Assurance:
- Conduct rigorous testing to ensure the Attestation Issuer and front-end website perform reliably under expected load conditions.
- Address any identified issues to guarantee a robust and dependable system.
Please list any additional support your team would require to execute this mission (financial, technical, etc.):
- OP Lab Data: Assistance from OP Lab to verify the accuracy of the data.
Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:
- I understand my grant for completing this RFP will be locked for one year from the date of proposal acceptance.
- I understand that I will be required to provide additional KYC information to the Optimism Foundation to receive this grant.
- I understand my locked grant may be clawed back for failure to execute on critical milestones, as outlined in the Operating Manual.
- I confirm that I have read and understand the grant
@mendesfabio it is! Please feel free to apply :)
Foundation Mission (RFP) Application
Please verify that you meet the qualifications for submitting at the above Tier
Everybody qualify for Ember Tier. Moreover, Alliance Leader have got 49k OP on RetroPGF 3 for Retrolist project.
- Alliance Lead: Chomtana Chanjaraswichai
- Contact info: [email protected]
- L2 recipient address: 0xC9cEeEabFBb106FBd80E212C1B836134dc8eb2dE
Please list the members of your Alliance and link to any previous work
Chomtana Chanjaraswichai - Team Lead, Core Developer, Smart Contract Development
- TechNerd
- simple-optimism-node
- RetroList
- Opti.domains
- And more...
Johnny Phan - Protocol Engineer
Chris - Protocol Engineer
- Have experience maintaining validator for Upnode
- Have experience deploy self-hosted dedicated graph node on non-mainnet chain
- Work on subgraph monitoring system
- And more...
What makes your Alliance best-suited to execute this Mission?
We have built RetroList, the first and only Retro Funding 4 Discovery UI available so far. Our platform queries and indexes project data directly from the EAS, while others are still waiting for the Agora API to integrate real data. This showcases our expertise in EAS Attestation and have got retweets from Optimism.
Moreover, we have years of experience in the identity field, demonstrated through the development of Opti.Domains, which integrates social verification with EAS attestation. To date, we have completed over 10,000 attestations related to social and wallet verification linked to domains.
We have experience using EAS on Guild.xyz for Opti.Domains
Chomtana, Alliance lead is a top 100 delegate
Please describe your proposed solution based on the above Solution Criteria (if applicable):
Our proposed solution stands out from other applicants. We offer a permissionless approach powered by a delegation refreshing event streamed to the core "Delegate Ranker Contract". Anyone can refresh the delegation amount for others without permission and can implement different "Delegation Event Managers" to promote client diversity. We provide a standard "Delegation Event Manager" that everyone can launch without restrictions. Additionally, we will host two instances of the "Delegation Event Manager" for redundancy and high availability, with monitoring that alerts our engineers if a server goes down.
Below are the explanations for each component:
Subgraph
A subgraph is a stable and straightforward way to index on-chain events. Our subgraph will index both classical delegation events from the OP Token contract and advanced delegation events from the AlligatorOP contract. Additionally, we will decode SubdelegationRules into indexable fields for the "Delegation Event Manager" to query and process.
The subgraph will be deployed to "The Graph Decentralized Network" for reliability and easy access. We will curate our subgraph with an appropriate amount of GRT to incentivize indexers to index this subgraph.
For the current requirements, only delegation events are necessary. However, to support recent proposal voting requirements, the subgraph can be upgraded to handle voting events.
Delegation Event Manager
The Delegation Event Manager queries the subgraph for delegation events that need to be refreshed, simulates, and executes the delegation refresh on the ranker contract.
The Delegation Event Manager runs on a schedule and can be deployed permissionlessly by anyone. We can control how often the Delegation Event Manager will refresh the delegation events.
After delegations have been refreshed, the Delegation Event Manager will fetch the current top 100 delegates from the Delegate Ranker Contract and compare if there are changes in the ranking of the top 100 delegates. If there is a change, it will signal the Delegate Ranker Contract to update the ranking, revoke the last delegate attestation, and issue a new top delegate attestation to the new top 100 delegate.
To support recent proposal voting requirements, the Delegation Event Manager must be upgraded to refresh delegation on voting events in addition to delegation events.
Delegate Ranker Contract
The Delegate Ranker Contract is a core contract that tracks and ranks the top 100 delegate voting power on-chain and then attests and revokes to the EAS. It works by accumulating voting power from different sources from a series of delegation refreshes called by the Delegation Event Manager.
Here are examples of delegation refreshes:
- Refresh the amount of classical delegation for the delegation of A to B.
- Refresh SubdelegationRules for the delegation of A to B.
The delegation amount will be refreshed for a particular source, and the difference in voting power will be accounted for. An event will be emitted with changes in voting power for the Delegation Event Manager to use in the ranking process.
Refreshing delegation for the same pair multiple times is fine and never causes double-counting issues as it's a refresh, not an accumulation. This enables the Delegation Event Manager to work worry-free of double counting.
Since the Delegate Ranker Contract and Event Manager are permissionless, we encourage multiple parties to host them for more reliability and decentralization.
Once the delegate voting power has been updated, the rank is not updated immediately to save on gas usage. The Delegation Event Manager will query the current top 100 rankings, compare them with the updated rankings, and post the ranking update to the contract.
To support recent proposal voting requirements, the Delegate Ranker Contract is designed with a function that dynamically blacklists a specific delegate. Initially, all delegates are whitelisted, but once the proposal voting requirement is implemented, ghosted delegates will be blacklisted.
A blacklisted delegate will have their attestation revoked and won't be able to hold a place in the ranking.
Contract upgrades are done through the Protocol Upgrade procedure that the Developer Advisory Board must review and can be vetoed by Citizen House. This is safer than a centralized oracle solution.
Guild.xyz Integration
Guild.xyz will be automatically integrated if we design our EAS schema correctly.
We need Optimism's Discord server moderator to implement the role and EAS requirement.
Discourse Integration
We will develop a Discourse plugin to incorporate the top 100 delegate attestation with https://gov.optimism.io/.
Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each peice of work:
- Study AlligatorOP and advanced delegation with Agora Team - 31 July 2024
- Subgraph Deployment - 16 August 2024
- Delegate Ranker Contract Development - 31 August 2024
- Delegate Ranker Contract Audit (If needed) - 20 September 2024
- Delegation Event Manager Development - 30 September 2024
- Deployment - 4 Oct 2024
- Discourse Plugin Development - 18 Oct 2024
- Guild.xyz, Discord and Discourse integration on official channels - 31 Oct 2024
Please define the critical milestone(s) that should be used to determine whether you’ve executed on this proposal:
- Components are develop and delegate attestation is regularly update to EAS
- Governance community platforms (like Discord and Discourse) are able to consume an accurate, regularly updated source of data to understand which delegates are in the top 100.
- Guild.xyz, Discord and Discourse integrated with our Delegate Attestation
Please list any additional support your team would require to execute this mission (financial, technical, etc.):
- Contact with Agora AlligatorOP developer (Very important!)
- Gas fee support for event streaming and attestation
- Contact with guild.xyz would be great but not required
- Coordinate with Optimism's discord server moderator
- Coordinate with Optimism's discourse server admin
- Contract Audit (If Needed, can't be covered in the grant as it's not large enough to sufficient for a high quality audit)
- I think the Developer Advisory Board can provide a contract audit
Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:
- [X] I understand my grant for completing this RFP will be locked for one year from the date of proposal acceptance.
- [X] I understand that I will be required to provide additional KYC information to the Optimism Foundation to receive this grant
- [X] I understand my locked grant may be clawed back for failure to execute on critical milestones, as outlined in the Operating Manual
- [X] I confirm that I have read and understand the grant policies
- [X] I understand that I will be expected to following the public grant reporting requirements outlined here
-- end of application --
bleu Foundation Mission (RFP) Application
- Alliance Lead: Luiza
- Contact info: [email protected]
- L2 recipient address:
0xa41214012d4462ecBB0724673897Ee0dCc0fDF49
Alliance Members
- @mendesfabio - bleu's co-founder and Data @ Balancer Labs. Experienced in web3 full-stack development, with a focus on backend and data applications.
- @luizakp - bleu's software engineer. Experienced in web3 frontend development, focused on crafting user-friendly apps and integrating with smart contracts and Ponder/Subgraphs.
- Supported by bleu's team.
About us
bleu collaborates with companies and DAOs as a technology and user experience partner. We've developed several projects in partnership with CoW and Balancer. In the last Optimism Season, we have been selected for working on two mission grants: Layerwide new project support and AI assistant for governance.
What makes your Alliance best-suited to execute this Mission?
- Our team includes web3 specialists who will leverage their vast crypto experience to deliver an efficient solution, ensuring adaptability and composability for requirements and results verifiable by anyone.
- We've been developing various projects for blue-chip protocols like CoW and Balancer, including automations, dashboards, simulators, and dApps. All the projects we developed are open-source and can be found on our GitHub.
- We have actively sought opportunities to contribute to the Optimism ecosystem, including applying for Foundation RFPs and being approved to execute two missions grants - in one we're supporting several projects building on Optimism.
Please describe your proposed solution based on the above Solution Criteria (if applicable):
Description
- We researched solutions to reduce centralization but found moving the entire system onchain to be computationally expensive.
- Instead, we propose a hybrid approach with onchain and offchain components that includes:
- A offchain script: Allows the manager to change the criteria for filtering delegates - currently, top 100 by voting power. The results are used to generate a Merkle Tree and then pinned to IPFS so it's available for everyone to verify it.
- A smart contract: Used to register roots onchain and manage (issue or revoke) of attestations. Optimism can held the ownership of this contract, which provides the ability to revoke permissions if any misbehavior is detected.
- After the Merkle Root is registered onchain, the issuance and revocation of attestations is permissionless, but bleu is responsible for managing these updates daily.
Architecture
Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each piece of work:
-
Weeks 1-2 (July 15 - July 29)
- Offchain Script: Create a daily job to fetch top 100 delegates from the Agora API (we already reached out to them and got access to it) and generate a Merkle Tree.
- IPFS Integration: Work on the offchain script to pin its results to IPFS for decentralized storage and verifiable data integrity.
- Attestation Manager: Develop and deploy the smart contract to register Merkle Roots onchain and manage the issuance and revocation of attestations.
- System Integration: Integrate offchain scripts with the smart contract. If Merkle Root has changed, it compares current and previous results from IPFS to issue/revoke attestations.
-
Weeks 3-4 (July 29 - August 12)
- Overview Page: Displays comprehensive information about delegates. Includes criteria to become a delegate, the total number of current delegates, the date and time of the last verification, and a list of delegates
- Delegate Information: Provide a dedicated page for each delegate with detailed information, including their address, current status, and access to a source of truth for verification.
- Issue/Revoke Feature: Allow users to issue and revoke attestations. If not triggered by a user, the verification will be performed once a day automatically.
-
Weeks 5 (August 12 - August 19)
- Integration with Guild.xyz: Successfully integrate the attestation system with Guild.xyz to automate role management based on attestations.
-
Future Plans:
- Bug Fixes and Community Feedback: bleu is committed to fixing bugs and integrating feedback to improve the system.
- Contestation Mechanism: Explore the possibility of creating a mechanism to contest attestations, minimizing the need to trust bleu for running the offchain infrastructure.
Please define the critical milestone(s) that should be used to determine whether you’ve executed on this proposal:
- Development of the offchain infrastructure and
AttestationManager
smart contract: July 29 - Development of the frontend app: August 12
- Integration with Guild.xyz: August 19
Please list any additional support your team would require to execute this mission (financial, technical, etc.):
- We expect review and feedback from the Optimism team and the broader community.
Grants are awarded in OP, locked for one year. Please let us know if access to upfront capital is a barrier to completing your Mission and you would like to be considered for a small upfront cash grant: (Note: there is no guarantee that approved Missions will receive up-front cash grants.)
- We do not need access to upfront capital.
Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:
- [x] I understand my grant for completing this RFP will be locked for one year from the date of proposal acceptance.
- [x] I understand that I will be required to provide additional KYC information to the Optimism Foundation to receive this grant
- [x] I understand my locked grant may be clawed back for failure to execute on critical milestones, as outlined in the Operating Manual
- [x] I confirm that I have read and understand the grant policies
- [x] I understand that I will be expected to following the public grant reporting requirements outlined here
The submissions to this mission request are now closed! Thanks to all the teams that applied 🙏 We will review the applications and update this thread in the week of July 8th
Hey everyone,
Thank you for the applications and interest you have shown in participating in this Mission Request. We have decided to move forward with the proposals made by:
- Curia Lab
- Chomtana
We will be reaching out directly about next steps.
For those who were not selected this time around, I would encourage you to keep an eye on the Delegate Mission Requests which will open up for applications in the coming weeks.
You can read more in the Mission Grant section of the governance forum https://gov.optimism.io/c/mission-grants/69
Hi @C-Emily-Furlong, here's our first MVP for the Dynamic Attestation Mission Request. While we are still working on the initial design as initially proposed, we wanted to deliver this as quickly as possible to meet the timeline for the Retro Funding 6 use cases, as requested:
Overview:
Our engineering team has set up automated attestations on the testnet. We have categorized the attestations into two types:
- Including Partial Voting Power (VP)
- Excluding Partial Voting Power (VP)
Attestation Example and Schema:
-
Attestation Example: View Attestation
-
Attestation Schema: View Schema
If you require additional fields or wish to include schemas for other types, please let us know, and we can accommodate those changes.
Data Access:
While a user interface for easily viewing the attestations is currently under development, we have made the following files available for your review. These files contain daily delegates and the current top 100 attestation lists.
- Attestation List: attestation_list.json
Daily Data (replace the date in the URL with the desired date, starting from 2024-09-15):
-
Delegates Without Partial VP: delegates_without_partial_vp.json
-
Delegates With Partial VP: delegates_with_partial_vp.json
-
Attestation Without Partial VP: attestation_without_partial_vp.json
-
Attestation With Partial VP: attestation_with_partial_vp.json
- Attestation Results (Transaction Hashes of the Attestation Transactions): result.json
Next Steps:
Would be great to receive your feedback on this initial MVP. Specifically, please advise if:
- There are additional fields or data points you would like us to include.
- You require any modifications to the attestation schemas.
- There are any other features or functionalities you would like us to prioritize?
Our team is committed to refining this project to meet the collective needs and is ready to make any necessary adjustments.
Thank you for the opportunity and we look forward to your feedback.