Zcash Browser Wallet Library

Hey Zcash community! I’ll be posted monthly updates to keep everyone up to date on the maintenance and improvements that ChainSafe has been doing on the Metamask snap and associated libraries.

Here’s what our team shipped last month for the WebZjs browser wallet library and Snap:

  • Added “view key prompt” with description — Introduced a prompt to securely request the viewing key from users, improving clarity and UX when accessing shielded account data. (See discussion around view key handling in the MetaMask Snap environment here)

  • Added “Snap on install” dialog when installed from MetaMask store — Now the Snap installer clearly indicates the Snap context during installation via MetaMask.

  • Wrote local build script — Added a just build-web target in the root justfile to simplify local builds using wasm-pack. This produces a browser-ready WebZjs package in packages/webz-core. (Check out the justfile and README in the WebZjs GitHub repo).

  • Added Origins GitHub Actions workflow test — Introduced a CI test to verify allowed origins in webzjs-wallet, catching Snap-origin cross-origin issues before they reach production.

  • Added comments to webzjs-wallet PCZT code — Improved readability by annotating partially constructed Zcash transactions (PCZT) logic.

  • Fixed bugs related to connecting to Snap, with user instructions — Resolved stability issues around initialization and added step-by-step instructions for connecting to the Snap.

  • Completed fix for web wallet getAccountData — Finalized the implementation of getAccountData in the WebZjs web-wallet, ensuring accurate retrieval of shielded account information.

Let us know if you hit any issues testing this build!

10 Likes