Hi, Zcash forum! Here’s our exploratory phase deliverable, as well as what we’ll be submitting for the second phase of this grant proposal.
Birdcalls Zcash Community Grant Part A Deliverable
Contents
Birdcalls Analysis of Hanh’s Zcash module for BTCPay
Our Conclusions
Visual Illustration
Revised Timeframe
Hanh Unit Time Conversion to USD
Revised Financial Requests, Total: $245,600
Revised Milestone Payout Requests
Birdcalls Analysis of Hanh’s Zcash module for BTCPay
Pros
- Currency data appears to work with ZCash, ZEC<->USD for example appears to work.
- Payment pages contain ZCash option, and choosing that option generates a ZCash QR Code.
Cons
- 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. Currently stuck on this item & decided to end this analysis here; we now know enough to move forward.
Our Conclusions
- 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.
- The previous timeline suggested in our original proposal is more than justified.
Here’s how we’re thinking about this visually:
Revised Timeframe
- In honor of the fact that we’re building on a Hanh project, we propose that we normalize our units of time in terms of ‘Hanh effort’
- Fixing/Building Zcash BTCPay for the needs of Birdcalls: 0.25 Hanh units
- Fixing/Building/Documenting Zcash BTCPay for the needs of less experienced developers: 1.25 Hanh units
Hanh Unit Time Conversion to USD
- 1 Hanh unit = 3 months (the amount of time Hanh spent to get the original Zcash BTCPay module running) = $120,000 USD from Zcash community grants (c.f. Payment Gateway - BTC Pay)
- 0.25 Hanh units x $120k USD = $30k
- 1.25 Hanh units x $120k USD = $150k
Revised Financial Requests, Total: $245,600
- Fixing/Building Zcash BTCPay for Birdcalls: $30k
- Fixing/Building/Documenting Zcash BTCPay for the needs of less experienced developers: $150k
- Services: $600 new cloud server $50/month
- Audit & accounting: $5,000
- Legal: $60,000
Revised Milestone Payout Requests
Startup Funds: $60,000
Milestone 1: $120,000
- Repository in GitHub w/ documentation
- pull request to BTCPay with best-effort modifications and enhancements to Hanh’s code that support more configurations to the BTCPay UI so that a much less experienced developer can get it working and use it much easier
- Submit request to BTCPay to include Zcash on their list of supported alt-coins
- Documentation of legal’s assessment of how to move forward w/ private payment processing in good regulatory compliance
Milestone 2: $35,600
- Our Internet Phone Booth coin slot is active; people can pay for Birdcalls using Zcash
Milestone 3: $30,000
- 1 year of repository maintenance
Again, it’s such a pleasure to be collaborating with Zcash. Here at Birdcalls, we care about making privacy-focused tools for the sake of contributing to the landscape of non-extractive, public good technologies. Ultimately, it’s about healthy societies.
For reference again, here’s what we make:
- https://birdcalls.is (full calling functionality unlocked via registering for an account)
- https://internetphonebooth.com (free 40 minute peer-to-peer encrypted calls, usable in browsers)
- https://anonymousinternetphonebooth.com (free 40 minute peer-to-peer encrypted calls, sandboxed to our app for screenshot prevention tools)
Best,
Sunny @ Birdcalls