ethereum-optimism / ecosystem-contributions

Find ways to contribute to the Optimism Collective
MIT License
311 stars 121 forks source link

Foundation Mission Request: RetroPGF 3 Discovery & Voting #104

Closed bdresser closed 10 months ago

bdresser commented 1 year ago

Foundation Mission Request: RetroPGF3: Discovery & Voting

How will this Foundation Mission (RFP) help accomplish the above Intent?

Retroactive Public Goods Funding (RetroPGF) Round 3 will take place this fall and will distribute 30M OP to reward contributions that have supported the development and adoption of Optimism.

Badgeholders (voters in RetroPGF) need to be able to discover and vote on nominated projects. A good voting experience is core to supporting the work of badgeholders and ensuring an accurate RetroPGF process.  

Round 2 of RetroPGF put a high burden on the voting experience of badgeholders, requiring them to do a lot of manual work spreadsheets and forms.  This friction limited the overall accuracy of the RetroPGF round.

Round 3 of RetroPGF is set to build on the learnings of round 2 and provide a richer and more intuitive experience for browsing projects and submitting votes.

By doing so, this mission will contribute to a more accurate evaluation of projects and contribute to the overall success of RetroPGF 3. 

What is required to execute this Foundation Mission (RFP)?

Completing this mission requires:

  1. Building a frontend that powers the discovery of projects and voting by badgeholders in RetroPGF round 3. The frontend will be based on existing designs and user stories and will utilize the Ethereum Attestation Service, and a combination of onchain and offchain (storage bucket, IPFS, etc.) sources to read data. The frontend should be fully open-source and should allow for future iterations of the functionality. The Foundation will provide product designs; this RFP primarily requires implementation.
  2. Hosting and managing the application infrastructure, including backend infrastructure needed to capture and store badgeholder votes.

Core functionality of the discovery & voting application:

Technical Architecture and implementation:

For this Mission, the Optimism Foundation will accept up to two submissions. Multiple frontends will maximize the likelihood of success and improve the resilience of the system.

The rollout of functionality of the application will be done in multiple phases:

Please find user stories, designs and EAS & Metadata Schemas for the application linked. Note that these are not final.

👈 Click here to see WIP wireframes ![image](https://github.com/ethereum-optimism/ecosystem-contributions/assets/43515441/0d36bbbd-83cd-42f9-bea2-d69e9721459d) ![image](https://github.com/ethereum-optimism/ecosystem-contributions/assets/43515441/d2362d83-7f92-4070-b549-e024f98f85a0) ![image](https://github.com/ethereum-optimism/ecosystem-contributions/assets/43515441/004d4861-9286-4935-8ba6-c661d4504e34)

What milestones will help the Collective track progress towards completion of this Foundation Mission (RFP)?

  1. Specification for implementation, design approach, and architecture for the functionality listed above.
  2. Open-source code repository to observe progress over time
  3. Launching Phase 1:  Project discovery
  4. Launching Phase 2: Voting
  5. Successful completion of the voting period

How should badgeholders measure impact upon completion of this Mission (RFP)? 

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 below. Submissions will be open until August 4th, at which time the Foundation will review all submissions and select up to two individuals/teams 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](https://gov.optimism.io/t/collective-trust-tiers/5877/2)** * **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](https://gov.optimism.io/t/season-4-alliance-guide/5873) --- **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)](https://gov.optimism.io/t/grant-policies/5833) 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.):** - [...] - [...] **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.)_ - [...] 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](https://github.com/ethereum-optimism/OPerating-manual/blob/main/manual.md#valid-proposal-types) - [ ] I confirm that I have read and understand the [grant policies](https://gov.optimism.io/t/token-house-grant-policies/5833) - [ ] I understand that I will be expected to following the public grant reporting requirements outlined [here](https://gov.optimism.io/t/suggested-public-reporting-requirements-for-grantees/4176) -- end of application -- ---
Chomtana commented 1 year ago

Hi @bdresser @JSeiferth WIP wireframes can't be seen as they are in a private repo Do we need to strictly follow the wireframes or we can purpose new features or some adjustment?

JSeiferth commented 1 year ago

Hey @Chomtana, thanks for flagging. I updated the issue, you should be able to see the wireframes now. You'll need to strictly follow the wireframes. New features/adjustments can be suggested, but timelines are pretty tight, which is why we're trying to minimize scope.

magentaceiba commented 1 year ago

Foundation Mission (RFP) Application

  1. Ori Shimony (dOrg) Mechanism Design - DAO operations specialist with experience in governance design and web3 project architecture.
  2. Magenta Ceiba (dOrg) Project Manager - Organizational development consultant, specializing in decentralized leadership and finance architecture.
  3. Muath Juady (dOrg) Frontend web3 developer & designer.
  4. Elio Briceño (dOrg) Fullstack web3 developer.

Our team has been working together for the past 3 years at dOrg.tech. We received a grant from the Ethereum Foundation to build DAO Drops, a retroactive public goods funding experiment that leverages on-chain data to empower participants to make fund allocation decisions. The first round was a huge success– see the report here.


What makes your Team best-suited to execute this Mission?


Please describe your proposed solution based on the above Solution Criteria (if applicable):

In order to ensure the best possible discovery & voting experience for badgeholders, we will closely follow the detailed functionality & technical architecture outlined in the RFP above.

Additionally, our solution will include the following considerations for each of the core functionalities:

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:

1) Implement project discovery & list discovery functionality 2) Implement voting functionality and all other steps for production-readiness 3) Successful completion of Round 3

Please list any additional support your team would require to execute this mission (financial, technical, etc.):

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.)


Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:

Chomtana commented 1 year ago

Hi @JSeiferth @bdresser, I've recently been looking over your proposed wireframe. However, I have some questions and concerns.

Final Score Calculation

In RetroPGF 2, each badgeholder was given an excel sheet to distribute their votes as percentage scores, which must sum up to 100. The final percentage for each project was calculated by averaging the percentage of all badgeholders. The project would then be awarded OP tokens proportional to its percentage from a total of 10M OP.

However, RetroPGF 3 proposes a change. Instead of percentage scores, badgeholders are now responsible for directly assigning an OP amount to each project, but the total OP doesn't have to sum up to 30M OP. If the total sum is not 30M OP, it seems to lead to multiple possible ways to calculate the final score.

From my understanding, we will do this by summing up the OP assignment from all badgeholders for each project, then dividing that by a constant such that the total OP after division equals 30M OP. This would then yield the final RetroPGF 3 OP distribution result.

Image

Image

Can anyone confirm if my understanding of the process is correct?

Are we responsible for calculating the final result?

Privacy Concerns

Another concern is over the privacy of badgeholders' voting results. While these results are supposed to be private, the system is designed to store them in our backend, which potentially exposes the data to us. Is this the intended design, or should we explore cryptographic solutions to ensure complete vote privacy?

Missing Pages

Upon reviewing the wireframe, we noticed that the following pages appear to be missing:

Is it our responsibility to create documentation?

We are committed to delivering the best quality product within a tight timeframe of one month, so understanding these requirements beforehand is crucial. We are aiming to finalize the Specification for implementation, design approach, and architecture for the functionality listed above by 4th August.

I appreciate your help in understanding these details better. Thank you for your time, and we hope you will select us for this work.

JSeiferth commented 1 year ago

@Chomtana here are the answers to your questions:

Final Score Calculation

