Upgrade BTCPayServer Zcash Plugin for 2.1

I just tried setting this up per the docs you shared with the latest plugin version, but zcash_walletd just stays in a reboot loop with this log:

Invalid viewing key: Hrp(Checksum(InvalidResidue))
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

When I uploaded the unified viewing key from ywallet it did see the new view key, but says it’s invalid:

VK missing from .env file or data config
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
thread ‘main’ panicked at src/main.rs:105:103:
Invalid viewing key: Hrp(Checksum(InvalidResidue))
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Perhaps a plugin or BTCPay update is needed to actually support unified viewing keys? I’m running BTCPay v2.2.1 and Zcash plugin v1.0.4.0.

1 Like

Hello @sethforprivacy! I’m glad to see you back on the forum. Thank you for pointing that out. I can’t respond substantively right now; I’ll need technical assistance from @1337bytes and @hanh.

1 Like

It is probably an issue with the viewing key. Use zcashd, zashi?, or zkool.

Do you have the latest btcpayserver-docker pulled? Ywallet Unified Viewing Key should work (starts with u1...).

Yes, just pulled the latest today, and I used the uview key as described in the docs:

I only want to use this if it can leverage Orchard shielded addresses, and from my understanding that was the right key to do so.

Then the docs need an update, as Ywallet was recommended (but doesn’t seem to work) and Zingo wallet was recommended but doesn’t seem to allow view key export anymore.

Will try those and see if I can get a working view key!

AFAICT Zashi and zkool also don’t support exporting view keys…

P.S. - the latest version that gets pulled normally is 1337bytes/zcash-walletd:0.0.2, is that correct?

No, that’ll be the issue. It should be hhanh00/zcash-walletd:1.1.4.

When will this be pushed upstream? I’d prefer to wait to run this until I don’t have to do custom Compose snippets to workaround it if possible.

Should be available on the latest master, no need for custom fragments. Orchard/UA support was merged upstream a month ago. Most merchants have upgraded to it already.

2 Likes

Ah, strange, just saw it now after forcing an update locally instead of relying on a BTCPay update.

Working now!

5 Likes

Yes it does?

note: I am deleting this account now :grin:

1 Like

Odd, was using the latest on macOS and couldn’t find the view key option anywhere!

1 Like

Ill create a quick video, its a bit hidden! Give me a few :+1:

Here is how it works on Linux:

3 Likes

Hey all, I’ve run into an issue twice over the last week where Zcash transactions for BTCPay invoices never show as paid, despite being received in the Zcash wallet. It appears that the generated-zcash_walletd-1 container just gets stuck until restarted. An example from today was below, where two transactions seemed to fail on the BTCPay side, but were immediately seen when I restarted the Zcash container.

[2025-12-11T12:17:00Z INFO zcash_walletd::rpc] Scan from 3162741 to 3165520
[2025-12-11T12:17:02Z INFO zcash_walletd::rpc] Notify tx REDACTED
[2025-12-11T12:17:02Z INFO zcash_walletd::rpc] Notify tx REDACTED

Anything I can do here to prevent this or any other logs I can provide to improve things here? Running the latest Zcash plugin and steps that were shared above, which includes this image:

hhanh00/zcash-walletd:1.1.4

Edit: while nothing in the changelog implies it fixed this issue, I have just updated after seeing https://github.com/btcpayserver/btcpayserver-docker/commit/3e49a2063b27f83b08de37407916b4398bb063d0.

1 Like

Hey, I sent you a message on Twitter. How many confirmations have you configured, if it’s more than one, have you tried one confirmation? I am currently working on a bug fix for an issue in the plugin’s handling of multiple confirmation checks; this logic should be handled on the plugin side rather than zcash-walletd.

As in the entire container is frozen and stops outputting logs, or there is just one Notify tx and no more activity for a specific transaction?

2 Likes

Odd, I never saw this notification!

We’ve been having very consistent issues with transactions being received by the wallet (visible in Ywallet), but not seen by BTCPay. Restarting the container doesn’t seem to be resolving it for long either, so I’ve had to just disable Zcash payments for now.

The logs I can see show this with the last TX we received that wasn’t recognized by BTCPay:

[2026-01-18T11:35:52Z INFO  zcash_walletd::rpc] Notify tx REDACTED

index out of bounds: the len is 0 but the index is 0
1 Like

Please make sure you’re using 1 confirmation. Can you try updating to zcash-walletd version 1.1.8 with a custom fragment and let me know if that resolves it? This should resolve a race condition with notify tx that a couple of merchants ran into and fix a bug with reorg that can be caused with bad shutdowns. Will submit a PR to btcpayserver-docker once I’ve received enough reports that the issues are fixed.

2 Likes