-
Notifications
You must be signed in to change notification settings - Fork 3
Description
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:
- Develop custom schemas for integrating new web data sources with zkPass.
- Follow the schema creation guidelines provided in the zkPass tutorial examples.
- Ensure compatibility of schemas with zkPass's zkTLS protocol and attestation mechanisms.
- Submit high-quality, well-documented code demonstrating the integration of data sources such as financial institutions, e-commerce websites, social media platforms, gaming services, and more.
Technical Requirements
- Familiarity with the standard TLS protocol.
- Experience with API integration and schema mapping.
- Basic understanding of data privacy principles and compliance with zkPass's technical mechanisms.
Submission Requirements
To be considered, your proposal must include:
- A detailed explanation of the web data source you plan to integrate.
- A technical breakdown of how the schema will function within the zkPass framework.
- Clear code for the schema, ensuring ease of use and future scalability.
- Optional: A demo or test case showing how the schema works with a live data source. Click Developer Guideline and front-end-JS-SDK to learn how to create a demo.
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.
- host: The host for the API.
- intercept: Defines detailed information of the API. The TransGate extension will perform 3P-TLS for the API defined here.
- url: Absolute path for the URL of the API.
- method: HTTP method for the API.
- query: Refers to query parameters in the HTTP request header.
- key and value: Specify the key and value for the query. For instance, in the URL
https://...?needBalanceDetail=true
, it should be defined as"needBalanceDetail": "true"
. - verify: If the key and value need to undergo zero-knowledge verification, the value should be
true
orfalse
.
- key and value: Specify the key and value for the query. For instance, in the URL
- header: Refers to header parameters in the HTTP request header.
- key and value: Specify the key and value for the header. For instance,
header graphql-operation: AvatarMenuQuery
should be defined as"graphql-operation": "AvatarMenuQuery"
. - verify: If the key and value need to undergo zero-knowledge verification, the value should be
true
orfalse
.
- key and value: Specify the key and value for the header. For instance,
- body: Refers to the body in the HTTP request.
- key and value: Specify the key and value for the body.
- verify: If the key and value need to undergo zero-knowledge verification, the value should be
true
orfalse
.
- assert: Defines the verification conditions.
- key: Selector for the verified data field in JSON. Keys are separated by
|
. - value: The value is used for comparison with the data associated with the key defined above.
- operation: The assertion condition should be one of the following:
>
,<
,=
,>=
,<=
,!=
,in
,contains
.
- key: Selector for the verified data field in JSON. Keys are separated by
- nullifier: Selector for the unique identifier field in JSON in the data source, such as
uid
,id
, etc. - HRCondition: Descriptions for each assertion.
- tips: User tips which are displayed in the bottom right corner of the data source website.
Evaluation Criteria
Submissions will be evaluated based on:
- Adherence to zkPass Guidelines: Does the schema follow zkPass's schema creation guidelines and is it compatible with zkPass's zkTLS?
- Innovation: Is the data source unique or particularly valuable for zkPass’s ecosystem?
- Technical Quality: Is the code well-written, efficient, and easy to integrate into the existing zkPass infrastructure?
- Documentation: Is the schema clearly documented for future use and scalability?
- Feasibility: Can the schema be practically used with real-world data sources?
- Impact: Does the integration significantly enhance zkPass’s ecosystem by unlocking new use cases?
Application Instructions
To apply for this RFP, applicants are required to:
- Review Requirements and Deliverables
- Thoroughly review all listed requirements and deliverables to ensure a complete understanding of the RFP's scope and objectives.
- Complete the Application Form
- Fill out the application form below, including all requested information and schema proposals.
- Submit Your Proposal
- Submit your detailed proposal in the specified format as a comment on this GitHub Issue.
- 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:
- Name:
- Organization:
- Contact Email:
Schema Proposal:
- Data Source Name: [Provide a detailed description of the web data source you plan to integrate]
- API Endpoint URL: [Provide a valid link to the API endpoint that returns the data you will use, including server response details]
- Technical Breakdown: [Describe how the schema will function within the zkPass framework]
- Schema Code: [Include a valid JSON schema that outlines the integration. Ensure the schema is well-structured and supports ease of use and future scalability.]
- Optional - Demo/Test Case: [Include a demo or test case showing how the schema works with a live data source]