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: Proof of Attendance Testnet Faucet #115

Open
5 tasks
bdresser opened this issue Nov 29, 2023 · 11 comments
Open
5 tasks

Foundation Mission Request: Proof of Attendance Testnet Faucet #115

bdresser opened this issue Nov 29, 2023 · 11 comments
Labels
Foundation Mission Request A request for proposals for a specific work item.

Comments

@bdresser
Copy link
Collaborator

bdresser commented Nov 29, 2023

Foundation Mission Request – Proof of attendance testnet faucet

To take on this project, submit a proposal to this thread by December 8. Read more about Missions here.

  • S5 Intent: Grow the Superchain
  • Foundation Mission (RFP): Build a way for hackathon participants to claim larger testnet funds from in person hackathons via the Superchain Faucet
  • Proposal Tier: Ember
  • Baseline grant amount: 30K OP
  • Accepting one or multiple proposals: One
  • OP Labs or Optimism Foundation Sponsor: Zain (@zainbacchus)
  • Submit by: December 8th at 19:00 GMT
  • Selection by: December 15th at 19:00 GMT

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

Superchain Faucet is a developer tool that allows developers to get free testnet ETH to test and build apps on testnet OP Chains like Base Sepolia, OP Sepolia, PGN Sepolia, Zora Sepolia, and other OP Chains in the Superchain.

Developers who have an Optimist NFT, Gitcoin Passport attestation, or WorldID are able to get larger drips from the faucet.

A common pain point for hackathon participants is not having credentials yet for larger drips. This RFP aims to expand access to larger testnet fund drips to participants at in person hackathons and reduce developer friction when building on OP Chains.

As such, this mission will contribute to a more resilient developer ecosystem for the Superchain.

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

Completing this RFP requires building an open source frontend that allows users to claim a proof of attendance attestation, mint an Optimist NFT, and get larger testnet fund drips. The interface should be fully open-source and should allow for future iterations of the functionality. This RFP requires both designs and implementation.
,
For this RFP, the Optimism Foundation will accept one submission.

The target grant reward for the submission will be 30K OP. Teams should discuss the solution criteria below with the Foundation, and may arrive at a different mutually agreeable grant amount dependent on the scope of their work.

Solution Criteria:

Core functionality of the claim experience includes both a flow for event maintainers and an end user flow.

Proposed maintainer flow
To set up the claim experience, the event maintainer should require minimal setup.

  • Maintainer sets up a new event using an admin portal
  • Maintainer is provided a URL to use for the specific in person events
  • Maintainer sets up the URL at the respective event

Proposed end user flow
To claim the proof of attendance attestation the flow should be sybil-resistant, gasless, and allows the user to specify their preferred address.

  • Developers come to the OP booth
  • Developer scans the QR code or URL at the OP booth
  • Developer completes challenge that proves they’re at the booth (eg by entering a unique code)
  • Developer enters their wallet address or ENS name
  • Developer gets a proof of attendance attestation and Optimist NFT minted to their specified address
  • Developer is prompted use the faucet to get larger drips from the faucet or customize their Optimist NFT

Ethereum attestation service (EAS) and Optimist NFT
EAS is an open-source public good that is included as a predeploy in the OP Stack. The proof of attendance attestations should use the EAS contracts on OP Mainnet and requires a new schema for the proof of attendance attestations to be created.

The Optimist NFT is a fully customizable digital avatar that allows you to showcase your personality and build your onchain identity.

Proposed implementation of proof of attestation / auto-minting the Optimist NFT:

  • Create an EAS resolver that restricts ability to create this attestation to specific addresses
  • This resolver should maintain a mapping(address => bool) of everyone who currently has this attestation using the onAttest and onRevoke hooks
  • Update OptimistAllowlist.sol to check the resolver contract to see if user is eligible
  • Auto-mint feature: Automatically mint the Optimist NFT to users who have the proof of attendance attestation
    • Option 1: The resolver should do the above, then directly mint the NFT
    • Option 2: Use multicall3 to 1. Create the attestation, 2. Use function mint(address _recipient) function on OptimistNFT in a single transaction

How should the Foundation measure progress towards this Foundation Mission (RFP)?

Progress can be measured based upon the completion of the following milestones:

  • Specification for implementation, design approach, and architecture for the functionality listed above.
  • Open-source code repository to observe progress over time
  • Launch of the interface