Are we responsible for calculating the final result?

You are not responsible for calculating the final results, this will be done by the Optimism Foundation

Privacy Concerns You will be trusted to maintain the privacy of badgeholder votes and to not share the votes publicly. Cryptographic solutions to this could be a nice to have but are not in the scope of this RFP

Missing Pages As mentioned in the RFP, user stories and designs for the application will be published by August 4th.

Documentation Basic documentation of your work is required. User facing documentation and guidelines will be created by the Foundation.

Chomtana commented 1 year ago

So, we sent raw ballot results to the foundation.

I wonder if two frontend are selected, how can we sync the ballot result together if badgeholders are voted on different platforms?

carlbarrdahl commented 1 year ago

Hi @JSeiferth, Some questions came up while reading through the RFP:

Zeptimus commented 1 year ago

Hello @JSeiferth,

Our team has a couple of extra questions to add to the ones before asked by @carlbarrdahl regarding the RFP that we'd appreciate if you could help us clarify:

1) Will we be tasked with creating a submission form for the projects to apply for being part of the RetroPGF vote? If not, and if the foundation is managing this through a separate website, are there accessible APIs that will allow us to efficiently obtain the relevant data?

2) As for the design of the platform, can we expect that designs will be provided for every page that is meant to be implemented? In case there are pages for which designs are not supplied, would it be acceptable for us to bring our own designer to create these, in order to facilitate the voting process?

Developer-piyush commented 1 year ago

Foundation Mission (RFP) Application

Alliance Lead: Piyush Choudhary Contact info: piyushch377@gmail.com | Discord: boldpanther L2 recipient address: 0x2b7c6e9612c3935c039d13222f852103305d6657

Please list the members of your Alliance and link to any previous work and what makes your Alliance best-suited to execute this Mission?

Our team is exceptionally well-suited to execute this mission due to the diverse expertise and experience of its members. Each team member brings valuable skills and accomplishments to the table, ensuring that we can tackle all aspects of the project effectively and produce high-quality results. Let's elaborate on our team members' capabilities:

  1. Sumit Kumar - WEB3 and Blockchain Developer: Sumit is a skilled developer with profound knowledge of the optimism ecosystem and blockchain technologies. His expertise in WEB3 development will be pivotal in implementing decentralized features and integrating blockchain capabilities into the project. Sumit's experience in working with distributed ledger technologies will contribute to the project's innovation and cutting-edge functionality.

    GitHub Profile: https://github.com/startup-dreamer

  2. Chaitanya Rai - Backend Development Lead and Security Expert: Chaitanya is a seasoned backend developer with extensive experience in creating complex backends and designing efficient schemas. His ability to architect scalable, robust, and secure backend systems will be instrumental in building a reliable foundation for the project. With a track record of successful projects, Chaitanya has honed his skills in handling data and ensuring seamless interactions between the frontend and backend components.

    GitHub Profile: https://github.com/Chaitanyarai899

  3. Safayet Alam - MERN Stack Developer: Safayet is a highly experienced MERN stack developer, proficient in crafting interactive, responsive, and user-friendly frontends. His expertise in front-end development will ensure that the project delivers a smooth and engaging user experience. With a keen eye for design and user interface principles, Safayet can create visually appealing and intuitive interfaces that align with the project's objectives.

    GitHub Profile: https://github.com/safayetdib

  4. Piyush (Alliance Lead and Project Manager) - SAAS Development Expert: I bring invaluable expertise as our Alliance Lead and Project Manager. With over 3 years of experience in leading SAAS development in web3 and 5+ years in web2 SAAS, I have a proven track record in delivering high-quality development solutions. I operate a dedicated agency specializing in web3 and web2 SAAS, serving numerous clients successfully. My leadership and project management skills will ensure seamless coordination and timely delivery of the project.

    GitHub Profile: https://github.com/developer-piyush LinkedIn: LinkedIn Profile Hooman Digital

  5. Nitish Kumar - In-house UI/UX Designer: Nitish is our skilled in-house UI/UX Designer who plays a vital role in shaping the project's design and user experience. With his expertise, he can make design fixes, optimize responsiveness for mobile devices, and ensure that the project's visual appeal matches its functionality. Design is already being provided but if something comes up we can easily manage.

    Behance Profile: https://www.behance.net/nitishkumar142

  6. Avanish Singh - Web3 and Blockchain Developer: Avanish's talent lies in web3 and blockchain development, particularly in writing smart contracts. His skills will be critical in implementing blockchain logic. With a deep understanding of blockchain protocols, Avanish can contribute to building secure and reliable applications.

    GitHub Profile: https://github.com/Averek7

  7. Abdul Al Numan - Full Stack Developer: Abdul brings extensive experience as a full-stack developer with a specialization in creating interactive UIs and managing complex backends. His proficiency in both frontend and backend development will help bridge the gap between the user interface and underlying systems. Abdul's expertise in API integration and handling data will be vital for ensuring smooth communication and data flow within the application.

    GitHub Profile: https://github.com/numangit

With this talented team, we have a well-rounded and diverse set of skills to tackle the all aspects of the project. Each team member will play a crucial role in ensuring the project's success, and together, we are committed to delivering a high-quality solution that meets and exceeds expectations.

Some past projects to showcase our team skills:

  1. DVal - Seamless Blockchain-based Solution:

DVal offers a seamless end-to-end solution that leverages blockchain technology to optimize the entire journey from the manufacturer to the end customer. The platform also provides additional after-sales services, such as handling warranty claims. Visit the GitHub repository Github and the live link here to explore further Live Link.

  1. Blockchain-based Decentralised Supply Chain Management System:

This project is a decentralized supply chain management system powered by blockchain. It enhances supply chain operations by ensuring transparency and traceability throughout the process. Discover more on the GitHub repository Github and link Live Link.

  1. Smart Wallet Project

This project is Web3 Blockchain based smart-wallet smart contract deployed through Hardhat development and testing environment. This project is of a smart wallet in which allows its owner to allot certain amount of money(ethers) to spent as a allowance and anyone can deposite any amount of money. Discover more on the GitHUb repository: Github

  1. DevNetwork - a complete social media platform

This prokect a secure full stack social media application with complex backend and no-sql Schema. The authentication and authorization system is JWT based for enhanced security. Discover more on the github repository Github and live Link.

  1. Aurum-Protocol - NFT Lending Borrowing Protocol

Aurum is an over-collateralized NFT Custodial Lending and Borrowing Protocol that allows users to borrow ETH using their NFT as collateral while enabling lenders to earn interest on their deposited ETH by participating in the protocol's lending pool. The github Repository for this project Github and the Live Link

  1. Collaterizing NFTs for Loans and Borrowing:

The Collaterizing NFTs project introduces a novel concept of using valuable NFT assets to secure loans and enable borrowing and lending within the NFT ecosystem. To learn more, visit the GitHub repository Github and Live Link.

These projects showcase our team's expertise in blockchain development, decentralized applications, backend development and innovative solutions that address real-world challenges. Feel free to explore the repositories and live links to see the projects in action!

Together, our highly experienced and innovative team members form a strong technical foundation that can handle a wide range of challenges. We can effectively collaborate, leveraging each other's strengths, to deliver a project that meets and exceeds expectations. Our collective passion for technology and commitment to excellence ensures that we are capable of producing top-tier results for this mission. In conclusion, with our talented team of diverse technical backgrounds, we are confident in our ability to execute this mission successfully and deliver a product of the highest quality.

