Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Foundation Mission Request: RetroPGF List Creation UI #106

Closed
5 tasks
bdresser opened this issue Aug 14, 2023 · 18 comments
Closed
5 tasks

Foundation Mission Request: RetroPGF List Creation UI #106

bdresser opened this issue Aug 14, 2023 · 18 comments
Labels
Foundation Mission Request A request for proposals for a specific work item. Intent: Governance Accessibility

Comments

@bdresser
Copy link
Collaborator

bdresser commented Aug 14, 2023

Foundation Mission Request – RetroPGF List Creation UI

  • Proposed Foundation Mission (RFP): RetroPGF List Creation UI
  • S4 Intent: Governance Accessibility
  • Proposal Tier: Ember
  • Baseline grant amount: 20k OP
  • Should this Foundation Mission be fulfilled by one or multiple Alliances: One
  • OP Labs or Optimism Foundation Sponsor: Jonas (gh: @JSeiferth, TG/Discord: @jonassft)
  • Submit by: September 4th, 2023
  • Selection by: September 11th, 2023

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.

This mission will create an application that allows badgeholders (voters in RetroPGF) to create Lists, a new tool for vote sharing and by doing so contribute to a more accurate evaluation of projects and the overall success of RetroPGF 3.

What are Lists?

  • A List contains a set of projects chosen from the total set of RetroPGF applicants together with a suggested OP allocation for each project.
  • Each List should reference some methodology for allocating OP to each project based on the creators expertise and evaluation of relevant data.
  • Only badgeholders are allowed to create Lists.
  • Lists will facilitate context sharing among badgeholders, and enable badgeholders to easily leverage each other's proposed votes.

In the previous round of RetroPGF, badgeholders started sharing their proposed votes to learn from each other's expertise in different areas. In round 3, we’re introducing Lists as a more powerful tool to facilitate that sharing of context, and enable badgeholders to easily leverage each other's proposed votes.

The RetroPGF Voting application will allow badgeholders to discover, view and interact with Lists (see screenshot of designs below). This mission will enable badgeholders to create the Lists that are surfaced in the RetroPGF Voting application.

How Lists are presented to users

259787144-77d40359-e219-4a4d-800d-874186661167

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

Completing this Mission requires:

  • Outlining your proposed solution to allow badgeholders to create Lists
  • Building a frontend that enables badgeholders to create Lists by leveraging EAS for onchain attestations and posting metadata on IPFS. The frontend should be fully open-source and should allow for future iterations of the functionality.
  • Hosting and managing the application infrastructure while RetroPGF 3 is ongoing.

Core functionality of the application
Enable badgeholders to create Lists, the following steps are core to this user journey:

  • Input relevant metadata of a List (Name, description, impact evaluation description, impact evaluation link)
  • Filling in the contents of a List by choosing projects and inputting how much OP each project should receive
  • Posting the List onchain via EAS and associated metadata
  • View created Lists