These milestones mark the completion of the proposal.

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

  • Number of attestations (by distinct addresses) that is triggered through this interface
  • Number of contracts deployed on OP Chain testnets by addresses that have attestations from this interface

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 June 28, at which time the Foundation will review all submissions and select up to three 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

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


@bdresser bdresser added the Foundation Mission Request A request for proposals for a specific work item. label Nov 29, 2023
@0xyNaMu
Copy link

0xyNaMu commented Nov 30, 2023

It’s so exciting to see this happening!

I’ve used attestations for some in person OP events and it was a really cool experience for participants, plus it opens it up to become an attribute for Citizenship eligibility in the DAO.

I'd like to suggest changes to the second measurement of impact though.

Number of contracts deployed on OP Chain testnets by addresses that have attestations from this interface

I would expect participants to select their main wallets as the holders for the attestation and the Optimism NFT, thinking this is the wallet that I'd want to build an identity on top of. However, as a hackathon participant, for security reasons, you never want to use your main wallet to deploy a smart contract to tesnet or even to connect it to anything you're building at a hackathon. It is common practice for hackathon participants to use a different test wallet for every project developed in a hackathon, or at least one for all hackathons (but I've seen the first one being more common).

Following this logic, the wallet that receives the Attestation and the holds the NFT (and therefore received the testnet funds), will most often be different than the wallet deploying a smart contract to testnet. I believe using this as a metric to measure the impact of this Mission wouldn't provide good insights into the conversion rate of attestation receivers --> testnet funds receivers --> # of smart contracts deployed (which I believe is what might be what you want to measure).

A bit more complex, but in this case it might be best to measure number of contracts deployed into OP Chain testnets by addresses that were funded by addresses that have attestations from this interface.

No longer in the scope for this project but this would also enable the identification of 1) serial OP hackathon builders and/or 2) OP advocates that support other builders in successfully deploying.

Hope this is useful :D and if this is not what you're trying to measure happy to tinker more on it.

@zainbacchus
Copy link

Love that feedback @0xyNaMu

want to use your main wallet to deploy a smart contract to tesnet or even to connect it to anything you're building at a hackathon

This is actually why we didn't specify mainnet deployments as we don't expect the hackathon participant to use the same keypair across mainnet and testnet deployments.

Interesting call out on testnet - rather than replacing the specified measurement what do you think about adding a third measurement:

Number of contracts deployed on OP Chain testnets by addresses that were funded from addresses that have attestations from this interface

That way we can learn which is a better proxy towards our goal of getting more developers building on Optimism blockspace.

@cdpiano
Copy link

cdpiano commented Dec 1, 2023

Foundation Mission (RFP) Application

Alliance Lead: Yuchen Jiang

Contact info: yuchen@jomo.network

L2 recipient address: 0x56EA5d2d923a44E5d7F974FDa9CAB06A6Ae40eC4

Team members: Yuchen Jiang, Charlie Chen, Kevin Yin

Past work:

We’re the team behind Jomo. We aim to empower on-chain experience with off-chain data.

A few other things we built:

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

We're the team behind Jomo, a project aimed at enhancing on-chain experiences with off-chain data. Supporting developers in the Optimism hackathon by helping them mint attestations and claim larger faucet drips aligns closely with our vision.

Our prior work at Jomo involves building attestations for off-chain data, such as minting an attestation to prove the receipt of an email from a community. This domain expertise gives us an advantage in implementing this RFP.

We have actively participated in hackathons, winning finalists at the ETHNewYork hackathon (link). Implementing this RFP addresses our own needs, which further gets us excited!

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

Organizer admin tool

  • Enable the organizer to input hackathon metadata, such as the title, description, and logo.
  • Allow the organizer to enter the expected number of participants (for example, if 150 developers are anticipated to attend the event, the goal would be to provide attestation for them).
  • The website should generate a list of unique QR codes equivalent to the number of expected participants entered by the organizer. (Developers can only mint attestation after scanning the code, and each code can be used only once).
  • Allow the organizer to invalidate unused codes after a hackathon ends.

Please note, we anticipate that the organizer will print the QR codes on flyers and distribute them at the hackathon. The design and printing of these flyers are not within the scope of this RFP.

Mint attestation page

  • A secure attestation mint page that can only be accessed with valid URLs (e.g., use a code in the URL parameter to validate the link).
  • A section to provide the context of the mint (e.g., explaining what the attestation is and its uses).
  • A dialog box for developers to enter their wallet address or ENS name.
  • Proof of attendance attestation and Optimist NFT are minted once the developer enters their wallet. Gas fees are covered. See next section for details.
  • A page to guide developers on the possible use cases for the attestation/NFT, e.g. using the faucet to get larger drips or customizing their Optimist NFT.