Please describe your proposed solution based on the above Solution Criteria (if applicable):

Project Discovery Feature:

Viewing a Project's Profile Feature:

Discovering and Voting on Lists Feature:

Architecture and Implementation to Allocate Votes:

CI/CD pipeline for hosting:

Based on the information provided, we have meticulously crafted this schema with careful consideration and brainstorming. However, please note that the finalization of the schema is subject to approval and discussion with the foundation team after more details have been released. The schema can be viewed at this link: Schema

Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each peice of work:

Week 1: August 11th - August 18th

Week 2: August 19th - August 25th

Week 3: August 26th - September 1st

Week 4: September 2nd - September 8th

Week 5: September 9th - September 15th

Week 6: September 16th - September 22nd

Week 7: September 23rd - September 30th

End of September and Start of October: Project Completion

By following this week-by-week plan, both frontend and backend development will progress together, ensuring that all major components of the application are built simultaneously. The plan also includes specific milestones for each page and functionality, allowing for continuous integration and testing to deliver a complete and functional RetroPGF 3 Discovery & Voting application by the end of September. By following this timeline we will have enough time for proper testing and validation.

Please define the critical milestone(s) that should be used to determine whether you’ve executed on this proposal:

The critical milestones that should be used to determine the successful execution of the proposal are as follows:

  1. Completion of Project Discovery Feature (End of Week 3):

    • Backend implementation of the search engine (Apache Solr or Elasticsearch) for project discovery, including search, sorting, and filtering functionalities.
    • Frontend implementation of the project discovery page using React.js and integration with the backend to fetch and display search results.
  2. Viewing Project Profiles Feature (End of Week 4):

    • Backend implementation to fetch project details from the database and integrate with Ethereum Attestation Service (EAS) for social verifications.
    • Frontend implementation of the project profile viewing page using React.js, displaying project details and social verifications.
  3. Discovering and Voting on Lists Feature (End of Week 5):

    • Backend implementation of API routes for badgeholders to create, update, copy, and delete lists, including OP used count functionality.
    • Frontend implementation of the list creation page using React.js, allowing badgeholders to create and manage lists.
  4. Submitting Vote Components (End of Week 6):

    • Backend implementation of API routes for badgeholders to cast and update votes, fetch voting information, and OP used progress.
    • Frontend implementation of the voting components using React.js, enabling badgeholders to cast and update votes.
  5. Integration and Testing (End of Week 7):

    • Successful integration of all frontend and backend components to create a fully working application.
    • Thorough testing to identify and fix any bugs or issues, ensuring a stable application.
  6. CI/CD Pipeline and Deployment (Start of October):

    • Setting up a continuous integration and delivery pipeline for automatic deployment of the application.
    • Successful deployment of the application to production, making it accessible to users.
  7. Final Review and Documentation (Start of October):

    • Validation of the application's functionality through user acceptance testing with the organization.
    • Preparation of documentation and user guides for the application.

A review meeting will be held with end of each timeline to show our progress and assure that these milestones have been completed by us.

Based on the information provided, we have meticulously crafted this schema with careful consideration and brainstorming. However, please note that the finalization of the schema is subject to approval and discussion with the foundation team after more details have been released. The schema can be viewed at this link: Schema

Please list any additional support your team would require to execute this mission (financial, technical, etc.):

We request holding regular bi-weekly or milestone review meetings with the foundation's technical team to ensure transparency and maintain high-quality standards in all our work. Additionally, we kindly request some financial assistance to support the use of highly secured and premium cloud computing resources. This assistance will enable us to maintain the application until March 2024 within a secure computing environment.

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.)

Upfront capital is not an issue. Though we will need financial assistance to leverage premium cloud computing resources to keep the project running till march 2024, properly and in a secured enviroment.


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

JSeiferth commented 1 year ago

Some Q&A 🌞

I wonder if two frontend are selected, how can we sync the ballot result together if badgeholders are voted on different platforms? @Chomtana

A: We will ask badgeholders to only iterate and submit their ballot via one of the frontends. A solution that allows for ballots to be synched across frontends would be nice to have, but we're trying to minimize the scope due to the short timeline.

  • It says badgeholder votes will be private but the lists that contain the votes are public.
    • Does this mean badgeholders choose to publish the list?
  • Is List and a submitted ballot the same thing?
    • Does each submitted ballot automatically become a list or is there extra UI and logic for list management?
  • Can we use EAS to store votes as attestations or are you thinking an internal database for this?
  • Are the projects stored as EAS attestions with pointers to metadata or in a different indexer/data source?
  • Phase 1 and 2 roll-out both say mid-October 2023, is this correct? @carlbarrdahl

A:

Q

1) Will we be tasked with creating a submission form for the projects to apply for being part of the RetroPGF vote? If not, and if the foundation is managing this through a separate website, are there accessible APIs that will allow us to efficiently obtain the relevant data? 2) As for the design of the platform, can we expect that designs will be provided for every page that is meant to be implemented? In case there are pages for which designs are not supplied, would it be acceptable for us to bring our own designer to create these, in order to facilitate the voting process? @Zeptimus

A:

  1. You'll not be tasked with creating the submission form, this is handled by the Foundation/OP-labs. The data will be stored as attestations on EAS with pointers to metadata on IPFS - see "Query project data" in the RFP.
  2. There will be designs for every page. If in the process of fulfilling the RFP we find missing functionality/designs the support of your own designer could be useful.
Chomtana commented 1 year ago

Thank you for your clarification. All of the questions and answers are extremely useful.

charliecf commented 1 year ago

Foundation Mission (RFP) Application


What makes your Alliance best-suited to execute this Mission?

We’ve been working with the OP Foundation and the Optimism community on the Token House voting interface and contract improvements over the last few months and are intimately familiar with the technical requirement and community needs.

Our team has a strong mix technical and product design experience:

Lastly, we have a strong belief in the mission around RetroPGF and therefore want to contribute. We were a recipient of last round’s RetroPGF, we understand the process, the community and the potential economic impact if such a project is successful at scale.

Please describe your proposed solution based on the above Solution Criteria:

As one of the core responsibilities of the Citizen’s House, we believe RetroPGF’s success is a critical piece to building a thriving Optimism ecosystem.

Voting Client

opretrogif

Open Backend Voting API

Agora's OP Retro PGF (2)

Admin Dashboard

All of our code will be open-sourced (as they are already) for the community to build on top, collaborate and continue to improve on together.

Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each piece of work:

Assuming a start date of August 18th, 2023 - 1 week after the selection deadline.

Milestone Delivery Date
Lock in EAS schema and List architecture August 18th, 2023
Design and release API schema September 1st, 2023
Voting API launch September 21st, 2023
Launch discovery of projects, profile & lists** October 6th, 2023
Full launch (full feature list with voting) October 19th, 2023
Monitoring and support Mid-October

We will commit to making improvements, support and feature improvements for subsequent RetroPGFs until March 2024. **See questions on List architecture below

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:

Close collaboration with the project sponsor (@JSeiferth) and Optimism team on design and implementation feedback.

