For reference, here’s the results of the analysis that my team did of the BTCPayServer Zcash Plugin back in 2023. More development work has been done since that analysis, of course, but I’ve bolded the information we gave then regarding multi-wallet and multi-store support:
- 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.
@artkor when you were telling me about all this and I was talking to my team about it, at first I was confused. But then it all made more sense to me after I went back to this analysis and remembered there are two separate issues: multi-wallet support AND multi-store support.