EAS and Optimist NFT

  • Create a new schema (optimist.hackathon-participants) for the proof of attendance attestations using EAS contracts on the OP mainnet.
  • Issue the attestation to developers who enter wallets by scanning the QR code.
  • Update OptimistAllowlist to verify the optimist.hackathon-participants attestation to determine user eligibility.
  • Use the mint function on OptimistNFT to automatically mint the Optimist NFT for the developer.

Appendix: End user flow during hackathon

  • Developers come to the OP booth
  • Developer picks a flyer and scans the QR code
  • Developer enters wallet address or ENS name
  • Developer gets a proof of attendance attestation and Optimist NFT minted to their address
  • Developer is prompted use the faucet to get larger drips from the faucet

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

  1. Design the UI and UX for both the organizer and user flow.
  2. Implement the organizer admin tool:
    • Input hackathon metadata
    • Generate unique QR codes
    • Create flyers ready for printing
  3. Implement the mint attestation frontend:
    • Secure permissioned URLs
    • Develop frontend UI before mint
    • Develop frontend UI after mint
  4. Create attestation and Optimist NFT:
    • Interact with EAS to create an attestation
    • Update the smart contract to include the auto mint feature
  5. Testing & QA:
    • Collaborate with the Optimism team for testing
    • Launch live during an Optimism hackathon at the end of February
Milestone Done by
Design 2024-1-15
organizer admin tool 2024-1-25
Mint attestation frontend 2024-2-5
Create attestation and NFT 2024-2-15
Testing & QA 2024-2-29

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

We will complete the product design by January 15.

We will finish all engineering work by February 15.

We will have the product in production and conduct live tests with OP by February 29.

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

Conduct ad-hoc check-ins for demos and to 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: (Note: there is no guarantee that approved Missions will receive up-front cash grants.) 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

-- end of application --

@bdresser bdresser changed the title Foundation Mission (RFP) – Proof of Attendance Testnet Faucet RFP: Proof of Attendance Testnet Faucet Dec 6, 2023
@mendesfabio
Copy link

Foundation Mission (RFP) Application

  • Alliance Lead: Fábio
  • Contact info: fabio@bleu.studio | mendesfabio (Discord)
  • L2 recipient address: 0xa41214012d4462ecBB0724673897Ee0dCc0fDF49

Alliance Members

Previous Work

bleu collaborates with companies and DAOs as a technology and user experience partner. Our goal is to help bridge the UX gap that exists for Web3 users. We've worked on several Balancer Grants and recently started contributing to the CoW Protocol.

  • [Balancer] Internal Balances Manager: manage tokens within Vault's Internal Balance. This dApp helped users affected by the Euler hack in recovering their funds when Euler eTokens were frozen;
  • [CoW] MilkmApp (WIP) - Safe App for creating and managing Milkman orders which allows DAOs to sell tokens but deferring the choice of the price to the execution time (leveraging price checkers) instead of the order creation;
  • [Balancer] Pool Simulator - enhancing pool performance through data-driven simulations;
  • [Balancer] Historical APRs - explore pools' historical APRs coming from swap fee, BAL emissions, yield tokens, etc;
  • [Balancer] Pool Metadata - streamlines on-chain pool metadata management via IPFS.

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

  • We've been looking for ways to start contributing to the OP ecosystem (have already applied for a RFP before) and this Ember Mission seems the perfect opportunity to kick off our collaboration. We understand the significance of growing the Superchain by reducing developer friction and facilitating access to testnet funds;
  • bleu is working closely to the most innovative DeFi protocols such as CoW Protocol and Balancer - read our announcements and applications at the Balancer Medium and CoW Forum;
  • We pioneered several applications for Balancer - from dashboards and simulators to dApps. Having primarily focused on the web3 frontend in past projects, we are well-acquainted with the tech stack required for this mission;
  • Our expertise in building intuitive frontends for blockchain applications positions us uniquely to execute this mission. Our past success in similar projects serves as a testament to our capability and commitment.

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

Frontend (Admin & Minting)

As requested, we're creating 2 separate pages/tools for Admin and Participants.

  • The Admin Portal will enable maintainers to create and managed events via seamless interfaces. Admins will have to fill a form with information regarding event (name, description, location, etc) but that can be edited later on via the Management page. Events must have start and end dates so URLs and QR codes expire after that period - if maintainers want to finish it early that should be possible with the Management features;
  • The Participant Interface allows users to prove they’re at the event, claim a proof of attendance attestation and mint an Optimist NFT to any given wallet address (ENS supported). We're thinking of linking the Success page to relevant Developer docs of the OP ecosystem.