There are certain areas of the spec that still feel a little up in the air and we would need to lock in certain key details in order to make sure we hit the deadline and have a great lunch.

  1. Clarity on the goal and architecture of the Lists feature: we need ensure that badgeholders’ votes are not exposed to third parties looking to lobby next season. If that is not a concern, we would propose that all of the votes go on-chain also. Architecture design and confirmation needed by August 18th, 2023.
  2. Schemas locked down: We will need detailed schemas for CitizenHouse Attestations, RetroPGF projects Attestations and List Architecture locked by August 18th, 2023.

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:

As a small team with no institutional investors reliant mostly on public goods funding, the grant being locked for a year significantly impedes our operations, requiring us to source funding from elsewhere to make payroll on a month to month basis – as well as cover upfront costs like tax. We can scrape by without upfront cash by seeking grants elsewhere, and look into financing, but early liquidity would significantly help our operations.

Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:

Chomtana commented 1 year ago

Foundation Mission (RFP) Application

Please verify that you meet the qualifications for submitting at the above Tier:

Opti.Domains is a grant recipient in season 3, Cycle 11

Grant Update: https://gov.optimism.io/t/ready-gf-phase-1-proposal-opti-domains-interoperable-domain-name-for-the-op-stack/5510/22?u=opti.domains

As clarified by @lavande: “That sounds like Fledging! Receiving and executing on a grant constitutes working with the Collective”

https://gov.optimism.io/t/collective-trust-tiers/5877/10?u=opti.domains

Alliance name: Opnitor Alliance Lead: Chomtana Chanjaraswichai (Opti.domains) Contact info: Chomtana001@gmail.com L2 recipient address: 0x73F4e6132Cd9E4a3945d9CA6E98e5985BBe16d2D

Please list the members of your Alliance and link to any previous work:

Chomtana Chanjaraswichai (Opti.Domains, Alliance Lead)

4 developers below have these experiences in common

Warun Singhal (Developer)

Working as a Blockchain Software Engineer at Finstable co. ltd (01/2022 - Present)

https://ethglobal.com/showcase/scalingtree-zida1

Nattawat Songsom (Developer)

Experience:

Academic work:

Teerawut Saesim (Developer)

Work Experience: Currently working as Software Engineer at Finstable co,. Ltd (10/2022- Present)

Tanakorn Karode (Developer)

Working experience:

Competition:

Academic work:

Ittiwat Whangdee (UX/UI Designer)

Working experience:

Competition:

https://ethglobal.com/showcase/cretodus-fga5u

Petch Luancharoen (UX/UI Designer, Inspex Point of Contact)

What makes your Team best-suited to execute this Mission?

Professional level EAS experience

We have a long experience with EAS from the start. We have developed our Opti.domains smart contract and social verification backend integrated with EAS a few months ago and have developed a good relationship with EAS team in github discussion.

Image

https://optimism-goerli.easscan.org/address/0xf01dd015bc442d872275a79b9cae84a6ff9b2a27

Image

https://optimism-goerli-bedrock.easscan.org/

Image

https://optimism-goerli-bedrock.easscan.org/address/0xf01Dd015Bc442d872275A79b9caE84A6ff9B2A27

We are the first ones who utilize EAS to attest social verification. It's quite complex but we have made it.

image image

Try one yourself at https://town-testnet.opti.domains/

We have published the EAS SDK package for our internal migration process 3 days before the offical launch of EAS SDK.

Proof:

On 4 August, we have finished our migration process to have it compatible with latest EAS (Smart contract and social verification backend) in 3 days which is a very remarkable duration.

