zkPassOfficial / Eco-Bounty-Program

The zkPass Eco Bounty Program invites developers to enhance and expand the zkPass ecosystem through RFPs, strengthening its position as a leading privacy-preserving oracle protocol.
Apache License 2.0
1 stars 0 forks source link

RFP: Schema Development for Web Data Integration #1

Open pudgyteddy opened 2 months ago

pudgyteddy commented 2 months ago

RFP: Schema Development for Web Data Integration

Introduction

zkPass is a privacy-preserving oracle protocol that leverages zkTLS (3P-TLS and zero-knowledge proofs) to enable verifiable and private data sharing from various web data sources. This Request for Proposal (RFP) invites developers to participate in hackathons or bounty programs to create custom schemas that will expand zkPass’s ability to integrate diverse web data sources.

The main objective of this RFP is to enhance the zkPass ecosystem by enabling the integration of various web platforms, including financial services, e-commerce, social media, and more. Successful submissions will be rewarded based on the complexity and value of the integration.

Background

zkPass utilizes zkTLS to securely and privately verify web-based data, such as identities, financial information, and social media profiles, for use in on-chain applications. The core functionality of zkPass relies on integrating various data sources through schema mappings. Developers are invited to create custom schemas that will allow zkPass to interact with a broad range of data sources.

This RFP seeks developers who can adhere to zkPass's guidelines to build schemas for attestation and private data verification from web platforms, thereby enhancing zkPass’s integration capabilities.

Requirements

Participants are expected to:

Technical Requirements

Submission Requirements

To be considered, your proposal must include:

Schema Example

Developers have the flexibility to create customized schema files tailored to their specific business needs. This enables them to fully leverage the capabilities of zkPass, ensuring seamless data verification from specified sources.

For example, a developer working on a decentralized Web3 job recruitment platform might want users to verify:

To achieve this, the developer can create two distinct schemas utilizing the APIs provided by Upwork and UOB Bank. To generate a valid schema, developers must adhere to the established schema standards.

Here's an example of a schema configuration in JSON format:

{
  "issuer": "Quora",
  "desc": "The platform to ask questions and connect with people who contribute unique insights and quality answers.",
  "website": "https://www.quora.com/stats",
  "APIs": [
    {
      "host": "www.quora.com",
      "intercept": {
        "url": "graphql/gql_para_POST",
        "method": "POST",
        "query": [
          {
            "q": "UserStatsContentQuery",
            "verify": true
          }
        ]
      },
      "assert": [
        {
          "key": "data|viewer|__typename",
          "value": "Viewer",
          "operation": "="
        }
      ],
      "nullifier": "data|viewer|uid"
    }
  ],
  "HRCondition": [
    "Quora Account Owner"
  ],
  "tips": {
    "message": "When you successfully log in, please click the 'Start' button to initiate the verification process."
  }
}

more schema examples

📃 Notes on the Schema Example

issuer: Name of the data source, such as Twitter, Discord, etc. desc: A detailed description of the schema. website: Webpage link containing the specified APIs that return the data requiring verification. When a user initiates verification, the TransGate extension will display this page in the browser tab. APIs: The RESTful APIs that return the specified data that needs to be verified. It is an array, meaning it can contain a series of APIs.

Evaluation Criteria

Submissions will be evaluated based on:

Application Instructions

To apply for this RFP, applicants are required to:

  1. Review Requirements and Deliverables
    • Thoroughly review all listed requirements and deliverables to ensure a complete understanding of the RFP's scope and objectives.
  2. Complete the Application Form
    • Fill out the application form below, including all requested information and schema proposals.
  3. Submit Your Proposal
    • Submit your detailed proposal in the specified format as a comment on this GitHub Issue.
  4. Seek Clarifications
    • If you have any questions or need further clarifications, please ask. We encourage you to seek any necessary information to fully understand the expectations and objectives of this RFP.

Proposals must be submitted as comments to this GitHub Issue.

Submission Form Template

👇 Please use the following template for your submission:

[Proposal Title]

Applicant Information:

Schema Proposal:

ijlal321 commented 1 month ago

Can you tell how to use body and header ? There isnt any example on that.

Also can you make the schema validator extension open source, it would make verifying schemas alot more easier and I would like to create on top of itt too. Seems intresting.

Also fyi i am tring to use this api in schema, but having difficulty adding payloads and headers in it. Also its return is a array, how can I access elements in array

image

ijlal321 commented 1 month ago

here are 10 schemas (fully working and tested using schema verification extension).

https://github.com/ijlal321/zkPass-Web-Integration-Schemas