Our tech stack is chosen for reliability, documentation quality, developer experience, and community support. It includes:

  • Frontend: Next.js, Tailwind.css, React Query, viem/wagmi, and React Hook Form;
  • Backend: Prisma/Drizzle with Postgres/MySQL (if needed), and Vercel for deployment.

EAS & NFT Integration

We're following the proposed solution for the proof of attestation / auto-minting NFT. An EAS Resolver will be created for tracking everyone who has the attestation. multicall3 will be used for creating attestation and minting the NFT in a single transaction.

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

  1. Specifications (1 week)
    • User flows and UI designs;
    • Project setup.
  2. Admin/Maintainer Portal (2 weeks)
    • Event creation and management tools:
      • Create an event;
      • Manage the current events;
      • Generate unique URLs and QR Codes;
      • Export QR Code - to be added to flyers.
  3. Mint Attestation & NFT Frontend (2 weeks)
    • User interface development for attestation and NFT minting:
      • Initial/Challenge page (where user inputs code);
      • Minting Attestation & NFT UI implementation;
      • Minting Success/Failure UI implementation.
  4. EAS & NFT Integration (2 weeks)
    • Integrating EAS resolver and auto-mint functionality:
      • Create EAS resolver;
      • Update OptimistAllowlist;
      • Auto-mint with multicall3.
  5. Testing & QA (1 week)
    • Extensive testing and final deployment preparations:
      • Extensive testing and bug fixes;
      • Deployment to production.
Milestone Deadline
Specifications December 28, 2023
Admin/Maintainer Portal January 12, 2024
Mint Attestation & NFT Frontend January 26, 2024
EAS & NFT Integration February 9, 2024
Testing & QA February 16, 2024

* Assumes a starting date of Dec 18th 2023 and considers expected OOOs for EOY holidays.

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

  • Creation of an open-source repository and deployment preview: January 4, 2024.
  • Functional deployment of Admin/Maintainer Portal: January 12, 2024.
  • Deployment of Minting Frontend: February 6, 2024.
  • Production deployment for community feedback: February 16, 2024.

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

  • Regular check-ins with the OP Team;
  • Constructive feedback from the OP Sponsor and Team - bleu is committed to share bi-weekly written updates and Looms videos showing the progress.

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; however, we do appreciate being considered for it. We understand it's 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

@justmert
Copy link

justmert commented Dec 8, 2023

Proposal

We verify that we meet the qualifications for submitting at the above Tier

  • Alliance Lead: Mert Köklü
  • Contact info: mert@yk-labs.com
  • L2 recipient address: 0x8ed90fCc7B11d6D6045c67f30E1bDB48B31213d8 (Optimism network, OP)
  • Please list the members of your Alliance and link to any previous work:
    • Tolga Yaycı - Alliance Member

Read more about Alliances here


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

Our alliance, is best-suited to execute this RFP with our extensive experience and proven track record in the wide range of protocols. Together, we co-founded YK Labs, specializing in developing applications within the different protocols. We showcase our diverse expertise and successful handling of multiple ecosystems with grantee of following projects,

YK Labs Website: https://yk-labs.com/

any many more. These projects demonstrate our comprehensive experience and expertise in working with a variety of well-known protocols such as Aave, Compound, Filecoin, Flow, Lens Protocol, Dfinity Foundation, Web3 Foundation (Polkadot), Solana, and Sia. These protocols gave us the opportunity and funding/grant to work with them.

  • Mert Köklü's background as Intelligent Video Analytics Team Leader and his involvement in various blockchain protocols as a grantee demonstrates his tech skills. His experience as a certified NVIDIA instructor, AAVE Turkey Community Co-Manager, and ambassador for Microsoft and The Graph protocol underlines his reputation and trust within the tech community.

  • Tolga Yaycı, he completed his Bachelor's degree in Computer Engineering. With two years of professional experience, he has improved his skills in software development, particularly in the decentralized applications (dApps). His expertise is highlighted with well-known protocols. This experience showcases his ability to navigate and contribute to multiple ecosystems.

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

Application Flow Diagram

flow