Not only EAS SDK but we can also deploy and customize the EAS indexer (https://github.com/ethereum-attestation-service/eas-indexing-service) ourselves. So, it won't be blocking if there are any problems in your EAS indexer because we can host it ourselves.

But in fact, we can use https://optimism.easscan.org/graphql public endpoint for basic attestation query

We also detect errors in the official optimism document regarding EAS and have opened a pull request

https://github.com/ethereum-optimism/community-hub/pull/853

image

This demonstrates our great understanding of EAS at a level that can advise you in the design of schema especially on social verification if you need it. Our intensive experience with EAS that significantly reduces development time and increase the quality of RetroPGF 3 Discovery & Voting development

High-quality and fast development

Our team has developed Videfi in 7 days and has a working decentralized video publishing platform prototype that won ETHGlobal HackFS 2023 ApeCoin — Best Contribution price

image

Core functionalities are working very well despite only 7 days of development.

Start from 11 June

image

Finish on 18 June

image

Live demo: https://bafybeie5exjjebz4rditcbqn7wdjlendhyvdbbkar63afbtvtg6gsjxli4.ipfs.sphn.link/ Github: https://github.com/Videfi/videfi-front ETH Global: https://ethglobal.com/showcase/videfi-nvth7

image

We understand that timeframe is short and our team is specially designed for this. We also select a tech stack that allows us to ship the best quality product in the shortest amount of time.

Experience with grant

We have experience with grants and have simulated the RetroPGF voting process in the previous RetroPGF 2 and a new proposed one. It's clear that RetroPGF 2 voting experience is horrible as badgeholders are required to copy their ballot to deform.

The new process solves this redundancy, however, assigning op for each project is still hard due to the reason explained in the Extra feature: Rubric-based list builder section below.

Please describe your proposed solution based on the above Solution Criteria:

We will strictly follow the wireframes and purpose some very useful features but we will implement them only if we have free time. As @JSeiferth stated, "timelines are pretty tight".

Core functionalities

We will develop core functionalities as listed in the requirements

Wallet connect

Discover Projects

List system

Ballot system

Extra feature: Rubric-based list builder

Note: we will implement this feature only if we have free time

Imagine a badgeholder who is faced with the challenging task of assigning the number of OP token to a project, this decision is influenced by multiple factors. The number of OP allocated to a project must consider various aspects, not only the impact of an individual project but also including the total number of projects and the relative earning of each project.

Assigning correctly in the first pass is nearly impossible, necessitating second, third, and subsequent passes to craft the perfect ballot.

In our opinion, we can utilize the grant council scoring system to assist badgeholders in independently scoring each project based on its impact, separate from other projects. Subsequently, we can employ these scores to calculate a perfect final list. However, it's essential to acknowledge that each badgeholder may possess their own impact evaluation metrics. Thus, we propose allowing badgeholders to design their individual metrics, while providing a base template for each category to ensure consistency.

image

Extra feature: Analytics dashboard

Note: we will implement this feature only after we have launched both two phases.

Analytics dashboard will be a place for Optimism foundation to view overall voting statistics (Need to enter username and password to enter).

Frontend

Framework

We propose employing Gatsby, an advanced, open-source framework that employs React and GraphQL. Gatsby excels at CMS development, aligning perfectly with the project discovery system's requirements. This proficiency is exemplified through an internal scraper that procures project information and images from EAS and IPFS, and subsequently caches it into numerous JSON metadata, images, and markdown files. This process is enabled by the non-overlapping nomination and voting periods in RetroPGF.

image

Among Gatsby's numerous advantages, the extensive plugin ecosystem is noteworthy. In this project, we aim to leverage gatsby-source-filesystem for reading cached markdown files, gatsby-transformer-remark for transforming these markdown files, and gatsby-plugin-sitemap for SEO-optimized sitemap creation.

Gatsby can also execute all operations required on our project discovery page. Gatsby's features are described comprehensively here. However, for the list and ballot systems, we plan to utilize simple API fetching usually done in traditional react development.

image

If real-time dynamic changes to the projects list are required, we will enable our scraper to push the updates to our frontend GitHub repository every time a new project is nominated. This action will trigger the build and deployment pipeline of our Cloudflare Page, ensuring that the latest changes are reflected and available to users within 5 minutes. We may try to use the client route as a fallback if one has entered that page before it was built. It will query our REST API and show the project detail instantly.

This approach facilitates a bifurcated development process for our frontend and EAS and IPFS-related scraper, with each section proceeding independently and in parallel. The frontend will be under the purview of our four developers with proven expertise in rapid, high-quality application development, while the scraper will be the responsibility of Chomtana, a solo developer from Opti.domains, known for pioneering EAS use in their projects and possessing extensive EAS experience.

Image

Deployment

Gatsby compiles into a static site, thereby providing the flexibility to host it on any static site hosting service. We propose using Cloudflare Page, renowned for its 100% Uptime SLA and unlimited bandwidth.

image

With the Cloudflare Pro plan, we have the capacity to build 5000 times per month. In our design, we aim to build slightly more than the total number of nominated projects. Statistically, the total number of projects should not exceed 3000.

(Gatsby cloud is 2 times more expensive and may possibly create unnecessary stack bonding which greatly affects maintainability in the future. Cloudflare offers unlimited bandwidth and unlimited pages while gatsby cloud doesn't and only support 5000 pages. Cloudflare offers global CDN while gatsby cloud is limited to US and EU.)

Database

We plan to leverage MongoDB Atlas serverless along with comprehensive backup mechanisms, ensuring our data is hosted securely and has sufficient capacity for peak-hour demands.

Upon analysis, we found that the RetroPGF 3 listing and ballot systems favor a NoSQL document-based database as follows:

Projects

[
  {
    "name": "yyy",
    "description": "zzz",
    "walletAddress": "0x...",
    "website": "...",
    "teamType": "individual",
    "socials": {
      "twitter": "...",
      "github": "..."
    },
    "members": [
      {
        "walletAddress": "0x..."
      }
    ],
    "coverImage": "ipfs://...",
    "body": "... <Markdown> ..."
  }
]

Public keys

[
  {
    "username": "chom",
    "publicKey": "..."
  },
  {
    "username": "jseiferth",
    "publicKey": "..."
  }
]

A mapping between badgeholders, their ballots

[
  {
    "_id": "...",
    "walletAddress": "...",
    "signature": "...",
    "ballot": {
      "personal": "<Encrypted by badgeholder's personal key>",
      "chom": "<Encrypted by chom's key>",
      "jseiferth": "<Encrypted by JSeiferth's key>"
    }
  }
]

Lists along with owners, impact evaluations, and votes

[
  {
    "_id": "...",
    "walletAddress": "...",
    "signature": "...",
    "name": "...",
    "description": "...",
    "forkedFrom": "<List ID>",
    "list": [
      {
        "projectId": "...",
        "opAssigned": 72000,
        "comment": "",
        "evaluation": {

        }
      }
    ],
    "rubrics": [

    ]
  }
]

Furthermore, as ballot and vote-related elements frequently constitute an object array, NoSQL is the logical choice.

As per @JSeiferth indication, the task of calculating final results falls under the purview of the Optimism Foundation. Therefore, our responsibility lies solely in exporting raw ballot results to the foundation, thereby negating the necessity for relational data.

This strategy considerably reduces development time and cost by avoiding unnecessary complexity.

Backend

Our intent is to create a REST API using the Express.js (with TypeScript) framework. We will implement SIWE for Ethereum wallet sign-ins, Passport for social logins (if necessary), and Mongoose for MongoDB database communication. While GET endpoints will be publicly accessible, submission endpoints will be safeguarded through cookie-based UI restriction for security reasons. Having successfully integrated these elements in our Opti.domains project, we can assert the feasibility of swift development.

Project Discovery API

Our scraper will harvest project information from EAS and IPFS, cache it into multiple JSON metadata and markdown files, and subsequently serve these files through our REST API. This negates the need for reliance on the RPC server, IPFS, or EAS for stability or limitation concerns.

Having many people querying RPC or IPFS servers simultaneously will easily hit the rate limit of these providers and the UI will down. That's why we cache them.

The JSON metadata and markdown files will also be hosted in our open-source GitHub repository, enabling external developers or data analysts to immediately commence analysis without API data fetch requirements.

Voting and Listing API

Our Voting API is configured to feature REST API endpoints, querying lists, and individual ballots by wallet address and a given password. The Optimism Foundation team can retrieve all ballots by providing their username and password.

List and ballot submissions will be managed securely, with cookie-based authentication from the official frontend to prevent unauthorized submissions. Badgeholders will be prompted to enter their password for each ballot submission or update, thereby encrypting the data, ensuring accessibility only to the Optimism Foundation, excluding even the development team.

Shared infrastructure can also be made possible by having both sides open some kind of endpoint with each party holding a special token or private key.

EAS and IPFS scraper

EAS and IPFS scraper constantly poll nominated project attestation from EAS and then fetch contents and images from IPFS. This data is saved to two places: MongoDB and cached to Gatsby content. MongoDB is used to serve uncached content while Gatsby pages built with Cloudflare page will serve cached content.

Image

Deployment

For backend API deployment, we propose utilizing AWS Fargate, a highly reliable PaaS solution from AWS that facilitates container management and auto-scaling. For optimization, we will consult an AWS expert.

image

Our EAS and IPFS scraper will be deployed to AWS EC2 because we require regular updates to our Git repositories. To ensure safety in case of any emergency situation, the EC2 image will be snapshotted. The scraper will be executed by a cron job event that runs every minute, ensuring timely and automated data collection.

image

Ballot data encryption

Encrypting ballot data in a way that it cannot be viewed by the development team involves using end-to-end encryption (E2EE). This method ensures that only authorized parties (in this case, the badgeholder and the Optimism Foundation) can decrypt and access the data. Here's a general outline of the process:

When a badgeholder submits a ballot, the application uses the public key of the Optimism Foundation to encrypt the data. The encryption process transforms the data into a format that can only be reverted to its original state (decrypted) using the corresponding private key. Each party will have separated encryption using a separate key.

Once encrypted, the ballot data is safely stored in our MongoDB database. The encrypted data, also known as ciphertext, is meaningless and unreadable to anyone intercepting it, including the development team.

This process ensures the confidentiality and security of the ballot data. It's important to note that the private key must be stored securely and never shared, as possession of this key allows for the decryption of the data. Therefore, the development team, lacking this private key, cannot access the raw ballot data, ensuring its privacy and integrity.

Our encryption mechanism can decrypt with one key so that the risk of losing the key will be minimal.

Image

In the case that the Optimism Foundation team chooses not to hold the private keys, you can place your trust in us to hold them instead. We can discussion about who the key holders should be.

Audit, Bug Hunting and Feedback Competition

Chomtana, our Alliance lead, has a rich background with Code4rena, a reputable decentralized audit provider. Leveraging a competitive approach, Code4rena enhances the auditing process's efficiency. Chomtana has also partaken in Code4rena's inaugural UI bug-hunting competition.

With this knowledge and experience, we plan to conduct audits and bug-hunting competitions for our RetroPGF 3 project discovery and voting system. This strategy will ensure the delivery of a superior product, free from bugs and security vulnerabilities.

Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each peice of work:

We champion the agile methodology in product development due to the potential uncertainty of initial requirements. Feedback from project sponsor @JSeiferth, the Optimism team, and Badgeholders is instrumental in refining these requirements, thus aligning our product to optimally meet user needs.

To mitigate potential development delays due to unforeseen complications like an unfinalized EAS Schema or EAS bugs, we will develop the EAS and IPFS-related components in parallel with frontend development.

We will deploy our live development endpoints from the project start and open source our repositories

Image

Project Implementation Specification, Design Approach, and Architecture

We have organized our teams into two distinct units: the Front & Back team, and the EAS team. These teams will operate concurrently to ensure expedient completion of the development tasks.

We are pleased to report that a significant portion of these tasks have already been completed.

Team Front & Back: Sprint 1: Frontend Hackathon

Development: 12 - 21 August 2023 Review: 22 - 25 August 2023

In this phase, our team will develop the frontend for both the 'Project Discovery' and the 'Voting UI' functionalities using mock-up data. This approach ensures no backend or scraper feature interactions are required at this stage.

Team Front & Back: Sprint 2: Backend Integration

Development: 26 August - 11 September 2023 Review: 12 - 15 September 2023

The second sprint will be dedicated to the development of backend API, database, and integration of the backend systems with the already developed frontend.

Team EAS: Sprint 1: Discuss EAS Schema with OP Team

12 - 21 August 2023

At this juncture, we have not yet received the necessary information about the EAS schema and their social verification schema from the OP team. To address this potential bottleneck, we have split our operations into two independent teams working in parallel. We anticipate receiving this information by the review phase of sprint 1.

Team EAS: Sprint 2: Development of EAS and IPFS Scraper

Development: 22 August 2023 - 11 September 2023 Review: 12 - 15 September 2023

This phase will involve the development of the EAS and the IPFS scraper. The latter is a cron job scheduled to run every minute. Its tasks include querying the EAS attestation, fetching content and images from IPFS, and transferring these assets to their respective repositories. This action will subsequently trigger the deployment pipeline.

Sprint 3: Testing, Bug Fixes and Additional Features

12 - 20 September 2023

Utilizing the feedback provided by the Optimism team, we will seek to improve our product through rigorous testing and bug fixing.

Should time allow, we will also undertake the development of an extra feature: the Rubric-based list builder.

Sprint 4: Project Discovery to Production

20 - 30 September 2023 (Must work together with Optimism Foundation and specialists from AWS and MongoDB if possible)

We will deploy a 'Project Discovery' only version to the production.

We will also deploy our 'Voting System' to UAT and perform load testing on our system.

Sprint 5: Audit, Bug Hunting and Feedback Competition

(Use UAT Environment)

23 September - 2 October 2023

We intend to conduct an audit, bug hunting and a feedback competition, with an open invitation to all, particularly badge holders, to participate. This endeavor aims to ensure an impeccable voting UI.

We commit to promptly addressing and rectifying any bugs reported during this phase.

Sprint 6: Production, Maintenance, and Support

Sprint 6.1: Deploy Voting UI to production

2 - 6 October 2023 but can be postponed up to foundation decision on voting launch date.

Our 'Project Discovery' and 'Voting System' will be deployed to production during this sprint.

Sprint 6.2: Maintenance, and Support

After voting UI launch

We will provide active maintenance via a robust alerting and monitoring system and offer support through our discord channel.

Provided we have adequate time, we may develop an additional extra feature: an Analytics Dashboard.

Sprint 7: Export Ballot Data and Long-Term Maintenance

After voting finish

During the final sprint, we will either export the ballot data or allow the Optimism Foundation, who hold the private key, to export the ballot data for the final RetroPGF 3 result.

We commit to providing long-term maintenance as stipulated in the project requirements.

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.):

We need to keep in touch with the Optimism team especially @JSeiferth, the project sponsor in our agile review phase.

It would be great if we can get feedback from badgeholders especially on our agile review phase.

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:

Upfront Capital is not a barrier

Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:

-- end of application --

owocki commented 1 year ago

Supermodular Foundation Mission Application

Team members

Previous Work

We are the team behind Supermodular, the venture studio that launched Gitcoin. We are focused on doing lean 0 to 1 build outs in the regen ecosystem.

A few other things we’ve built:

What makes your Alliance best-suited to execute this Mission?

We have deep & broad experience in web3 development and have built projects with similarities in these requirements (voting, dynamic forms, signatures). We're one of the only teams that has deployed web3 public goods funding software at the scale that Optimism RPGF requires ($50m of volume per https://impact.gitcoin.co/ + $10mm+ in RPGF via Optimism )

We also have previous knowledge of EAS with which we built:

Additionally, we are deeply seated in the regen web3 ecosystem, having produced 150 podcast episodes on regen web3 and been involved in the production of several schelling point conferences.

Lastly, Did you know that Optimism and Gitcoin go way back? In the 2019 bear market, we received a grant from OP founders Jing/Karl's previous venture (plasma group), and we were kept alive by it. We <3 Optimism!

Please describe your proposed solution based on the above Solution Criteria (if applicable):

We build everything in public so progress can be followed on GitHub and the latest deployed build.

The choices of libraries and frameworks we use are based on:

Suggested tech stack:

Frontend

The frontend will query EAS Graph for projects using ReactQuery. Filters, sorting, and pagination will determine the query key so navigation and changes are swiftly updated correctly. IPFS is queried for additional data such as meta or application data. ReactQuery caches the responses based on query keys making it efficiant and only perform network requests when necessary.

The badgeholders can add projects to their voting list similar to a shopping cart. This is their voting scratchpad where they can allocate votes for each project. They can easily navigate between the input fields and see immediate feedback of the total tally. Badgeholders can share this list with others.

Wagmi is used to connect the badgeholders' wallet and to sign the voting ballot before sending it to the backend.

Backend

The backend receives the submitted ballot with the votes and a signed message. This signature is verified to make sure the badgeholder did in fact submit the ballot and ensure the authenticity.

The backend also stores the votes and lists, either as EAS attestations or in a private database in accordance to the requirements and user stories.

If it makes sense for this project, the backend will also handle user sessions with SIWE (Sign in with Ethereum). This way the user can sign a message to create a JWT session that is used to authenticate the user when submitting ballots and creating lists and submitting ballots. This also ensures the badgeholder can only vote once.

Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each piece of work:

  1. Specification (1 week)
    • Read and understand provided user stories and designs
    • Define folder structure, components.
  2. Set up project (1 day)
    • Create codebase
    • GitHub repo
    • Vercel deployment
  3. Discover Projects (1 week)
    • Implement basic layout from provided designs
    • Fetch projects from supplied data source using React Query (filter, sorting, pagination)
    • Render each project based on selected view (grid or list)
    • Fetch project metadata from ipfs
    • Add/Remove to Voting List button
    • Implement tags filter, sorting, pagination
    • Implement designs and add empty, loading, and error states
  4. Project Profile (1 week)
    • Implement basic layout from provided designs
    • Render project profile with metadata and application data
    • Add/Remove to Voting List button
    • Implement designs and loading skeletons
  5. Discover List & voting on Lists (2 weeks)
    • Implement basic layout from provided designs
    • Fetch lists from supplied data source
    • Render each list
    • Fetch additional metadata if needed
    • Add list to ballot
    • Edit distribution
    • Implement designs and add empty, loading, and error states
  6. Vote allocation and ballot submission (2 week)
    • Implement basic layout from provided designs
    • Build Vote allocation form
    • Implement filter and sorting
    • Calculate tally
    • Sign message
    • Send ballot and signature to backend
    • Implement designs and add empty, loading, and error states
  7. Backend (1 week)
    • API endpoint to receive ballot and a signature
    • Verify signature
    • Store ballot in database
    • Create, update and read lists
    • Create attestations if necessary
  8. Testing & QA (1 week)
    • Testing and bugfixing
    • Deployment to production
    • Add optimism.io domain
Milestone Done by
Specification 2023-08-20
Set up project & deployment 2023-08-20
Discover Projects 2023-09-03
Project Profile 2023-09-10
Discover List & voting on Lists 2023-09-17
Vote allocation and ballot submission 2023-09-24
Backend 2023-09-24
Testing & QA 2023-10-01

Some of these milestones are done in parallel, for example ballot submission and backend as well as testing & QA which will run throughout the project.

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.):

