Hello @machinesunmachine!
Thank you for raising this topic here. Both I personally and ZCG as a whole definitely support any efforts focused on developing payment solutions for Zcash. (If you look ahead, you can also find this reflected in today’s ZCG meeting minutes.)
It really feels and in fact it truly is the case that Zcash is currently far behind the expected curve when it comes to real merchant adoption and the size of the active merchant list. Still, this is something we can catch up on. BTCPayServer Plugin (and I think it is very important to explicitly highlight @hanh’s contribution here) and ZGo (thank you @pitmutt!) are already quite good tools for experienced users. At the same time, in my view, they are still not good enough for capturing a much broader target audience.
Regarding the BTCPayServer plugin and the idea of multi-store support. At the moment, the plugin supports only a single wallet. Even if there are multiple accounts on one server, only the first one can configure a wallet, since the plugin is installed only for the first account. All other accounts work only with the Bitcoin part, and the Zcash plugin is not available to them at all.
Why does this matter at all? Let’s say I run a small shop and I want to accept crypto, but I have absolutely no familiarity with things like Docker and so on. I know nothing about them. This means I cannot quickly set this up without the help of a specialist. This is a clear accessibility barrier. But what if we launch a shared public server for such shops? A standard BTCPayServer hosted by the Zcash community. Merchants would simply go to the Zcash domain and register their store. The plugin would already be installed by default for all new accounts. They would just register, choose the preferred server language, set the default currency, enter the viewing key for their wallet (all of this guided by clear UI hints), and then immediately start accepting payments via built-in integrations, for example a simple script or a WordPress module. All popular options are already described in BTCPay’s FAQ.
At the same time, we must guarantee their privacy. That is, the server owner must not be able to extract a viewing key from the database without knowing the user’s password.
Yes, this is of course not a pure self-custody concept. But it is a very reasonable first step toward expanding the real merchant base. Right now, most services offered by our respected merchants are IT-oriented by nature (we already have several VPS providers alone), and this implicitly assumes a strong understanding of all self-custody steps. But what about a shoe store? A home bakery? An indie cosmetics shop? With the current approach, we simply will not reach them.
I would really appreciate your feedback on this.