Application Flow

  1. Organizer opens new event registration form in the organizer portal.
  2. Organizer fills event registration form with details which consists of name, date, location, logo, poap etc.
  3. Selects the type of event (in-person or online)
    1. If the event is online, we can assume that the organizer has e-mail addresses of the participants. Platform requires e-mail addresses of the participants to send them magical link (which is a unique link for each participant) before the event starts.

      • Organizer bulk uploads e-mail addresses of the participants to the platform (csv, line by line etc.) or enters them one by one with an UI component.
      • Platform sends magical link to each participant's e-mail address before the event starts automatically (or manuel confirmation by the organizer).
      • Since each participant has a unique link with one-time use only, will prevent sybil attacks. One-time use only link only will expire if the participant uses it (by entering their wallet address or ENS name in next sections) or after the event ends.
      • Participants clicks the magical link to be redirected to the platform.
    2. If the event is in-person, there are two type of registration methods with different flows and advantages. If the event is pre-registered (thus, organizer has e-mail addresses of the participants) or not pre-registered (thus, organizer does not have e-mail addresses of the participants), or in both cases, organizer can select the type of registration below methods,

      1. If the event is pre-registered, we can assume that the organizer has e-mail addresses of the participants.

        • Platform requires e-mail addresses of the participants to send them magical link (which is a unique link for each participant) before the event starts.
        • Organizer then, bulk uploads e-mail addresses of the participants and magical link will be sent to each participant's e-mail address before the event starts just like the online event.
        • Participants clicks the magical link to be redirected to the platform.
      2. If the event is not pre-registered, organizer can use QR code method. Platform generates QR codes as well as a unique codes for each participant with the count of the participants that organizer enters. Each card has a unique code and same QR code (which directs attendees to the platform).

        • In the event, organizer or any responsible person gives the cards to the participants.
        • Participants scans the QR code and they will be redirected to the platform.
        • Participants enters their unique code to be validated by the platform. If it is valid, flow continues.
  • Partipant enters their wallet address or ENS name.
  • Proof of attendance attestation and Optimist NFT minted automatically to their specified address with gasless transaction.
  • Participant is prompted use the faucet to get larger drips from the faucet or customize their Optimist NFT.

Deliverables

  1. Organizer Portal: Development of a frontend interface for organizers.

    • Event Management Capabilities:

      • Create New Events: Organizers can input details to create new events, such as name, date, location, logo, and proof of attendance (POAP).
      • Edit Existing Events: Allows for modifications to details of already created events.
      • Delete Events: Option to remove events.
      • Event Listings: Display a list of all events with their respective details.
    • Event Registration Process:

      • For Online Events:

        • Email Upload: Capability for organizers to upload participant email addresses in bulk (csv, line-by-line) or individually through a user interface.
        • Magical Link Distribution: Automatic sending of unique, one-time use links to each participant's email address before the event starts. The link expires after one use (means that participant has entered their wallet address) or post-event, ensuring sybil resistance.
      • For In-Person Events:

        • Pre-Registered Events Option: Similar to online events, requiring participant email addresses for magical link distribution.
        • Non-Pre-Registered Events Option: The platform generates QR codes and unique codes for each participant based on the organizer's input for the number of participants. Organizers either print these cards and distribute them to participants or share unique codes with participants through other ways.
    • Analytics: For each event,

      • Display of number of participants, number of attestations, and number of Optimist NFTs minted.
      • Display number of contracts deployed on OP Chain testnets by each participant with attestations.
      • Display count of new attendees (i.e., participants who have not previously attended an event) and returning attendees (i.e., participants who have previously attended an event). Based on this, also display event attendee retention rate.
  2. Participant Interaction: Development of a frontend interface for participants/attendees.

    • Wallet Address or ENS Name Submission: Participants enter their wallet address or ENS name after following the magical link or scanning the QR code.
    • Proof of Attendance Attestation and NFT Minting: The platform mints the Proof of Attendance attestation and Optimist NFT to the participant’s specified address through a gasless transaction.
    • Faucet and NFT Customization Prompt: Participants are encouraged to use the faucet for larger drips and offered customization options for their Optimist NFT.
  3. Infrastructure

    • Create an EAS Resolver:
      • Use OP Mainnet EAS contracts as a base and register a new schema for the proof of attendance attestations to be created.
      • Develop a custom resolver smart contract for the EAS.
      • This resolver should have the functionality to only allow specific addresses to create attestations. This can be implemented using a modifier that checks whether the caller's address is in a list of authorized addresses.
    • Maintain an Address Mapping:
      • Inside the custom resolver contract, include a mapping structure (e.g., mapping(address => bool)) to track addresses that currently have the proof of attendance attestation.
      • Implement onAttest and onRevoke hooks within the resolver. These hooks will update the mapping whenever an attestation is created or revoked, respectively.
    • Update OptimistAllowlist.sol:
      • Modify the OptimistAllowlist.sol contract to interact with custom resolver.
      • Add a function to check whether a user is eligible for the Optimist NFT based on their attestation status in the resolver contract.
    • Implement Auto-Minting:
      • Use Multicall3 to combine multiple operations in a single transaction.
      • The transaction would first create the attestation and then call the mint(address _recipient) function on the Optimist NFT contract.
    • Deploy and Test:
      • Deploy the resolver.
      • Thoroughly test the entire flow, including attestation creation, address mapping updates, eligibility checks, and the auto-minting process.
    • Integrate with Frontend/UI:
      • Update frontend application to interact with these contracts.
      • Ensure that users can easily view their attestation status and receive their Optimist NFT if eligible.
  4. Testing Frameworks: Development of unit and integration tests for each module to ensure reliability.

