Organization Name
Sunny Allen and the team at Birdcalls
How did you learn about Zcash Community Grants
Zooko told us!
Requested Grant Amount (USD)
$150,000
Project Lead
Name: Sunny Allen
Role: Birdcalls CEO
Background: Sunny Allen is a serial entrepreneur with deep roots in the open source movement, citizen science, and makerspace/hackerspace culture. Now she leads the Birdcalls team building privacy-first software.
Responsibilities: Lead
- Name: Dr. Aeron Tynes Hammack
Role: Birdcalls Advisor
Background: Dr. Aeron Tynes Hammack is a scientist and software engineer with 25+ years programming and systems architecture experience, with a focus on quantum computing physics and bioinformatics as well as copious amounts of entrepreneurial experience.
Responsibilities: Advisor / Collaborator
- Name: The Architect
Role: Engineer
Background: The Architect is a software designer with 32+ years programming experience. They are a pragmatic street smarts privacy and security professional who has built multiple custom bitcoin payment systems using the bitcoin core API on the companyās own hardware.
Responsibilities: The bulk of this project will be on them.
Project Details
We propose to take over the BTCPay Zcash module.
Project Description
BTCPay is asking for someone from the ZCash community to take over the Zcash repository.
We propose to take this over, fix it, expand on it, and then document it so that it can be used by the majority of BTCPay merchants.
Proposed Problem
In 2023 we did an analysis of the BTCPay Zcash module and determined that there is zero chance a user without significant IT/dev experience will be able to get the current Zcash module for BTCPay working without new docs / changes to the code. Now BTCPay themselves are calling attention to these problems and asking for someone from the Zcash community to please come fix it.
Proposed Solution
Weāll take over the current repository, fix it according to both BTCPayās current asks and our analysis, expand on it, and throughly document it, so that the majority of BTCPay merchants are able to use it.
Solution Format
Deliverables:
-Ownership taken of the BTCPay Zcash repository
-Best-effort modifications and enhancements to the codebase
-Integration to the docker-compose deployment
-Proper documentation
-Nicholas Dorier is happier with ZCash
Dependencies
BTCPay
Technical Approach
Weāll fix all of these problems identified in our 2023 analysis as well as the critiques listed by BTCPay:
-
Thereās no ZCash section in the wallets area in BTCPay. All other currencies have them as a way to review your wallet / incoming payments / match up invoices / etc. The current implementation shows the ZCash address for purchase.
-
ZCash viewing key is essentially hard-coded into the docker compose file, instead of having a settings page in the admin area like all the other currencies.
-
There does not appear to be support for multiple ZCash wallets, like with other currencies.
-
No support for multiple stores (multiple stores must share the same wallet, as the ZCash plugin hard codes the wallet address into the container).
-
Thereās no setup process for ZCash wallets, like there is with other currencies (when creating a new store, other currencies ask you for wallet info and enable/disable currency support depending on how you provide it).
-
The method documented by Hanh is either incomplete or out of date, and requires using Hanhās custom containers and will not work (at least without modification) with non ZCash currencies. The method documented below includes replacement info / code that works with the most recent version of BTCPay and is compatible with other currencies.
-
The processes below are the result of a lot of trial and error due to poor / missing / outright incorrect documentation on both the parts of BTCPay and the ZCash plugin. There is zero chance a user without significant IT/dev experience will be able to get things working without new docs / changes to the code.
-
We were unable to find any functioning wallet that supports testnet, and so had to run a full zcashd node in order to get some testnet coins to run transactions through.
-
Running a testnet node does not appear to work. Thereās no official documentation for it, and although we did find a docker container by Hanh that is named as if it supports it, that container crashes immediately on startup. Since Hanh doesnāt mention it anywhere, weāre assuming itās something else.
Upstream Merge Opportunities
NA
Budget
$150,000
Weād like to justify this cost in terms of the overall potential benefit to the Zcash ecosystem. There are many merchants who use BTCPay, including Tesla and Namecheap. Many of these merchants may not be enthusiastic enough about Zcash to take the time to integrate an entirely new payment gateway just for the sake of supporting Zcash. But if the on-ramp is as easy as turning on another module for their existing BTCPay server, thatās a big win for Zcash.
For example, it would be such an easy win if ZCash were a payment option for Namecheap. Namecheap says theyāve taken in more than $73 million in crypto transactions since they implemented BTCPay, and theyāve specifically said theyād like to extend support for more BTCPay payment methods in the future. If ZCash were able to capture just 1% of just Namecheapās historical crypto revenues, that alone would represent an addition of $730,000 worth of ZEC transactions, which would represent a nearly five-fold return on investment for this grant. And there are other significant merchants who already use BTCPay. Thus we think this grant cost is more than justified due to its immediate potential to bring value to Zcash.
Previous Funding Details
We received previous funding from ZCG in 2023 in order to make an in-depth analysis of the BTCPay Zcash module. The accuracy of our analysis is now being echoed and confirmed by BTCPay as they ask for someone from the Zcash community to please come fix it.
Implementation Risks
NA
Potential Side Effects
NA
Success Metrics
This will be a success when the Zcash BTCPay module is able to be implemented by merchants.
Startup Funding (USD)
25,000
We think of this as good-faith funding. Once Birdcalls takes ownership of the BTCPay Zcash repository, our reputation will be on the line to both deliver the fixes and maintain them whether or not Zcash follows through on further milestone payments in the future.
Milestone Details
- Milestone: 1
Amount (USD): 125,000
Expected Completion Date: 2025-05-01
Deliverables: Usable BTCPay Zcash module