Hi Everyone We have updated our proposal based on feedback regarding the feasibility of the project. The proposal has been broken down a bit more and the feasibility component is now described in more detail within the section Execution Risks, we have also adjusted Milestone 1 - USD value of payout upon completion of deliverables:
Execution Risks
Another known issue that has been encountered in the past was due to throttling of the browser. This is not a well studied area and may possibly cause issues in the future. Thus, we will conduct a preliminary viability test to assess the challenges and possible blockers that may present an impasse. If such situation makes it impossible to make any more progress, the project will cease after the viability milestone.
Milestone 1 - USD value of payout upon completion of deliverables:
$35000.00
Any additional comments are welcome. Thanks!
ChainSafe Team
(see the full re-post, below)
Applicant name:
Daniel Choi
Do you have additional team members/collaborators?
Yes
Team member name:
Bernard Stojanovic
Do you have additional team members/collaborators?
Yes
Team member name:
Ivan Rubido
Do you have additional team members/collaborators?
No
Please upload an image for your public facing profile and proposal
logo.png
Pitch: A one-liner elevator pitch version of your proposal
Expanding the reach of the ZCash ecosystem by introducing an SDK that will allow for wider adoption and use.
Total Request (USD):
$300000.00 USD
Have you previously received a grant from Zcash Community Grants (formerly called ZOMG) or ZF?
No
Are you seeking or have you received funding from other sources for this proposed project?
No
DETAILS
If you have any questions please contact grants@zfnd.org.
Upload any relevant documentation regarding this project.
n/a
Applicant background:
ChainSafe [Organization] -
Established in 2017, the core business of ChainSafe Systems is software development consulting, specifically the research and development of blockchain protocols and products, including infrastructure and tools which enable the onboarding of new developers and novel use cases for blockchain technology. ChainSafe has worked to maintain stable alternative implementations, improve functionality and in turn adoption of some of the top protocols in the space such as Ethereum, Filecoin, and Polkadot - helping to create and secure over 230 Billion USD in combined value measured by market capitalization of these protocols. As part of ChainSafe’s commitment to fostering the growth and adoption of blockchain technology, they also build developer resources that serve as public goods - open source code libraries and tooling that ensures that Web3 infrastructure will be made from technology developed in Ontario. Strong proponents of open-source technology and community-oriented commercialization, and with accessibility and utility for developers as our primary objective - ChainSafe helps to produce and maintain core infrastructure the web3 ecosystem needs to succeed and serves the global web3 community.
Bero [Tech Lead] - An accomplished software engineer with a proven track record of success in the tech industry. Beginning in 2018, he joined a small agency where he quickly advanced to the role of Technical Lead. During his tenure at the agency, he worked on complex data visualization projects, honing his skills in Frontend Engineering. In 2020, he embarked on a new adventure by joining NodeFactory, where he continued to excel as a software engineer. His commitment to open source work and dedication to innovation led to a significant milestone in 2021 when ChainSafe Systems acquired NodeFactory. Following the acquisition, his focus shifted towards creating cutting-edge open source tools that have made a meaningful impact in the tech community.
Ivan Rubido [Developer] - 4 years of active web3 development experience. He began his journey at NodeFactory, working on a lot of dApps for various clients, such as Croatia National Post NFT platform and the Swap-Kiwi NFT dApp. For the following two years at Chainsafe, Ivan continued with consulting projects, statistics tools, dev tooling and maintained various Metamask snaps such as FilSnap and Polkadot Snap, and developed snaps for NEAR, Aleo, and Mina. His primary focus remains on ensuring user-friendly and secure applications and protocols. Ivan has amassed a profound understanding of blockchain technologies and standards
Daniel [Researcher] - Daniel is blockchain researcher who has been previously a blockchain developer. Daniel has over 7 years of experience in the blockchain field and has done both research and development for various projects. He has contributed to many projects including: Kademlia DHT Double hash implementation, gasless transaction solutions, Chainlink-Cosmos, Ethermint, Polymath wallet, and testing. Currently, his areas of focus for research are ZKs, wallet and smart contract security, and Ethereum-related protocols.
Description of Problem or Opportunity:
Currently in the ZCash ecosystem, there is no convenient way for a developer to implement a web-based application to incorporate ZCash payments. With the implementation of a ZCash SDK in typescript, developers will have the ability to integrate ZEC payments and allow users to interact with the chain. Subsequently, this will potentially expand the reach of the ZCash project and bring in an audience for wider adoption. The SDK will also open up opportunities to implement a ZCash Snap and subsequently web-based wallets.
Proposed Solution: Describe the solution at a high level.
The purpose of this proposal is to add value to the Zcash ecosystem by implementing and maintaining a TypeScript SDK for enabling more Zcash capabilities in the browser. This proposal should provide ground work and a feasibility test for the development of a Zcash MetaMask Snap along with a Web wallet that would utilize said snap as a secure enclave for user keys. Enabling millions of MetaMask users instant access will help significantly with Zcash adoption and usability. The SDK will also bring in opportunities for general web-based wallets (web wallet, extensions, electron applications, etc), that go beyond the scope of Snaps. This document is focused on the initial portion of this vision: the design, implementation, and support of a JavaScript SDK for interacting with the Zcash network.
Solution Format: What is the exact form of the final deliverable you’re creating?
This proposal covers a set of deliverables: the SDK itself, SDK tests & documentation, and examples that demonstrate the use of the SDK from both client- and server-side environments.
Technical Approach: Dive into the how of your project. Describe your approaches, components, workflows, methodology, etc. Bullet points and diagrams are appreciated!
We will use monorepo approach with typescript, with it we will able to modularize parts of code for future proofing and customization. With it we will keep KISS and Fasade approach to building API’s.
Dependencies: What external entities is your project dependent on? What involvement is required from ZF, ECC, and/or other external organizations? Who would have to incorporate your work in order for it to be usable?
A couple dependencies that may affect development is librustzcash and halo2. Our team will rely on some pieces of code that will assist our process with WASM compilation and may require those involved in. The lightwalletd team to provide assistance (if any) when required.
Execution risks: What obstacles do you expect? What is most likely to go wrong? Which unknown factors could jeopardize success? Who would have to incorporate your work in order for it to be usable?
The biggest concerns will be our dependencies (librustzcash and halo2) and compatibility with wasm, in case of incompatibility we will slow down the first deliverable.
Another known issue that has been encountered in the past was due to throttling of the browser. This is not a well studied area and may possibly cause issues in the future. Thus, we will conduct a preliminary viability test to assess the challenges and possible blockers that may present an impasse. If such situation makes it impossible to make any more progress, the project will cease after the viability milestone.
Unintended Consequences: What are the negative ramifications if your project is successful? Consider usability, stability, privacy, integrity, availability, decentralization, interoperability, maintainability, technical debt, requisite education, etc.
If the project is a success there would be occasional maintenance and potentially future upgrades to be considered. If there are future upgrades to any dependencies listed in the previous section above, there may be breaking changes to the SDK implementation. This will require maintainers to stay up-to-date with the developmental process of related dependencies and understand the compatibility issues and make any fixes as needed.
Evaluation plan: What metrics for success will you share with the community once you’re done? In addition to quantitative metrics, what qualitative metrics will you commit to report?
The metrics that we can provide include monthly SDK downloads. On the qualitative side, we will gather user feedback when it comes to installation time and ease of use.
Budget
- Please provide the total amount of funding requested for each major heading (Hardware/Software, Services, Compensation) with a detailed explanation regarding how that budget was determined. The total of these three sections should add up to the total funding request amount. The clarity of this section will enable the review committee to quickly understand your reasoning for the funding requested.
- The “Compensation” explanation should include who is being paid, how much they’re being paid (hourly, monthly, full project, etc.), and how each compensation figure was determined.
Hardware/Software total budget:
$0.00 USD
Please provide justification for the total hardware/software budget:
N/A
Services total budget (cloud, hosting, etc.):
$0.00 USD
Please provide justification for the total services budget:
N/A
Compensation total budget:
$300000.00 USD
Please provide justification for the total compensation budget:
-
1 Technical Lead
-
1 FTE Engineers
-
.5 Research Engineer
-
.5 Project Manager
-
Overhead fees (this includes any additional costs such as the research involved in the initial scope of work, marketing, and senior management advisory for the duration of the project)
Schedule and Milestones: What is your timeline for the project? Include concrete milestones and the major tasks required to complete each milestone.
- Milestones, and the deliverables associated with each milestone, are required for every project. Completed milestones trigger a review of all the deliverables associated with that milestone which leads to a release of funds. Please note that payment will only be made upon successful completion of all the deliverables associated with each milestone, not prior to the milestone being completed. Deliverables show progress toward grant completion and must be verifiable.
- Each milestone may have multiple deliverables. A deliverable describes the specific outcome that will be evaluated by ZF/Zcash Community Grants committee when determining if a milestone has been achieved. Deliverables must be specific and verifiable. When writing deliverables ask yourself, “How will ZF/the committee evaluate the success or failure of this deliverable?”
Example Scenario:
- Your project is requesting no upfront payment and two milestones (Milestone 1 and 2) with three deliverables (Deliverables 1.1, 1.2, 1.3, 2.1, 2.2, 2.3) under each milestone. You are estimating that it will take three months to complete the deliverables under each milestone. Three months pass and you’ve successfully completed the three deliverables under milestone 1. You are then eligible to request review and payment for Milestone 1. The same applies for Milestone 2, etc.
- A lack of deliverables in your proposal, or vaguely written deliverables, will cause your proposal to be rejected. Please direct any questions regarding milestones and deliverables to grants@zfnd.org.
Do you require startup funding?
No
Milestone 1 - estimated completion date:
03/31/2024
Milestone 1 - USD value of payout upon completion of deliverables:
$35000.00
Deliverable 1.1
Feasibility Study
Enter additional deliverables for Milestone 1?
No
Enter additional Milestones?
Yes
Milestone 2 - estimated completion date:
04/15/2024
Milestone 2 - USD value of payout upon completion of deliverables:
$110000.00
Deliverable 2.1
Account APIs & Provider APIs
Enter additional deliverables for Milestone 2?
No
Enter additional Milestones?
Yes
Milestone 3 - USD value of payout upon completion of deliverables:
$80000.00
Milestone 3 - estimated completion date:
05/15/2024
Deliverable 3.1
Synchronizer
Enter additional deliverables for Milestone 3?
No
Enter additional Milestones?
Yes
Milestone 4 - USD value of payout upon completion of deliverables:
$75000.00
Milestone 4 - estimated completion date:
06/15/2024
Deliverable 4.1
Utility APIs, Testing & Documentation
Enter additional deliverables for Milestone 4?
No
Enter additional milestones?
No
Total proposed USD value of grant:
$300000.00 USD
How was the project timeline determined?
The software project timeline is determined by breaking down tasks, considering available resources, and estimating how long each task will take. It involves planning for uncertainties, adjusting as needed, and keeping everyone involved in the loop.