Check-ins every other week to do demos/get feedback.

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:

We do not need upfront capital to do this.


Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:

Zeptimus commented 1 year ago

Hey @JSeiferth,

What is the expected timeline for Applications for projects opening, Applications for projects closing, and voting beginning, and voting ending.

I understand the dates are not exactly predictable, but to have a great proposal, we would love at least a relative timeline, noting that it may change if need be.

DanieleSalatti commented 1 year ago

General Magic Foundation Mission (RFP) Application

Team members

What makes your Alliance best-suited to execute this Mission?

Our Alliance is uniquely positioned to execute this mission due to our extensive experience and proven track record.

We are excited to apply our unique experience to become a part of one of the most important Public Goods experiments in web3.

Please describe your proposed solution based on the above Solution Criteria (if applicable)

We have deeply reviewed the solution criteria and want to include an optional feature set on top of the Solution Criteria to address some of the conclusions put forth in this fantastic article: RetroPGF2 Learnings & Reflections.

“Going forward, categories may also be used as a form of high-leverage voting, where a voter who doesn’t have expertise in a particular area could allocate funding to the overall category, which is then distributed pro-rata with other badgeholders’ votes. Overall, this is a dimension worthy of further exploration.”

“The most consistent feedback from badgeholders during the evaluation process was around the overwhelming quantity of projects to review.”