Relevant checks will need to applied to the creation of Lists, such as char limits and other limitations (e.g. the OP allocated among projects can't exceed the total round OP allocation.)

Technical Architecture and implementation

  • Query project data: Ethereum Attestation Service (EAS) is used to query existing onchain information relating to entities and their RetroPGF 3 application (e.g. projects). This will be relevant to display project names and profile pictures, as well as referencing projects in List attestations. Relevant schema information and indexer will be provided once the proposal has been accepted.
  • Posting Lists: Ethereum Attestation Service (EAS) is used to post the contents of a List onchain and reference the relevant metadata. Relevant schema information and indexer will be provided once the proposal has been accepted.
  • The application should be live and usable by Oct 14th 2023, you will host the application yourself and maintain it until March 2024.
  • Everything that you build should be open-source under MIT license and should allow for future iterations of the functionality.

You can find the EAS & Metadata schema for Lists here

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

  1. Specification for implementation, design approach, and architecture
  2. Open-source code repository to observe progress over time
  3. Launch of the application

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

  • Number of Lists created via the application
  • Qualitative feedback on the List creation experience by badgeholders

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

  • [...]
  • [...]

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
  • 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 --

@Chomtana
Copy link

Chomtana commented Aug 14, 2023

Hi, @JSeiferth your image is inaccessible again

image

@bdresser
Copy link
Collaborator Author

@Chomtana updated, try now

@Chomtana
Copy link

@JSeiferth @bdresser

Only badgeholders are allowed to create Lists.

Shouldn't lists be created by anybody to crowdsourcing communities to help badgeholders?

@JSeiferth
Copy link
Member

JSeiferth commented Aug 21, 2023

@JSeiferth @bdresser

Only badgeholders are allowed to create Lists.

Shouldn't lists be created by anybody to crowdsourcing communities to help badgeholders?

@Chomtana If anyone could create Lists that might result in hundreds of Lists being creating and a curation problem. To avoid this problem, and keep things simple, only badgeholders will be able to create Lists in RetroPGF 3.

@luizakp
Copy link

luizakp commented Aug 22, 2023

Hi, @JSeiferth
I have some questions about this RFP

  • Are "Edit distribution" from the screenshot and delete list included in this RFP scope?
    • If so, does edit distribution means only changing the OP allocation of the already set projects or also adding and removing projects?
  • On the screenshot, it’s shown the address of who created the list. But can the badgeholder choose if they want to show their address or not?
  • On the same note, the Lists are not the actual votes from the list creator as replied here. Can a badgeholder create multiple lists or just one per badgeholder?
  • Lastly, it seems like this RFP is a blocker to Foundation Mission Request: RetroPGF 3 Discovery & Voting #104 Phase 2. This means we should have close communication with both selected teams from that RFP to align all the 3 teams' delivery dates, correct?

@JSeiferth
Copy link
Member

Hey @luizakp!
Just to flag that the Discovery & Voting application will allow badgeholders to discover, view and interact with Lists. This mission will enable badgeholders to create the Lists that are then surfaced in the RetroPGF Voting application.

  • No, the screenshots shared are from the discovery & voting application and are not in scope of this RFP
  • Badgeholders can not choose if their address is shared, they'll be public by default
  • Each badgeholder can create up to 5 lists
  • Correct, this RFP is required for RetroPGF voting to start. Fulfilling this RFP should not require much coordination with both teams building the Discovery & Voting application, as both components function independently.

You can find the EAS & Metadata schema for Lists here

@marianoclaveria
Copy link

@JSeiferth is this RFP still open ? Can we still propose our solution? Thanks

@owocki
Copy link

owocki commented Aug 24, 2023

RetroPGF Voting Lists Supermodular Foundation Mission Application

  • Team Lead: Kevin Owocki
  • Contact info: [email protected] | Owocki#1337
  • L2 recipient address: 0x00De4B13153673BCAE2616b67bf822500d325Fc3

Team members

  • Kevin Owocki - Community Lead
  • Carl Barrdahl - Engineering Lead
  • Octavian Todirut - Design Lead
  • Cristina Lare - Front End Engineer
  • Carey Murdock - Ops & Admin

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 are already building the Discovery & Voting for RetroPGF it would make sense to create the lists in the same app.

We're already building much of what is required in this RFP:

  • Query Projects
  • Project search
  • Allocation Form (how much OP for each project)
  • View Lists

We have already made good progress in the RFP and will have much of the functionality in place by September 17th.

You can check our progress here:
https://retro-pgf.vercel.app
https://github.com/supermodularxyz/OP-RetroPGF

Read more about why we are a great fit for this project:
#104 (comment)

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

Frontend

We will have much of the frontend in place:

  • Connect wallet
  • Client-side verification of badgeholders
  • View Lists

A Create List page will be created and a link placed either in the Links page or in the navbar (possibly both).

The Create List page looks similar to View List page but with input fields to enter the list data.

A search input allows the user to search for projects and add to the Allocation form. Searching for projects is already implemented as part of the Discovery & Voting. The allocation form is similar to the Edit Distribution and Ballot Review in RetroPGF Discovery & Voting. Thus the badgeholders are familiar with the UI.

Once the form has been filled out the badgeholder click Save List button and signs a message in the wallet. When the list has been created the user is shown a success message.

Backend

The backend receives the created list and the signed message. This signature is verified to make sure the badgeholder did in fact create the list and ensure the authenticity.

The backend uploads the list data to IPFS and creates an EAS Attestation.

OpenZeppelin Relayer is used to pay for the gas for creating the attestations. This gives us some benefits:

  • Badgeholder doesn't need to pay gas
  • Better security because we don't expose the wallet private key
  • A dashboard where we can see the balance and email notifications if funds drop below 0.1 ETH

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

  1. Implement Create List page with form
    • Inputs for name, description, impact evaluation description & link
    • Allocation form (we're already building this)
    • Input to search for projects (we're already building this)
  2. Create backend endpoint
    • API endpoint to receive list and a signature
    • Verify signature
    • Upload list data to IPFS
    • Create attestation
  3. Testing & QA
Milestone Done by
Specification 2023-09-20
Create List page 2023-09-24
Backend 2023-10-01
Testing & QA 2023-10-08

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

  • We will have a specification for implementation, design approach, and architecture by 24 September
  • We will have an open-source code repository to observe progress over time (already done)
  • We will launch the application on 08 October

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:

[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

@luizakp
Copy link

luizakp commented Aug 24, 2023

Hey, @JSeiferth this is a PoC I've worked on to make sure I understand the concept. It would help a lot to get your input! Thanks

https://www.loom.com/share/e9d56af1b5564b9292730bdee4a278f5?sid=5b066757-4504-4edc-9e13-7ddd490d6792

@Chomtana
Copy link

@JSeiferth proposal submission has been extended to September 4th right?

@Zeptimus
Copy link

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

  • Alliance Lead: Freshelle

  • Contact info: Zeptimus will handle comms: @zeptimusq (Telegram)

  • L2 recipient address: 0xc8d65e1bd67f16522e3117b980e1c9d2caeb9dc3 (generalmagic.eth)

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

  • @pourcheriki - Developer. More info: Github Lead Front-End Developer at Giveth. Cherik has been leading the front-end design on a variety of products and features in the Giveth Galaxy for the last 2 years.

  • @markoprljic - Design lead. Head of Design and Business Developer at General Magic. “Magic Marko” is a top notch designer and has been practicing his art on web2 and web3 projects for over a decade.

  • @mhmdksh - Devops. He's managing servers and working with devst to enhance processes, and automate deployment procedures.

  • @ZeptimusQ - Comms. Transparency and accountability advocate. A passionate representative focused on decentralized governance.

  • @thegrifft - Advisor. Co-founder of Giveth, Commons Stack, General Magic, Dappnode. Optimism Steward.

  • @moe_nick - Advisor. Products & Fintech Enthusiast. PM for https://giveth.io, also PMing the Pairwise project ex-MyDigipay, ex-Tadbirpardaz, ex- Finnotech

  • We will be collaborating with various members of the Pairwise team as needed. Their expertise and insights will be invaluable in ensuring the success and efficiency of our proposed solution.

Read more about Alliances here


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.

  • Years of Web3 Public Goods Experience: We have designed and developed Giveth, the longest running donation platform in the web3 space. Giveth has been fostering community and facilitating donations for public goods since 2018 and its current DApp has similar features such as project discovery, project pages, and voting on projects (via GIVpower).
  • Diverse Application Experience: Besides Giveth we have worked on a wide variety of other projects across the space, including the Conviction Voting on Gitcoin, Gitcoin’s new Grants Stack and Allo Protocol, ENS Merch Shop, the TE Academy Fundamentals course, and the TEC Design Dashboard.
  • Our RetroPGF Community Connections: We are uniquely positioned to execute on this proposal as we can easily coordinate with two teams already working on RetroPGF this round.
    • Pairwise is currently in active development, and we are excited to coordinate with that team to use their simple UX as a fun method to create standard lists. The team has been researching RetroPGF voting for the last several months and will be helpful in advising our work.
    • RetroPGF community marketing is well underway, we have been advocating and marketing the use of RetroPGF online via twitter and in IRL events during EthCC and ETHBarcelona. This project owns retropgf.com and we would plan to host the voting application there.
  • RetroPGF Experience: Our team has participated in RetroPGF from every angle and we have all benefited greatly from it, and we want to give back! We have seen every side of RetroPGF and truly appreciate and understand the challenge.
    • Daniele had 2 grants in RetroPGF2 (delegation.tools and the DAppNode Optimism Package)
    • Giveth was a recipient of RetroPGF1 & 2
    • Griff was a badgeholder in the last round.

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 are creating an interface that encompasses all the categories and projects selected for RetroPGF3. Users will have the ability to create their own lists based on these categories, curating collections of projects. In our interface, citizens can create up to five lists that they can share and edit. Citizens will allocate a percentage of the budget to specific categories and then to individual projects. This allocation can be done manually, and the system will seamlessly integrate with Pairwise.

Categorization of Projects into “Collections”:

  • We will create special categorized lists that we will call categories, these collections are projects with the most similarities. And those will include multiple projects that have applied for RetroPGF. This will facilitate easier navigation and decision-making for voters.

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

Integration with Pairwise:

  • We will collaborate with the Pairwise team to create specific categories for project lists. This will allow voters to submit their lists on the dapp we create or upload them directly from Pairwise. Our application will not depend on Pairwise's success but will integrate seamlessly with it if they succeed.

  • We will work side-by-side with the Pairwise team to categorize the projects into categories, and validate those categorizations with the community.

Public or Private Submission of Lists:

  • Citizens will have the option to submit their lists publicly or record and share their evaluations privately in a CSV file, or in the web-app if they get back and signed in again..
  • Citizens will be able to create custom lists or use categories to submit lists publicly .

Integration with EAS for On-chain Attestations and IPFS Metadata Posting:

  • A pivotal feature of our solution is its integration with the Ethereum Attestation Service (EAS) for on-chain attestations. Ensuring authenticity and transparency of the lists created by citizens.

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

Technical work:

  • Project Kickoff and Planning (1 day): We will begin with a project kickoff meeting to align our team with the mission's goals and requirements. This will be followed by a detailed planning phase where we will outline the project's scope, define roles and responsibilities, and establish key milestones and deadlines. It would be very helpful to have a Product owner from Optimism with us for this 2 hour call.
  • Design and Architecture (1 week): During this phase, we will design the system architecture and user interface based on the provided designs and user stories. We will also draft a specification for collecting and storing user-curated project lists and their impact evaluations, ensuring seamless integration with EAS for on-chain attestations and IPFS for metadata posting.
  • Development of Core Features (7 weeks): This phase will involve the development of core functionalities such as project discovery, user-curated project lists, and voting infrastructure. We will also construct a RESTful API or GraphQL backend that handles user operations and integrates with the RetroPGF Protocol APIs, IPFS, and Ethereum Attestation Service (EAS).
  • Testing and Quality Assurance (2 weeks): We will conduct thorough testing of all features and functionalities to ensure they work as expected and provide a smooth user experience. This will include unit testing, integration testing, and user acceptance testing.
  • Launch of Project Discovery Feature (During the QA phase): We will launch the project discovery feature, enabling users to explore all nominated projects and view project profiles.
  • Launch of List Creation Feature (During the QA phase): Concurrently with the project discovery feature, we will launch the voting feature, allowing citizens to discover lists, and allocate and submit Ballots.
  • Maintain, Support and Improve (Until March 2024): Post-launch, we will provide continuous maintenance and support, ensuring the application runs smoothly and any issues are promptly addressed. We will continue to work on this application expecting to be rewarded via RetroPGF.
  • Feedback and Iteration (Ongoing): Throughout the project, we will actively seek feedback on the forums from the community and make necessary adjustments and improvements to our solution.

Categorization work:

  • Project kickoff and planning (1 day): Same as above.
  • Create and review a deform (3 days): This will be an optional form that projects can use to give us extra information that will help us categorize the projects.
  • Distribute the categorization deform (Ongoing): We will reach out to projects to ensure they have an opportunity to help us group them in the best category until voting begins.
  • Build an AI powered tool to help us categorize (2 weeks): There is a lot of information to parse. We experimented with vectorization of Giveth projects in a 40-dimensional space and were pleasantly surprised by the results. AI will be used to speed up the process, but the final results will require great human oversight.
  • Publish initial categorization draft (3 business days after the close of applications): Once the application deadline has closed, we will add the final applicants into our data set and work nonstop to publish a first draft of categorization, groupings and titles.
  • Rapid feedback and iterations (until the voting begins): We will work with the community to address feedback and concerns as they come up. It is important to set the category titles and the projects in each category before voting has begun, for the legitimacy of the process.

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

Milestone 1: Specification Completion

  • Overview: Finalize the system design and architecture based on the provided designs and user stories.
  • Deliverable: Detailed system architecture and user interface design ready for public feedback.

Milestone 2: Core Features Development

  • Overview: Complete the development of core functionalities such as categorization of projects, integration with Pairwise, and list creation features.
  • Deliverable: A functional version of the application with core features ready for internal testing.

Milestone 3: Testing and Quality Assurance

  • Overview: Conduct comprehensive testing of all features and functionalities to ensure they operate as expected.
  • Deliverable: A report detailing the results of unit testing, integration testing, and user acceptance testing.

Milestone 4: Application Launch

  • Overview: Officially release the application to the public, enabling badgeholders to discover, view, and interact with Lists.
  • Deliverable: A live and fully functional application available for badgeholders.

Milestone 5: Continuous Feedback and Iteration

  • Overview: Actively solicit feedback from the community and make necessary refinements and enhancements based on their insights.
  • Deliverable: Monthly updates on the forums detailing improvements and adjustments made to the application based on community feedback.

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

  • Support we would appreciate, though not required:
    • Modifications to the project submission form that would help us categorize would save a lot of double work, even if these were optional.
      • We would love to add 2 questions, one open ended to get specific categorization data and one that simply asks “What other projects in the Optimism Ecosystem are similar to yours?”
    • Access to project contact information will help us reach out in case we need extra information to better categorize each project.

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

  • Access to upfront capital is not a barrier for us. However, a small upfront cash grant would benefit immediate project expenses. We understand this is not guaranteed.

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

@Chomtana
Copy link

Chomtana commented Aug 25, 2023

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: Opti.domains
Alliance Lead: Chomtana Chanjaraswichai (Opti.domains)
Contact info: [email protected]
L2 recipient address: 0x73F4e6132Cd9E4a3945d9CA6E98e5985BBe16d2D

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

Chomtana Chanjaraswichai (Opti.Domains, Alliance Lead)

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

  • UX/UI Designer at Inspex
  • Former UX / UI Designer at DoDeep

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

  • We have proposed Rubric-based list builder on the previous mission
  • We have intensive experience with grant council Rubric-based list scoring system
  • Chomtana, alliance lead is an Optimism TechNERD
  • Our team has developed Opti.domains, the first protocol utilizing EAS on the Optimism mainnet, as of the time of writing.
  • Opti.domains has implemented social verification system utilizing EAS.
  • We can advise the Optimism team on EAS schema and attestation design, ensuring optimal task accomplishment.
  • Our alliance is the first to inquire about the project requirements.
  • We have successfully completed most of the tasks associated with the "Specification for implementation, design approach, and architecture for the functionality listed above."
  • Our alliance leader has experience developing Kaokonlakao, the largest running event in Thailand with more than 10,000 participants actively submitting their running progress to our system with a bunch of volunteer grading submitted progress. So, we have proven that we can handle the load of the RetroPGF 3 project discovery and voting system.

Professional level EAS experience

We have attested more than 10,000 attestations in Optimism Goerli!

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

ethereum-optimism/community-hub#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 List Creation UI development

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:

Live Prototype

We have developed a live prototype demo which accounted to about 40% completion of RetroPGF 3 list creation. Our prototype currently supports 2 list-creation methods:

  • Classical: Assign OP amount to each project manually.
  • Rubric-based: Score each project based on a rubric. OP amount is assigned automatically based on the final score.

Demo Link

Our prototype is live at: https://retrolist.opti.domains

Demo Video

https://youtu.be/AYjrHolE_s0

Screenshots

Note: Not an actual UI design. This is a working prototype that demonstrates the functionalities

Classical List Creation

image image image image

Rubric-based List Creation

Screenshot 2023-09-04 190104 Screenshot 2023-09-04 190058 Screenshot 2023-09-04 190048 Screenshot 2023-09-04 190023 Screenshot 2023-09-04 185946 Screenshot 2023-09-04 185954

Core functionalities

We will develop core functionalities as listed in the requirements

Wallet connect

  • Users can connect their wallet on the Optimism mainnet chain with Rainbowkit's industrial-grade wallet connect system.

Discover Projects while managing list

  • Users can explore all nominated project
  • Users can search for a specific project by text
  • Users can filter projects by categories
  • Users can sort projects by name and others
  • Users can view detailed information about a specific project including general information about the project (name, creator, profile picture, social media links, etc.) and specific information relevant to RetroPGF’s goal of aligning impact and profit (description of contributions, links to contributions, impact description, funding history, etc.).
  • Users can easily view social media linked to each project

List system

  • Only Badgeholders can create a maximum of 5 lists
  • Users can view all published lists
  • Users can view details of each list
  • Badgeholders can specify a list name
  • Badgeholders can specify description and impact evaluation description
  • Badgeholders can add projects to the list
  • Badgeholders can assign OP amount to each project
  • Badgeholders can fork a list
  • Badgeholders can update their list
  • Badgeholders can delete (revoke) their list
  • Badgeholders have an easy user interface to view project information without switching to a new tab
  • Badgeholders can create a list by using Rubric-based scoring (Details below)
  • Shared list will have a link that can be shared to others
  • Voting time remaining is shown to the user
  • Project added and OP allocated progress bar is summarized
  • Should show which list is forked form
  • List should be attested to Ethereum Attestation Service (EAS)

Rubric-based list builder

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

A prototype is worth thousand of words, please take a look at our prototype

Frontend

image

We have successfully used React + Vite to develop our frontend. We have successfully deployed our frontend on Cloudflare Page. Our frontend is now accessible from https://retrolist.opti.domains.

We will utilize our special caching technique for caching project discovery and leverage cloudflare cache to cache list data. This ensure that our system can scale to million of users seamlessly and users are having the best experience due to low latency.

We have planned to support 3 kinds of list-creation methods:

  • Classical: Assign OP amount to each project manually
  • Rubric-based: Score each project based on a rubric. OP amount is assigned automatically based on the final score.
  • Percentage: Assign a total OP amount and distribute it among each project by specifying a percentage of the total OP amount.

Database

We plan to leverage MongoDB Atlas 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 favor a NoSQL document-based database as follows:

Lists along with owners, impact evaluations, and votes

[
  {
    "_id": "...",

    "listName": "...",
    "listDescription": "...",

    "impactEvaluationInput": "...",
    "impactEvaluationDescription": "...",
    "impactEvaluationLink": "...",
    "impactEvaluationType": "...",

    "listContent": [
      {
        "RPGF3_Application_UID": "...",
        "OPAmount": "...",
        "comment": "...",
        "evaluation": {
          "<rubric_id>": 5
        }
      }
    ],

    "walletAddress": "...",
    "isBadegeholder": true,
    "attestationUid": "...",
    "ipfsHash": "...",
    "forkedFrom": "<List ID>",

    "rubrics": [
      {
        "id": "<uuid>",
        "title": "...",
        "scores": {
          "-2": "...",
          "0": "...",
          "1": "...",
          "2": "...",
          "3": "...",
          "4": "...",
          "5": "..."
        }
      }
    ],

    "histories": [

    ],

    "cachedAt": "...",
    "createdAt": "...",
    "updatedAt": "..."
  }
]

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

Backend

Listing API

Listing API endpoints include List listing, Classical list creation (Draft, Edit, Publish), Rubric-based list creation (Draft, Edit, Publish) and List forking. List will be published to IPFS prior to submitting to EAS.

Project scraping

We will scrape projects once from either Agora or Supermodular RetroPGF voting platform. Project data will be cached in the frontend and no API query is needed anymore.

Deployment

For backend API deployment, we propose utilizing Atlas Functions, a MongoDB Atlas serverless solution that we don't need to worry about scaling tasks at all.

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.

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

Project Implementation Specification, Design Approach, and Architecture

We will complete this before grant is accepted. However, with agile methodology, it has enough flexibility to change between sprints.

Sprint 1: Frontend Hackathon

28 August - 24 September 2023

In this phase, our team will develop the frontend using mock-up data. This approach ensures no backend or scraper feature interactions are required at this stage.

Sprint 2: Backend & EAS Integration

25 September - 8 October 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.

Sprint 3: Testing, Bug Fixes and Additional Features

9 - 14 October 2023

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

Sprint 4: Production Deployment

12 - 14 October 2023

Deploy RetroPGF List Creation UI to production

Maintenance and Support

After production deployment, we will provide maintenance and support. As I am a TechNerd, badgeholders and users having problem with our tool can open a user or dev support ticket on the official Optimism discord to discuss the problem with me seamlessly.

Since our deployment is mostly serverless, each cloud provider will also provide 24/7 maintenance support for our RetroPGF list creation UI.

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

  • Get feedback from the Optimism Foundation team on the agile Review phase
  • Everything will be open source in an isolated GitHub organization for this project
  • Successfully deploy to production on 14 October 2023
  • Successfully integrate with voting UI from both Agora and Supermodular team

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.
  • We would like @JSeiferth to connect us to Agora and Supermodular team.
  • Since you have limited list creation ability to badgeholders, we need to have our alliance leader, Chomtana become a badgeholder to be able to provide sufficient support in the production.

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. However, with a much lower grant size, getting some small upfront cash grant would be great!

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

@luizakp
Copy link

luizakp commented Aug 25, 2023

Foundation Mission (RFP) Application

  • Alliance Lead: Luizakp @luizakp
  • Contact info: [email protected] | luizakp#4139 (Discord)
  • L2 recipient address: oeth:0xa41214012d4462ecBB0724673897Ee0dCc0fDF49
  • Please list the members of your Alliance and link to any previous work:
    • Team work: https://github.com/bleu-studio
    • Previous work:
      • Vault Internal Balances Manager: an application to manage tokens within Balancer Vault's Internal Balance. This tool assisted users affected by the Euler hack in recovering their funds once Euler eTokens were frozen;
      • Pool Simulator: a dashboard designed to simulate Balancer pools behavior. It aids the Balancer DAO in determining parameters that improve the performance of the pools;
      • Pool Metadata: this tool streamlines the on-chain management of Balancer’s pool metadata via IPFS. It allows pool owners to store and display custom metadata on a UI, enhancing user understanding without requiring Balancer's direct oversight;
      • Contributions to Balancer's subgraphs, and several other packages.

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

  • This mission, tailored for the Ember Alliance, represents an ideal platform for us to not only build a solid collaboration with Optimism but also to be pivotal in reinforcing its decentralized foundation. Being an Ember Alliance, our team is poised to use our technical expertise and is eager to tackle fresh challenges within OP.
  • As highlighted in our "previous projects", we pioneered several applications for Balancer, enabling only the Pool Owner to save custom Pool Metadata on-chain via IPFS. Having primarily focused on the web3 frontend in our past projects, we are well-acquainted with the tech stack required for this mission;
  • Balancer and Optimism share a strong and collaborative relationship, and our aspiration is to be close to their partners. We share Balancer's alignment with Optimism;
  • We're committed to delivering. To dispel any doubts that we'd be able to deliver this RFP we put together a PoC for this RFP here: https://www.loom.com/share/e9d56af1b5564b9292730bdee4a278f5?sid=5b066757-4504-4edc-9e13-7ddd490d6792.

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

For this RFP, we've outlined the following steps:

  • Establishing wallet connectivity to the chain (e.g. through wagmi/rainbowkit);
  • Extracting and showcasing RetroPGF Round 3’s Projects data
    • Retrieving application details (like names, photos, and linked lists) from EAS
  • Design a user-friendly interface for list creation
    • Input fields will include: Name, Description, Impact Evaluation Description, and an Impact Evaluation link, and have validations;
    • Selected projects will feature their names and respective OP allocations;
      • Add validations to ensure a project does not receive more than 10M OP and the cumulative allocation doesn’t exceed 30M OP;
  • Save form data to IPFS, then persist it to EAS;
    • Ensure creation is only available to badgeholders;
      • On-chain verification will be employed;
    • Badgeholders will have the privilege to craft up to 5 lists
  • Show lists data extracting EAS data via its attestation UID, fetching the IPFS hash, and retrieving metadata;

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 September 15th, 2023.

Milestone Delivery Date
Specification September 15, 2023
Set up project & deployment September 15, 2023
Create List feature September 29, 2023
View List UI October 6, 2023
Testing & QA October 13, 2023
Monitoring and support Until March 2024

We will commit to improving, supporting, and featuring improvements for subsequent RetroPGFs until March 2024.

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

  • Create a public repository and deployment;
  • Have the UI design established;
  • Deploy feature: Badgeholders are able to create Lists;
  • Deploy feature: Anyone is able to view created Lists;

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

  • Regular feedback and collaboration with @JSeiferth and the broader Optimism team

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

  • Given the size and operational costs associated with our team, an upfront cash grant would ensure that we can maintain our operational efficiency. This support would significantly aid our contribution to the ecosystem

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

@Chomtana
Copy link

Chomtana commented Sep 4, 2023

Hi @JSeiferth, We have developed a live prototype demo which accounted for about 40% completion of RetroPGF 3 list creation. Our prototype currently supports 2 list-creation methods:

  • Classical: Assign OP amount to each project manually.
  • Rubric-based: Score each project based on a rubric. OP amount is assigned automatically based on the final score.

Demo Link

Our prototype is live at: https://retrolist.opti.domains

Demo Video

https://youtu.be/AYjrHolE_s0

Screenshots

Note: Not an actual UI design. This is a working prototype that demonstrates the functionalities

Classical List Creation

image image image image

Rubric-based List Creation

Screenshot 2023-09-04 190104 Screenshot 2023-09-04 190058 Screenshot 2023-09-04 190048 Screenshot 2023-09-04 190023 Screenshot 2023-09-04 185946 Screenshot 2023-09-04 185954

@JSeiferth
Copy link
Member

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 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 ([email protected]) with any questions 🌞

@JSeiferth
Copy link
Member

Hi all – thanks for the excellent submissions! 🌞

The Optimism Foundation has selected Supermodular’s proposals to move forward with the work described in this RFP. That said, we're really excited about the amount of interest 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 will be more RFP's & Ecosystem Project Ideas in the Ecosystem's Contribution repo and future opportunities to contribute to RetroPGF.

If you have an idea of what you’d like to build for RetroPGF, feel free to reach out to me and/or post about it in the forum

Thank you again for your proposals!

@JSeiferth JSeiferth moved this from Open to In Progress in Optimism Ecosystem Contributions 🔴✨ Sep 12, 2023
@JSeiferth JSeiferth moved this from In Progress to Done in Optimism Ecosystem Contributions 🔴✨ Nov 7, 2023
@carlbarrdahl
Copy link

RetroPGF is now live and we're happy to share what we've built here.

You can play around with the UI but you need to be a badgeholder to publish the list.
https://round3.optimism.io/lists/create

If you're curious about the code, you can find it here:
https://github.com/supermodularxyz/OP-RetroPGF

round3 optimism io_lists_create(iPad Pro)

@oplavande oplavande changed the title RFP: RetroPGF List Creation UI Foundation Mission Request: RetroPGF List Creation UI Apr 4, 2024
@opjulian
Copy link
Contributor

opjulian commented May 1, 2024

This is still listed as "open" but is in the "done" bucket. Can we close?

@JSeiferth

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Foundation Mission Request A request for proposals for a specific work item. Intent: Governance Accessibility
Development

No branches or pull requests

9 participants