Note: We have added new features to the RFP such as event analytics and online event support as well as multiple methods for in-person events so that the Optimism Foundation can use this application in any hackathon or event!

Technical Specifications

Frontend:

  • Next.js
  • Shadcn-UI: Components built with Radix UI and Tailwind CSS.
  • React-Hook-Form: Form Validation
  • Zod: TypeScript-first schema validation with static type inference.
  • TypeScript
  • Vercel

Backend:

  • MongoDB
  • Hardhat
  • Solidity

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

# Milestone Deliverables Estimated Date of Completion
1. Implementation of Organizer Portal 1.Organizer Portal January 17, 2024
2. Implementation of Infrastructure 3.Infrastructure February 2, 2024
3. Implementation of Participant Interaction and Testing 2.Participant Interaction, 4.Testing Frameworks February 28, 2024

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

  • Implementation of Organizer Portal - January 17, 2024
  • Implementation of Infrastructure - February 2, 2024
  • Implementation of Participant Interaction - February 22, 2024
  • Application testing and deployment - February 28, 2024

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

  • During the development process, we may need to discuss with the Optimism Foundation team to clarify any application flow questions that may arise.

Grants are awarded in OP, locked for one year. Please let us know if access to upfront capital is a barrier to completing your Mission and you would like to be considered for a small upfront cash grant: (Note: there is no guarantee that approved Missions will receive up-front cash grants.) We do not need upfront capital to do this.

  • No upfront financial support is required.

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

@ryan-foamspace
Copy link

Foundation Mission (RFP) Application

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

FOAM is building a Proof of Location protocol for onchain location proofs. We have shared work on our MVP of smart contracts and frontend being built on the OP Stack. We have many years of experience building frontend and backend systems, as well as writing firmware and integrating hardware into Ethereum smart contracts and user flows.