“Most [Badgeholders] tended to distribute their votes among 20-40 projects, with the median badgeholder allocating their votes among 30 projects.”

In our proposed solution, we aim to enhance the existing workflow by introducing a strong categorization system, leveraging the list feature to create distinct “categories”. These categories are intended to be static lists of 30-60 projects, which voters will use to choose an OP amount for each project. Our vision is to streamline the discovery process, enabling voters to focus on categories aligned with their expertise, thus making the process of decision-making more efficient and accessible. Moreover, this approach provides an option for voters to incorporate the expertise of the citizens they trust in areas beyond their knowledge.

To realize this vision, we are committed to creating an open, transparent process to classify the projects. We'll engage projects to collect additional data, publicly share all collected data, conduct community reviews of our categorizations, and actively collaborate with the Pairwise team to integrate with their application. Our focus on strong project categorization, combined with the effective integration of technology and community engagement, aims to enhance the overall user experience and the efficacy of the voting process but, most importantly, it is an optional, experimental flow that will not be required for the use of the application.

To break down the above further:

Categorization of Projects into “Categories”:

Integration with Pairwise:

Forking, Editing and Iterating on Lists:

Public or Private Submission of Lists:

Vote Delegation with Category Percentages:

Community Feedback:

Admin view:

Technical Overview:

In summary, our solution aims to incorporate even more of the learnings from RetroPGF to streamline the discovery and voting process. This will make voting intuitive, flexible, and more representative of the collective expertise of the citizens, improving the overall voting experience while still maintaining the desired workflow outlined in the solution criteria.

Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each piece of work

There are two distinct lines of work, the technical work and the categorization work

Technical work:

Categorization work:

Please define the critical milestone(s) that should be used to determine whether you’ve executed on this proposal

Here are the critical milestones that should be used to determine whether we've executed on this proposal:

Milestone 1: Specification Completion

Milestone 2: Development of Core Features

Milestone 3: Testing and Quality Assurance Completion

Milestone 4: Launch of Project Discovery Feature

Milestone 5: Launch of Voting Feature

Milestone 6: Maintenance and Support

Please list any additional support your team would require to execute this mission (financial, technical, etc.)


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.)

Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:

I understand that I will be expected to follow the public grant reporting requirements outlined here ✔️

e1Ru1o commented 1 year ago

Foundation Mission (RFP) Application

We work with ecosystem leaders, including Starkware, Lido, Obol, EigenLayer, Aave, and Flashbots.

What makes your Alliance best suited to execute this Mission?

Please describe your proposed solution based on the above Solution Criteria (if applicable):

Technology Stack

  1. Frontend:
    • Next.js for client/server-side rendering to handle extensive data.
    • React app with ChakraUI to leverage ready-made UI components that support all responsive designs by default for fast, high-quality delivery.
  2. Backend:
    • Use Elasticsearch to filter the data collected.
    • Passport package for user authentication.
    • PostgreSQL database since we have well-defined needs and schemas.
    • AWS for hosting the platform.

Solution

The solution will mainly follow the provided specifications outlined in the RFP. Some specifics about our solution are as follows:

Authentication / Authorization:

Please outline your step-by-step plan to execute this Mission, including expected deadlines to complete each piece of work:

Time Plan
Week 1 Gather schemas & Indexer from Optimism and any extra details needed. Set up repositories, users authentication, design DB schema and connections required.
Week 2 Fetch projects & Lists data from EAS & IPFS. Write functionalities for querying data from the provided indexers. Elastic search features.
Week 3 & 4 Start with a React app for listing projects and list, and apply filters on them. CI/CD & Hosting Configuration.
Week 5 & 6 Add badgeholders voting functionalities to the app & connect with the database.
Week 7 Testing, Documentation, QA, Security review.
Week 8 MVP run with the Optimism team.

Delivery & continuous support is going to be provided as needed / requested during the RetroPGF round 3. We will request to create a dedicated support channel in the Optimism discord for badgeholders and community members using our application.

Please define the critical milestone(s) that should be used to determine whether you’ve executed on this proposal:

  1. Displaying and filtering Projects & Lists on the app.
  2. Voting functionality.
  3. Production-ready version & live app.
  4. Documentation.
  5. Reflection and communication on badgeholder feedback.

Please list any additional support your team would require to execute this mission (financial, technical, etc.):

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.)

This would not be a barrier to us completing the mission.

Please check the following to make sure you understand the terms of the Optimism Foundation RFP program:

JSeiferth commented 1 year ago

Submissions for this RFP are now closed. Thanks to everyone who submitted a proposal! You can find user stories and designs for the application linked. Note that these are not final.

Someone from the Optimism Foundation will reach out on or shortly after Aug 11 to communicate which proposal(s) have been accepted and schedule a kickoff.

In the meantime, feel free to tag me here or reach out directly (jonas@optimism.io) with any questions.

🚀

Chomtana commented 1 year ago

We have looked into your user stories and designs

I have seen that it's missing create, update, and delete list features. Where do lists come from?

Anything else looks good on our side.

===================================

We have seen an attestation schema closely related to the RetroPGF project

https://optimism-goerli-bedrock.easscan.org/schema/view/0xbb6c51e8228c22b994ac1a4e207ba099b6d05787b37b5a9ad19d0085efc2ce08

