Development resources at your finger tips
Build with the coolest Web3 projects
Recurring funding for Open Source
Ethical ads to power Open Source
Learn about Web3 & earn rewards
Show appreciation for each other
Meet fellow developers, designers, futurists and more. Collaborate and BUIDL awesome projects together.
Discover great web3 organizations, work on meaningful projects and build relationships with like minded people. Browse Tribes
Meet the top hunters and contributors from our community.
Aloha, Gitcoiners! How do you feel about Data Dignity, Quadratic Voting, Quadratic Finance and Decentralized Identity?
KERNEL is an 8-week, invite-only program for top tech talent looking to build relationships, products, and companies in blockchain and Web 3. 100 tal…
Type in [[ 2- term.length]] more characters to get results
[[ result.title ]]
[[ result.description | truncate(70) ]]
No matches found
Gitcoin is GDPR complaint. Learn more in
Gitcoin's Terms & Conditions.
Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
Enigma Secret Contracts enable apps to compute over encrypted data. One simple use-case for this is “secret benchmarking”. This is a database of encrypted data that allows users to compare data they have access to with other data sets. For example, a database of 500 quotes for a service. A user could submit a quote she received, and get back which percentile her quote falls within (i.e., more expensive than 90% of other quotes). [Note: this use-case is similar to "secret Data Validation", but with additional complexity.]
## Solution Description
This solution should deploy a contract that accommodates two types of users: data providers, and data users. A data provider should be able to submit a list of values (Id, hours, rate). A data user should be able to submit a single value (Id, hour, rate). The contract should encrypt and return the percentile within which the data user’s value falls.
This will involve:
- Writing a Secret Contract in Rust and deploying it to the Enigma Discovery network that handles the logic for the application and functions as the encrypted storage.
- Using the Enigma-JS client to encrypt and transmit the data provider’s dataset to the secret contract.
- Using the Enigma-JS client to encrypt and transmit the data user’s datapoint to the secret contract, receive the correct output and successfully decrypt the result locally.
- Creating two UIs: for data providers, and data users.
## Implementation Details and Data Flow
1. Data Provider (user A) submits a dataset with [task ID, hours, rate] via an UI. [Note: this can be filler data, but should resemble something like: 4353 (ID), 32 (total hours), 123 (hourly rate)] Data Providers should be able to enter a "task name" to title the data set.
2. Dataset submitted by Data Provider is encrypted via Enigma-JS and submitted to the secret contract (which functions as the data storage in this example-- dataset should not be overly large).
3. Data Users (user B) select the "task name" from a list in a UI (for example, Generic Security Audit).
4. Data Users are prompted to submit quote data via the UI.
5. Data user data is encrypted via Enigma-JS and submitted to the secret contract.
6. The secret contract should compare the Data user B submitted with User A's dataset, and determine what percentile User B data is within.
7. The percentile result should be encrypted for User B, and returned.
8. User B should be able to receive and decrypt the result in their UI.
## Other Deliverables
- Migration scripts (if required)
- Integration tests
A running application, which should have a simple React-based UI (or similar), enable the solution, and handle failure (i.e., displays a meaningful message when improperly formatted data is submitted).
## Bounty Selection
For this first bounty round, the process works as follows:
1. Developer / team submits a **“pre-submission for approval”** for a bounty
2. Enigma reviews submissions, and selects an applicant (we don’t have a firm timeline for this, but hope to work quickly)
3. Applicant completes the task satisfactorily and receives the bounty
If the task is not completed, or applicant is unable to continue work in a timely manner, Enigma will select another applicant.
To complete a pre-submission for approval,
First, comment on this issue within github and indicate your interest. Then, please also complete [this application form. ](https://airtable.com/shrN7Bu95f3R21XKx)
These materials should help you get started:
[Enigma Discovery Documentation
[Developer Quickstart Guide](https://blog.enigma.co/the-developer-quickstart-guide-to-enigma-880c3fc4308)
[Secret Contracts Walkthrough](https://blog.enigma.co/getting-started-with-enigma-an-intro-to-secret-contracts-cdba4fe501c2)