Best way to accept $ZEC as a payment method

Here is chat from an X discussion in which Nym Project developers are interested in a solution for adding ZECs. I suggested several options, but all of them are not suitable for one reason or another:

Alexis Roussel:

  • we are looking at the best way to accept $ZEC as a payment method. Is there a BTCpayServer plugin or another self hosted service that manages invoices in Zcash?

  • @ZGoCashApp?

  • We are looking for a fully selfhosted service.

  • Then please check @NOWPayments_io
    I’m not sure if that’s what’s needed, but maybe:
    Anonymous eCommerce with Zcash | NOWPayments

  • Thanks. No again this is a service maintain by a 3rd party.
    Maybe there is a simple transaction watcher script that we can use to build our own custom tool?

I had no idea previously that such a problem existed. This gap needs to be addressed as soon as possible, but maybe someone knows of alternative solutions or fast options to accomplish the goal?

6 Likes

@1337bytes @hanh Hello!

Can we get back to the topic of making BTCPay work again for Zcash?

Monero has already updated their plugin: GitHub - btcpayserver/btcpayserver-monero-plugin: This plugin extends BTCPay Server to enable users to receive payments via Monero.

This instruction is still relevant:

4 Likes

Hi!

I have a hacked together version of BTCPayServer 2.0 working locally. Am currently working on backporting my local patches to btcpayserver-zcash-plugin and seeing if I can get it working in advance of the upcoming 2.1 release, where Zcash support will be removed from core and be installable via the plugin.

I found the cause of a bug when returning diversified addresses in zcash-walletd and fixed it with hanh’s help: Fix next diversified address by macintoshhelper · Pull Request #10 · hhanh00/zcash-walletd · GitHub . Old BTCPayServer versions should work with this fix. I published a fork to Docker: 1337bytes/zcash-walletd.

Once sapling addresses are working, we can start a conversation around Orchard/UA support and trying to increase merchant support. I am working on an online store application where I plan to accept ZEC via BTCPayServer as a merchant.

7 Likes

The Zenith RPC is available if they want to self-host Zebra. They can monitor the wallet transactions from any app that can make HTTP requests and process JSON.

5 Likes

If they want it, they will find a way. :shield:

That’s debatable. The strategy of arrogant relationships does not lead to success. We need to have a healthy partnership with all stakeholders. If something is in our power to fix, then it is necessary to remove obstacles.

It was the first time I saw real interest in this module, and we discussed it earlier in a neighboring thread, but it seemed that there was no interest at all and there was no need to waste resources on it. With the advent of interest, the plot changes.

1 Like

imo its more like

if they cant find a way to integrate ZEC payments easy and relatively fast in a way that fits them - they just wont bother to do it at all

3 Likes

Solutions exists and more are on route from what I can see :eyes:

1 Like

thanks for pushing for this after our question on X. happy to test this. Is there an install instruction set somewhere?

4 Likes

Thanks for the offer! Not yet. I would wait until the release of BTCPayServer 2.1 and a working/tested version of btcpayserver-zcash-plugin. I have a work in progress PR up: BTCPayServer 2.0 fixes by macintoshhelper · Pull Request #1 · btcpayserver/btcpayserver-zcash-plugin · GitHub . However it still needs some work and doesn’t yet work in a 2.0.7 Docker environment. Once it is working I will write up some documentation and work on integrating it into the Docker Compose fragments setup process.

1.x should work in theory if you modify this docker-compose setup: zcash-btcpay/docker-compose.yml at main · hhanh00/zcash-btcpay · GitHub . However, I’m not confident yet on the migration path towards 2.x, it’ll need some support/testing.

- image: hhanh00/btcp
+ image: btcpayserver/btcpayserver:1.13.7-altcoins
- image: hhanh00/zcash-walletd
+ image: 1337bytes/zcash-walletd:v0.0.1

-   - "wallet_datadir:/data"
+   - "./wallet_datadir:/data"
+   - "./walletd/Rocket.toml:/root/Rocket.toml"

./walletd/Rocket.toml

[global]
db_path = "zec-wallet-test.db"
confirmations = 5
lwd_url = "https://zec.rocks:443"
notify_tx_url = "http://btcp:9000/zcashlikedaemoncallback/tx?cryptoCode=zec&hash="
poll_interval = 60
regtest = false

[debug]
address = "127.0.0.1"

[release]
address = "0.0.0.0"

I also found that I need these custom rate rules (namely ZEC_USD):

ZEC_X = ZEC_BTC * BTC_X
ZEC_BTC = kraken(ZEC_BTC)
ZEC_USD = kraken(ZEC_USD)
1 Like

Thanks we will wait for BtcPayServer 2.1 and your plugin. looks promising.
Will it support shielded addresses?

2 Likes

Apologies for the delayed reply. Have been working on and submitted a grant application for the 2.1 plugin upgrade: Upgrade BTCPayServer Zcash Plugin for 2.1

Yes, initially Sapling shielded addresses will be supported. Orchard and UA should be supported pending an upgrade of zcash-walletd, which can either be worked on in parallel or after the release of the plugin for 2.1, @hanh had offered to handle this as part of a grant application. Should be a seamless upgrade once it is ready.

3 Likes
3 Likes