Additional previous work that is relevant for this application is:

  • The FOAM Map is a a dApp running on Ethereum
  • The FOAM Lite gateway and user transmitter, a part of this application, was built, documented and distributed at ETH Denver 2022.
  • CryptoKitty Monitor, a frontend for viewing NFTs as they are minted
  • Kepler a Haskell Implementation of the Cosmos SDK

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

  • Our Alliance is best- suited to execute this Mission because we are already working on Proof of Location and have many pieces already developed to fulfill this RFP for a Proof of Attendance Testnet Faucet .

    For example, through our work with the OP Stack and running a custom rollup we have experience developing faucet flows for various OP testnets that include a user pairing their keypair to a mobile radio transmitter. Additionally, a subset of the Proof of Location protocol called FOAM Lite can already support gasless attestations and the minting of NFTs.

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

  • Our proposed solution is to change the user flow and remove the scanning of QR codes with smart phones. In its place we propose utilizing a FOAM Lite gateway and mobile transmitters for end users. This increases sybil-resistantance and builds a more robust way of verifying attendance.

    The FOAM Lite gateway is a built with the LoRa radio, a long range and low power internet of things device. FOAM Lite has firmware for it to serve as an Ethereum relayer and can decode and recover Ethereum signatures over the air from mobile transmitters and relay the necessary information onchain.

    In our proposed solution a single FOAM Lite gateway will be set up at the OP booth for each event. Additionally, Optimism branded mobile transmitters will be made available at each event for developers that require larger drips from the faucet, supported by this grant.

    Developers will then be able to link their mobile transmitter to their Ethereum address by completing a challenge protocol. Developers will then be able to send a signed transaction over the air that can be received, decoded and relayed onchain by the FOAM Lite gateway. From here developer get a proof of attendance attestation and Optimist NFT minted to their specified address and will be directed to the faucet.

    Further, our proposed solution includes a open source frontend for both developers to go through this user flow as well as an Admin portal for setting up this user flow for each event and analytics that can display the number of attestations (by distinct addresses) that are triggered through this interface.

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

  • Step 1: Create an EAS Resolver and smart contracts that are dependent on integrations with the FOAM Lite relayer that will relay incoming attestations from developers mobile transmitters. FOAM Lite will maintain a mapping of all attestations relayed onchain to the resolver, update OptimistAllowlist.sol and auto mint the OptimistNFT . (1 week)
  • Step 2: Modify existing user frontend flow and challenge for pairing and ingesting a mobile nodes signature to their desired Ethereum address and prepare this frontend to be part of the
    open source frontend for the RFP. (1 week).
  • Step 3: Implement Admin organizer front end page for each hackathon and Admin user flow for setting up the FOAM Lite gateway to the EAS Resolver. (2 weeks)
  • Step 4: Implement Developer facing frontend for seeing their attestations and NFTs as well as integration with the different testnet faucets. (1 weeks)
  • Step 5: QA testing and implementing feedback (1 week)

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

  • Critical Milestone 1: February 1st, 2024, core engineering work complete demonstrated by an open source repo of relevant code.
  • Critical Milestone 2: February 15th, frontends and Admin portal complete and added to the open source repo.

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

  • We would be interested in discussing additional support for producing mobile transmitters to be distributed to developers.

Grants are awarded in OP, locked for one year. Please let us know if access to upfront capital is a barrier to completing your Mission and you would like to be considered for a small upfront cash grant: (Note: there is no guarantee that approved Missions will receive up-front cash grants.)

  • We would be interested in discussing a cash grant as well as a reduced grant amount for capital that be used explicitly for producing mobile transmitters to be distributed to developers prior to the one year lockup.

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

@Cotabe
Copy link

Cotabe commented Dec 8, 2023

Foundation Mission (RFP) Application

Alliance Lead: Yazdani
Contact info: yazdaaniam (Telegram)
L2 recipient address: 0x30158Fa32BE373347E77b5A8f079d617D407f83c

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

This project will be executed by the Unitap team alliance, an onboarding tool to networks and communities with a Sybil-resistant mainnet gas faucet, token distribution mechanism based on onchain & offchain activity and soon a learning platform.

Name and role of alliance member(s)

  • Ali Lari - Founder Unitap, PM, treasury manager and businessman.
  • Adam Stallard - Founder of BrightID, Clr.fund & Unitap. CTO at Bright ID. Steward Gitcoin.
  • Phillip Silva - Founder of BrightID & Unitap, CPO at BrightID. Director Hedge for Humanity.
  • Bastin (backend and contract dev) - He’s been working as a developer for more than 5 years https://github.com/mohamadbastin

Our team additionally consists of:

  • 3 back-end and contract dev
  • 2 font-end dev
  • 2 UI/UX designer
  • 2 Biz dev

