Closed bdresser closed 10 months 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?
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.
magenta | magenta#9858
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:
Discover Projects:
Project Profiles: Surface all relevant data about the project in an easy-to-follow format as provided in the mock-ups.
User-Curated Project Lists:
Architecture: Formulate a specification, aligning with the provided design and user stories, for collecting and storing user-curated project lists and their impact evaluations.
Backend: Construct a RESTful API or GraphQL backend that handles user operations such as CRUD operations for projects on lists, POST requests for impact attestations, and generating shareable URI endpoints for the lists. These URI endpoints will enable curators to widely share their evaluations and collections. Integrate this backend with the RetroPGF Protocol APIs, IPFS for decentralized data storage, and Ethereum Attestation Service (EAS).
Frontend: Implement a responsive frontend using ReactJS, following the provided UX/UI designs, ensuring asynchronous communication with the backend for a smooth user experience.
Voting Infrastructure:
Database Design: Construct a database schema to capture and store votes, ensuring badgeholders can vote on both projects and lists, and modify their votes until final submission. This feature will be an adaptation of a similar functionality we previously developed for DAO Drops.
Application Hosting: Deploy the application on a scalable, cloud-based hosting platform, guaranteeing continuous monitoring and maintenance during Round 3.
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:
Hi @JSeiferth @bdresser, I've recently been looking over your proposed wireframe. However, I have some questions and concerns.
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.
Can anyone confirm if my understanding of the process is correct?
Are we responsible for calculating the final result?
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?
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.
@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.
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?
Hi @JSeiferth, Some questions came up while reading through the RFP:
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?
Alliance Lead: Piyush Choudhary Contact info: piyushch377@gmail.com | Discord: boldpanther L2 recipient address: 0x2b7c6e9612c3935c039d13222f852103305d6657
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:
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
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
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
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
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
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
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.
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.
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.
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
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.
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
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.
For implementing the desired searching, sorting, and filtering functionalities, we are planning to use open-source search engines such as Apache Solr or Elasticsearch in the backend. These search engines offer robust full-text search capabilities, efficient sorting, and flexible filtering options for various tags, making them ideal choices to handle project discovery in the RetroPGF 3 application.
In the frontend, React.js will be used to create drop-down options, toggles, etc., as shown in the wireframe and seamless integration with the backend will be done.
Making dedicated REST-API routes for badgeholders to create lists which are discoverable and many other list related functionalities.
Here are the exact API routes for every list related functionality:
Frontend: Building the exact frontend as shown in the wireframe for lists which will be highly responsive, smooth, and user-friendly.
Database Schema: A no-sql schema is the preferred choice according to us for this project, however, we are still very comfortable and confident if any particular schema or database has already been selected. Here is an example schema which can be used to store all the voting information: Project Collection:
{
"_id": "project_id_1",
"name": "Project 1",
"description": "This is the description of Project 1.",
"creator": "Creator's Name",
"profilePicture": "url_to_profile_picture",
"socialMediaLinks": {
"twitter": "twitter_handle",
"github": "github_username"
},
"contributions": ["contribution_1", "contribution_2", "contribution_3"],
"impactDescription": "Description of the impact of Project 1.",
"fundingHistory": [
{ "date": "2023-07-01", "amount": 1000 },
{ "date": "2023-07-15", "amount": 1500 },
{ "date": "2023-07-28", "amount": 2000 }
]
}
Voter Collection:
{
"_id": "voter_id_1", \\ can be a hashed to maintain complete anonymity.
"name": "Voter 1",
"address": "0xabcde12345",
"ballot": [
{
"project": "project_id_1",
"vote": 5
},
{
"project": "project_id_2",
"vote": 3
},
{
"project": "project_id_3",
"vote": 2
}
]
}
By using the above schema or a better-revised schema or any schema provided to us, REST API routes will be created:
Whitelist functionality to be implemented in the backend so only whitelisted wallet address badgeholders could access these important routes or any other badgeholder route.
Complete and total anonymity will be maintained by not revealing any voting information to anyone but the voter through any route.
Smooth frontend using REACT.js which will be highly responsive and exactly the same as provided in the wireframe.
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
Backend for Discovery Page:
Frontend for Discovery Page:
Discovery page will be completed by 3rd week.
Integration and Testing:
CI/CD Pipeline and Deployment:
Conduct user acceptance testing with the organization to validate the application's functionality.
Final Review and Documentation:
Launch and Operation:
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.
The critical milestones that should be used to determine the successful execution of the proposal are as follows:
Completion of Project Discovery Feature (End of Week 3):
Viewing Project Profiles Feature (End of Week 4):
Discovering and Voting on Lists Feature (End of Week 5):
Submitting Vote Components (End of Week 6):
Integration and Testing (End of Week 7):
CI/CD Pipeline and Deployment (Start of October):
Final Review and Documentation (Start of October):
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
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.
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.
[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
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:
Thank you for your clarification. All of the questions and answers are extremely useful.
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.
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.
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.
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
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.
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:
Please verify that you meet the qualifications for submitting at the above Tier:
Opti.Domains is a grant recipient in season 3, Cycle 11
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
Working as a Blockchain Software Engineer at Finstable co. ltd (01/2022 - Present)
https://ethglobal.com/showcase/scalingtree-zida1
Experience:
Academic work:
Work Experience: Currently working as Software Engineer at Finstable co,. Ltd (10/2022- Present)
Working experience:
Competition:
06/2023 Joined Hack FS 2023, ETH Global. Project name “Videfi”, a web3 content platform utilizing decentralized file storage solutions, such as Filecoin, IPFS, Lighthouse.storage, NFT.storage, etc. Videfi aims to make freedom of content creation and strengthen ownership upon content of creators. https://ethglobal.com/showcase/videfi-nvth7
05/2023 Joined the Autonomous world 2023 hackathon by ETHGlobal and built Muddy Heart, an On-chain action RPG game powered by @lattizexyz's MUD engine. https://ethglobal.com/showcase/muddy-heart-cdm0k
04/2023 Joined the BANGKOK BLOCKATHON 2023 by SCB10X and made it to 15 of the finalists team with the project BestEx: The Super Aggregator, BestEx searches for the best prices for your trade over DEX Aggregators and CEX, guaranteeing your best execution prices in trading. Pitch video link: https://www.facebook.com/huzen.karode/posts/pfbid0nYkFkBYf7uKzXChgCU6nM1tY3aX2VM8jFiJD1d6yDpXEJcxPuNo23KVQKknoWHgyl
03/2023 Joined SCALING ETHEREUM by ETHGlobal with the project ScalingTree: One repository for the world tree data. Social media for trees. https://ethglobal.com/showcase/scalingtree-zida1 and got the prizes
02/2023 Joined FVM SPACE WARP by ETHGlobal and got the prize Winner of Filecoin & IPFS - FVM Jetpacks with the project Cretodus: A decentralized data marketplace where any users can upload any data they want to keep it on Filecoin network for data preserving. https://ethglobal.com/showcase/cretodus-fga5u
Academic work:
Working experience:
Competition:
Joined the Autonomous world 2023 hackathon by ETHGlobal and built Muddy Heart, an On-chain action RPG game powered by @lattizexyz's MUD engine. https://ethglobal.com/showcase/muddy-heart-cdm0k
Joined the BANGKOK BLOCKATHON 2023 by SCB10X ( APR 2023 ) and made 15 of the finalists team with the project BestEx: The Super Aggregator, BestEx searches for the best prices for your trade over DEX Aggregators and CEX, guaranteeing your best execution prices in trading. Pitch video link
Joined SCALING ETHEREUM by ETHGlobal ( MARCH 2023 ) with the project ScalingTree: One repository for the world tree data. Social media for trees. (https://ethglobal.com/showcase/scalingtree-zida1) and got the prizes
Joined FVM SPACE WARP by ETHGlobal ( FEB 2023 ) and got the prize
https://ethglobal.com/showcase/cretodus-fga5u
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.
https://optimism-goerli.easscan.org/address/0xf01dd015bc442d872275a79b9cae84a6ff9b2a27
https://optimism-goerli-bedrock.easscan.org/
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.
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
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
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
Core functionalities are working very well despite only 7 days of development.
Start from 11 June
Finish on 18 June
Live demo: https://bafybeie5exjjebz4rditcbqn7wdjlendhyvdbbkar63afbtvtg6gsjxli4.ipfs.sphn.link/ Github: https://github.com/Videfi/videfi-front ETH Global: https://ethglobal.com/showcase/videfi-nvth7
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.
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.
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".
We will develop core functionalities as listed in the requirements
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.
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).
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.
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.
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.
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.
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.)
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
(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.
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.
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.
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.
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.
Upfront Capital is not a barrier
-- end of application --
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:
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!
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:
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.
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.
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:
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.
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.
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.
There are two distinct lines of work, the technical work and the categorization work
Technical work:
Categorization work:
Here are the critical milestones that should be used to determine whether we've executed on this proposal:
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 ✔️
Please list the members of your Alliance and link to any previous work:
Role | Team member |
---|---|
Frontend | Jithin Kunnath |
Backend | Rachit Anand |
Full Stack | Yehia Tarek |
DevOps | Ryan Lin |
QA | Shashank Sanket |
Security Review | Murat Gunsay |
Project Manager | Dawid Zielinski |
We work with ecosystem leaders, including Starkware, Lido, Obol, EigenLayer, Aave, and Flashbots.
The solution will mainly follow the provided specifications outlined in the RFP. Some specifics about our solution are as follows:
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.
This would not be a barrier to us completing the mission.
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.
🚀
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
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.
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:
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
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!
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:
We published another RFP to build an application that allows badgeholders to create Lists
There are a couple of Ecosystem Project Ideas on RetroPGF. These are not associated with an OP grant, but impactful work in this area is in scope to be rewarded in future rounds of 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
And stay tuned for more RFPs & Ecosystem Project Ideas to be posted in the next few months. Thank you again for your proposal!
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 |
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
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 |
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 |
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:
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
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:
Hi, @yitongzhang can I use your GraphQL API to query RetroPGF3 projects?
Here's an update. The UI is done and we're currently working on implementing the Agora backend.
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
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
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 | ⏳ |
This RFP has been completed! ✨
Foundation Mission Request: RetroPGF3: Discovery & Voting
Proposed Foundation Mission (RFP): RetroPGF Discovery & Voting application
S4 Intent: Governance Accessibility
Proposal Tier: Fledgling Tie
Baseline grant amount: 150k OP
Should this Foundation Mission be fulfilled by one or multiple Alliances: Multiple (two)
OP Labs or Optimism Foundation Sponsor: Jonas (gh: @JSeiferth, TG/Discord: @jonassft)
Submit by: August 4th, 2023
Selection by: August 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.
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:
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)?
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 -- ---