Image

Don't sure if this schema is the one for the project discovery system

However, if this kind of schema is open to all we may experience spam (Attest random info) that affects the project discovery feature. We have a great idea for this problem if we get selected.

We have used EAS GraphQL to snapshot our Opti.domains OG role. This trick can be used in our EAS and IPFS scraper in the project discovery system.

Image

GriffGreen commented 1 year ago

GM! We reviewed the designs and user stories, and they are fantastic! In fact, they fit perfectly with the General Magic proposal.

Our proposal adds the feature of categories to the application. It might sound like a deviation from the proposed work flow, but actually it is only a few small additions and one extra page to add incredible UX to the RetroPGF voting experience.

In this figma you can see the small changes that we would add to make this happen:

https://www.figma.com/file/ps9GcjKUznhys1327Y3n9u/RetroPGF-Voting-with-Categories?type=design&node-id=0%3A1&mode=design&t=h5BRD9ez6Ndlksb0-1

And in this video (click the link below) I walk through the figma to explain these changes. https://www.youtube.com/watch?v=YoXlB0-kAzs

Alt text

In the end, the designs really don't have to change in any material way, and the category feature can be completely ignored if desired, so that the proposed workflow is maintained. However I think the category feature, along side the forking of lists, will enable experts to really dig deep into the categories they know best and delegate to the experts they trust to judge other categories.

Thank you for your consideration!

JSeiferth commented 1 year ago

Hi all – thanks for the excellent submissions and discussion! 🌞

The Optimism Foundation has selected Agora’s and Supermodular’s proposals to move forward with the work described in this RFP. That said, we're really excited about the amount of interest and expertise from everyone here!

To all the other teams that applied, we'd love to help you find the right way to contribute to the Optimism Collective! There are a couple of avenues to contribute to RetroPGF specifically:

And stay tuned for more RFPs & Ecosystem Project Ideas to be posted in the next few months. Thank you again for your proposal!

yitongzhang commented 1 year ago

Thanks @JSeiferth for the update! It's been amazing to see some many incredible proposals, and we're very to have been chosen to work on this RFP. As with our other work, we'll be sharing progress on milestones in this thread on the following dates.

Milestone Delivery Date
Lock in EAS schema and List architecture August 18th, 2023
Design and release API schema September 1st, 2023
Voting API launch September 21st, 2023
Launch discovery of projects, profile & lists October 6th, 2023
Full launch (full feature list with voting) October 19th, 2023
Monitoring and support Mid-October
carlbarrdahl commented 1 year ago

Hey everyone, Excited to be part of this project! :rocket:

We have created a repo and set up deployment so you can follow our progress. https://github.com/supermodularxyz/OP-RetroPGF https://retro-pgf.vercel.app

yitongzhang commented 1 year ago

Hey everyone,

Just wanted to give a quick progress update here. Last week, Jonas helped lock in the EAS schemas, and we've started working with @carlbarrdahl and the Supermodular team to align on the API design. We're on track and expecting to release the API Schema around Sept 1st.

Milestone Delivery Date Status
Lock in EAS schema and List architecture August 18th, 2023
Design and release API schema September 1st, 2023  
Voting API launch September 21st, 2023  
Launch discovery of projects, profile & lists** October 6th, 2023  
Full launch (full feature list with voting) October 19th, 2023  
Monitoring and support Mid-October  
yitongzhang commented 1 year ago

Hey everyone,

Chiming in with an update on our second milestone: we're sharing our API schema with the public here:

https://argoagora.notion.site/Retro-PGF-API-Spec-49912c0587844fef98a72e6251130618?pvs=4

Milestone Delivery Date Status
Lock in EAS schema and List architecture August 18th, 2023
Design and release API schema September 1st, 2023  ✅
Voting API launch September 21st, 2023  
Launch discovery of projects, profile & lists** October 6th, 2023  
Full launch (full feature list with voting) October 19th, 2023  
Monitoring and support Mid-October  
yitongzhang commented 1 year ago

Hey folks, just chiming in here with a milestone update. We just shipped the voting API today. It's still in dev as we work through some kinks with the Supermodular team, who will be developing their frontend with this API. If you happen to poke around and find issues, please flag them to @stepandel or me .

Milestone Delivery Date Status
Lock in EAS schema and List architecture August 18th, 2023
Design and release API schema September 1st, 2023
Voting API launch September 21st, 2023  ✅
Launch discovery of projects, profile & lists** October 6th, 2023  
Full launch (full feature list with voting) October 19th, 2023  
Monitoring and support Mid-October  

Coming up next: Launch EAS indexer API for projects and lists up on Sep 29 Launch discovery of projects, profile & lists on Oct 6

Links here:

Dev endpoint API Docs Github repo

yitongzhang commented 1 year ago

Hey folks, just chiming in here with a milestone update. We just shipped the Frontend for the discovery of projects, profile & lists. It's still a little rough around the edges, but will get rapidly tuned up over the next few days

CleanShot 2023-10-06 at 16 55 03@2x CleanShot 2023-10-06 at 16 54 52@2x CleanShot 2023-10-06 at 16 54 47@2x CleanShot 2023-10-06 at 16 54 40@2x
Milestone Delivery Date Status
Lock in EAS schema and List architecture August 18th, 2023
Design and release API schema September 1st, 2023
Voting API launch September 21st, 2023
Launch discovery of projects, profile & lists October 6th, 2023
Full launch (full feature list with voting) October 19th, 2023  
Monitoring and support Mid-October  

Coming up next: Expecting lots of polish work as well as the full launch of the application early next week!

Links here:

See the frontend on dev

Chomtana commented 1 year ago

Hi, @yitongzhang can I use your GraphQL API to query RetroPGF3 projects?

carlbarrdahl commented 1 year ago

Here's an update. The UI is done and we're currently working on implementing the Agora backend. screenshot

Milestone Done by Status
Specification 2023-08-20
Set up project & deployment 2023-08-20
Discover Projects 2023-09-03
Project Profile 2023-09-10
Discover List & voting on Lists 2023-09-17
Vote allocation and ballot submission 2023-09-24
Backend 2023-09-24
Testing & QA 2023-10-01

You can try it out here: https://retro-pgf-staging.vercel.app

stepandel commented 1 year ago

Hi, @yitongzhang can I use your GraphQL API to query RetroPGF3 projects?

hey @Chomtana, yes you can! It's not in prod yet, but you can use our dev endpoint by now: https://optimism-agora-dev.agora-dev.workers.dev/graphql

Projects, lists and badgeholders are under retroPGF schema

yitongzhang commented 1 year ago

Hey folks, just chiming in here to say that we're working closely with the foundation on the final launch milestone. We've partially launched the relevant features for this stage of RPGF, and have the rest in a dev environment for testing with select badgeholders, and will launch upon the Foundation's go-ahead.

We consider these final milestone to be as complete as can be, and will come mark them as full complete after the conclusion of this round's voting.

Milestone Delivery Date Status
Lock in EAS schema and List architecture August 18th, 2023
Design and release API schema September 1st, 2023
Voting API launch September 21st, 2023
Launch discovery of projects, profile & lists October 6th, 2023
Full launch (full feature list with voting) October 19th, 2023  ⏳
Monitoring and support Mid-October  ⏳
JSeiferth commented 10 months ago

This RFP has been completed! ✨