We are also very proud of having amazing advisors.

  • Griff Green - Advisor - Twitter: @thegrifft
  • Superphiz - Advisor - Twitter: @superphiz
  • Auryn - Advisor - Twitter: @auryn_macmillan

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

  • Our alliance has been building & delivering high-quality products in the blockchain space for 5+ years and founded/contributed to reputable projects like BrightID, Unitap and Clr.fund.
  • We have been building Unitap (https://unitap.app/) since 2022.
    • We have deployed 18+ Sybil-resistant mainnet faucets & some testnet faucets in different networks including Optimism.
    • We developed Token Tap & Prize Tap for Unitap. These are two token distribution mechanisms for any kind of token based on offchain & onchain activity. We are soon to launch the provider dashboard to manage the minting & distribution of tokens.
  • We have vast experience building Sybil-resistance solutions based on our work building, integrating & maintaining BrightID, Aura and Unitap.

All the previous reasons show that we have the technical capacity and the experience to create this “Proof of Attendance” mechanism.

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

Our solution takes into consideration 2 different scenarios:

  1. If the event admin has access to the email addresses of the participants:
    The admin can add a file with the emails & the platform will send hackers an email with a unique URL. Once they click on the link, hackers will get to a site where they will need to paste their address/ENS & be redirected to the Superchain faucet. Then they'll receive the Proof of Attendance attestation & Optimism NFT.

  2. If we don't have the email addresses of the participants:
    A screen (monitor/Laptop) will be needed to show a dynamic QR code that changes each time a person use it to go to the page to attest their Proof of Attendance & get their attestation & Optimism NFT.

The solution will follow the proposed implementation:

Proposed implementation of proof of attestation / auto-minting the Optimist NFT:
Create an EAS resolver that restricts ability to create this attestation to specific addresses
This resolver should maintain a mapping(address => bool) of everyone who currently has this attestation using the onAttest and onRevoke hooks
Update OptimistAllowlist.sol to check the resolver contract to see if user is eligible
Auto-mint feature: Automatically mint the Optimist NFT to users who have the proof of attendance attestation
Option 1: The resolver should do the above, then directly mint the NFT
Option 2: Use multicall3 to 1. Create the attestation, 2. Use function mint(address _recipient) function on OptimistNFT in a single transaction<

Bonus features:

  • We will integrate the Superchain test networks to Gas Tap & check the same requirements that the Superchain faucet. Either connecting it with the same smart contract or creating a new one. This would increase the resiliency of the Superchain faucet system & prevent a single point of failure.
  • We will integrate the Optimism NFT as an eligible requirement to Token Tap and Prize Tap on Unitap. Allowing booth administrators to run incentive programs & raffles based on onchain activity including minting an Optimism NFT.

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

  1. Agree on the final specifications with OP Labs or Optimism Foundation Sponsor: Zain.
  2. Design the admin, event & hackers page.
    I. Admin page: Site to create & edit events by the maintainer.
    II. Event page: Site that shows the Dynamic QRs.
    III. Hackers page: Site where hackers add their address/ENS to claim their Optimism NFT.
  3. Get feedback on these 3 pages from OP Labs or Optimism Foundation Sponsor: Zain.
  4. Start implementing the front-end and simultaneously work on the contract and back-end.
  5. Internal test phase.
  6. Launch the platform

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

Milestone Source of truth Date
Design: Admin, hackers & event page Figma page January 10th, 2024
Functional admin page Vercel site January 19th, 2024
Functional hackers page Vercel site January 26th, 2024
Functional event page Vercel site February 2nd, 2024
EAS integration & NFT auto-minting Integrated on hackers vercel site February 9th, 2024
Launch the platform Fully functional platform February 23rd, 2024

Note: These dates assume starting the project by December 18th, 2023.

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

  • Regular check-ins to refine specs and scope.
  • QA & Feedback once milestones are reached.

Grants are awarded in OP, locked for one year. Please let us know if access to upfront capital is a barrier to completing your Mission and you would like to be considered for a small upfront cash grant: (Note: there is no guarantee that approved Missions will receive up-front cash grants.)

We would like to be considered for a 2K grant after we deliver the final milestone. However, failing to get it wouldn’t be an impediment to deliver on the RFP.

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

@zainbacchus
Copy link

Thank you for your submission!! We'll review and revert with next steps!

In the meantime, feel free to tag me here or reach out directly (zain@opabs.co) with any questions.

@zainbacchus
Copy link

Wow! There's some excellent proposals here!

We're excited to share that we will be moving forward with the proposals from Jomo given their domain expertise building offchain attestation related products.

@cdpiano we will be in touch directly to kick off the project and discuss expectations in more detail.

For all other teams here: we'd love to help you find the right way to contribute to the Optimism Collective. See the rest of the issues in the Ecosystem Contributions repo for ideas, suggestions, and other possible projects. One that might be interesting is #117

Thank you again for your proposals!

cc @mendesfabio , @justmert, @Cotabe , @ryan-foamspace

@chcharcharlie
Copy link

Status update (start - 20240320)

@oplavande oplavande changed the title RFP: Proof of Attendance Testnet Faucet Foundation Mission Request: Proof of Attendance Testnet Faucet Apr 4, 2024
@zainbacchus
Copy link

Quick update - after syncing with the OpenLayer team (fka Jomo) we've aligned to remove the requirement to issue an Optimist NFT and use the Superchain Faucet schema as the authentication method for developers to get larger drips from the Superchain Faucet.

The product should issue attestations using this schema with the following info:
- additionalData: Should be your team’s name (eg OpenLayer - {event}, etc.)
- Recipient: Public address of the user you’re issuing the attestation for
- Expiration time: Set the expiration time to be 7-days after issuance

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.
Projects
Development

No branches or pull requests

9 participants