Last updated 4 months ago
It can be difficult for new devs to understand how to properly mint and transfer shielded tokens to/from contracts, as well as how to make good use of the witnesses and private state.
A reference dApp showcasing a real use case for witnesses and private state to protect users data through asymmetric encryption, utilising shielded tokens to demonstrate a 3-party escrow system.
Please provide your proposal title
A privacy-aware three-party escrow dApp with shielded tokens
Please specify how many months you expect your project to last
3
Please indicate if your proposal has been auto-translated
No
Original Language
en
What is the problem you want to solve?
It can be difficult for new devs to understand how to properly mint and transfer shielded tokens to/from contracts, as well as how to make good use of the witnesses and private state.
Does your project have any dependencies on other organizations, technical or otherwise?
No
Describe any dependencies or write 'No dependencies'
No dependencies
Will your project's outputs be fully open source?
Yes
Please provide here more information on the open source status of your project outputs
MIT License
Please choose the most relevant theme and tag related to the outcomes of your proposal
Education
What is useful about your DApp within one of the specified industry or enterprise verticals?
Developers which are new to Midnight will find it hard to understand how to use all the concepts this application demonstrate by putting them all together in a single real world use case.
It will help developers to learn how to seamlessly integrates these advanced cryptographic techniques to address real-world challenges, providing a robust framework for privacy-centered solutions in various sectors, such as finance, identity verification, and secure communications.
What exactly will you build? List the Compact contract(s) and key functions/proofs, the demo UI flow, Lace (Midnight) wallet integration, and your basic test plan.
The following flow is the main use case this dApp will be showcasing:
In addition to that flow, users can mint shielded tokens which are neeed for the application.
How will other developers learn from and reuse your repo? Describe repo structure, README contents, docs/tutorials, test instructions, and extension points. Which developer personas benefit, and how will you gauge impact (forks, stars, issues, remixes)?
Developers will be able to clone or cherry-pick the codebase from the different components to be delivered by this app:
Please describe your proposed solution and how it addresses the problem
A reference dApp and a set of Compact circuits which showcases:
Please define the positive impact your project will have on Midnight ecosystem
Reduce the amount of time developers, specially those who are new to the Midnight technology and development stack, or smart contract development, need to invest in order to understand, implement and deploy a dApp on Midnight for a real world use case, removing the expected and usual frustrations this implies for them at the very begining.
Being able to see how all these features are put together to create a real world application, such as a 3-party escrow decentralised marketplace with shielded tokens, should help developers to onboard onto Midnight development.
What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?
I have been a Software Engineer for 20+ years working on different technologies and programming languages (you can check my linkedin profile). A few months ago I started with smart contract development, I've been participating in a couple of hackathons delivering a couple of fully functional dApps which led me to understand the concepts and implementation details for the reference application I'm proposing to create:
Please provide a cost breakdown of the proposed work and resources
Contract Source Code
Description: Smart contract code that will form the core logic of the application.
Estimated Cost: $USDM 2000
Functionality: Implementing all features described, i.e. shielded tokens minting, 3-party escrow system, marketplace functionality, shielded identities, asymmetric encryption through witnesses.
Contract Automated Tests
Description: Automated testing scripts for the smart contract to ensure functionality and reliability.
Estimated Cost: $USDM 1500
Test Coverage: Writing comprehensive tests for all contract circuits.
Continuous Integration Setup: Setting up CI/CD pipelines for automated testing.
ZK Witnesses Code Implementation
Description: Implementation of ZK witnesses and example private state management to facilitate asymmetric encryption.
Estimated Cost: $USDM 1300
Witnesses Logic: Development of the witnesses logic for zk-proofs.
Backend Integration and CLI
Description: Integration of the backend with the contract, including APIs and utility wrappers for calling contracts and proof-server endpoints.
Estimated Cost: $USDM 1500
API Development: Building APIs for frontend interaction.
Utility Wrappers: Simplifying contract calls for easier usage.
CLI: basic CLI to showcase the main use cases.
Web-Based UI for Feature Demonstration
Description: A user-friendly web interface to demonstrate the features exposed by the smart contract and witnesses, built using React and TypeScript, including components, modals, and the main app.
Estimated Cost: $USDM 2000
Components: Development of reusable UI components.
Usability Design: Ensuring the UI is intuitive and easy to navigate.
Integration & Responsiveness: Ensuring the UI is responsive and integrates well with backend services.
How does the cost of the project represent value for the Midnight ecosystem?
By significantly reducing the time developers need to comprehend, implement, and deploy a dApp with the showcased features, we will encourage sustained investment in the Midnight platform. This streamlined approach not only enhances individual engagement but also empowers developers to invite colleagues, coworkers, and friends to explore Midnight. Consequently, this collaborative effort can ignite the development of next-generation applications on this innovative network, while also fostering community growth and involvement.
I confirm that the proposal clearly provides a basic prototype reference application for one of the areas of interest.
Yes
I confirm that the proposal clearly defines which part of the developer journey it improves and how it makes building on Midnight easier and more productive.
Yes
I confirm that the proposal explicitly states the chosen permissive open-source license (e.g., MIT, Apache 2.0) and commits to a public code repository.
Yes
I confirm that the team provides evidence of their technical ability and experience in creating developer tools or high-quality technical content (e.g., GitHub, portfolio).
Yes
I confirm that a plan for creating and maintaining clear, comprehensive documentation is a core part of the proposal's scope.
Yes
I confirm that the budget and timeline (3 months) are realistic for delivering the proposed tool or resource.
Yes
I Agree
Yes
Gabriel Viganotti: solo software developer
GitHub: https://github.com/bochaco
Linkedin: www.linkedin.com/in/gabrielviganotti