WebZjs Browser Library and Browser Wallet Maintenance

Hey Zcash community!

We’re excited to announce that ChainSafe Systems has submitted a new grant application to support the ongoing maintenance of the WebZjs - Zcash Browser Library, Snap and Browser Wallet (production ready in February).
This proposal ensures these essential tools remain secure, stable, and up-to-date with the latest Zcash protocol developments.

You can view the full grant application here: link

Thank you so much for your continued support! We’re committed to growing the Zcash ecosystem together.

Bryant

7 Likes

Seems unnecessary. When third-party wallets are built with it, the library will be maintained organically. That’s how it usually works with other open-source software. It’s not clear how much the real ask is, since it is based on “actual work being done”. :man_shrugging:
IMO, there are other projects in need of funding that could use that money.

3 Likes

Thanks for the feedback! I get where you’re coming from. From our experience, though, having someone dedicated to maintaining an open-source library like this is really important - especially early on when we’re trying to encourage user adoption. Without active maintenance, issues can pile up, and developers might hesitate to use it if they’re not confident it’s being supported.

Regarding pricing, our proposal allocates 30 hours per month to focus on improving the library and wallet and fixing bugs as they come up. This comes to $126,000 for the year. To account for any major unforeseen issues, we capped the work at 40 hours per month ($168,000 for the year), which provides flexibility to address significant challenges (e.g. larger protocol upgrades) if they arise. We’d remain fully transparent with the community about the nature of the work and the associated costs.

1 Like

What work needs to be done to make this library safe to use for real things in production?

Is reaching stability within the scope of this proposal? What amendments to the proposal would get us there?

I’d love to see the work done to make this library stable, especially before ZSA is launched.

Many developers know web3.js, it’s essential for our community to have a production-ready Javascript library for buildng exciting things on Zcash.

Also is this being used for the Maya integration @hanh? We will need a stable Zcash javascript library for the swap interfaces to use, right? (Zcash added to xchainjs)

2 Likes

Maya uses a transparent vault, therefore this library is not required. However, a library that does t2t nu6 zcash transactions with op_return is needed. I just haven’t found it yet (and part of why I said other projects could need funding).

@bryant.chainsafe

I agree, but I was under the impression that some level of maintenance would be provided in the short term. Like when you buy an appliance, they give you 1 year warranty or something.

2 Likes

@bryant.chainsafe at the most recent meeting, the @ZcashGrants Committee voted to approve this proposal and has requested that you provide monthly updates via the forum in this thread.

2 Likes

As a maintenance, this fee is a bit expensive, will there be improvements every month?

2 Likes

Congrats on the approval.

A quick question bump: At what point will this library be considered “stable” for use in production environments? Is that roadmap defined somewhere?

I’m considering using WebZjs for a project, am not clear on when it will be considered stable and safe for real users to use. Thanks.

It would be considered “stable” when the memory wallet gets merged and when WebZjs gets audited. There might be more that needs to be done before but I would defer to auditing and security experts.

2 Likes

Hello :wave: Since the library, Snap, and web wallet are still under development, we have not yet entered the maintenance phase and are still posting updates to the Zcash Browser Wallet Library thread - you can see the latest update for January here. To summarize, we are finalizing the implementation of partially constructed Zcash transactions (PCZT) and preparing the Snap to be submitted to the auditing company. We have also prepared a list of test scenarios that we have shared with the community in order to gather feedback.

4 Likes

I wanted to know if any developer has used the following in a JS/Vue or React environment. Having a hard time linking the packages.

Have done just build and yarn build both but don’t know if web-wallet package should be used or snap package from the packages folder and how to actually link it can’t find anything in the docs linked.

I am just trying to like basically import and test it nothing fancy.

2 Likes

Anyone here?

I want to basically do the following in a browser/extension environment:

generating a sapling address from a seed without necessarily storing it
sapling_ka_derivepublic
sapling_ka_agree
KDF_Sapling

I have done quite a bit of reading about the ZK protocol and it is amazing, I am still learning a lot of things about it but that is basically it.

Anyone have an idea if this is the right library for it and if yes where should I look into?

What are these functions called in this library specifically or is it something that needs to be done from scratch and no such resources are present.

@bryant.chainsafe How do I solve this problem?

The snap never starts, it stays in Loading Web Wallet…

1 Like

Hi @Edicksonjga, Colin from ChainSafe here. Thanks for reporting this. We are trying to reproduce this issue and will get back to you shortly with an update.

1 Like

Hello Zcash folks! The Zcash Metamask Snap is live and was recently announced here: https://x.com/ZcashCommGrants/status/1947295805313843575. ChainSafe has now begun work on this maintenance grant, and we will continue to fix and improve this snap over the next 12 months. Please feel free to check it out and reach out to us here if you have any ideas or suggestions for how the snap or library could be made more useful for you and the community!

Hi @gotope, the short answer is yes! This grant will cover a number of improvements as well as ongoing maintenance and fixes. We’ll be posting updates with specific improvements each month. We are also open to community feedback. If there’s a piece of functionality or an improvement to the Snap you are looking for, let us know!

Update:

We have merged the In-memory backend PR Add `zcash_client_memory` crate. by nuttycom · Pull Request #1923 · zcash/librustzcash · GitHub into Librustzcash :tada:

Thanks @nuttycom @str4d and @daira for all the rebasing, merging, reviewing and patching involved :heart:

7 Likes

Hi @Edicksonjga, thanks for your patience. We have just published a fix to your issue. In order to get your snap up and running, please follow these steps:

Go to MM > Snaps > zCash… > Remove Snap (right at the bottom)
then reload https://webzjs.chainsafe.dev/

Connect > Confirm > Enable Install zCash and Confirm again > Complete > then “Continue to Wallet”
If you presses close or cancel at one of these steps, the snap won’t start and you’ll have to start over again. Pressing close or cancel prematurely is likely what caused this in the first place. We realize this need to be made more clear in the UI and we will work to fix that up next week.

In the mean time, please try these steps and let us know if you still experience any issues. Have a great weekend!

This affects all users of the Zcash Snap right? All users need to re-install the Snap?

For what date range were all users were affected by this downtime? (My snap wallet also does not sync, so I also have to reinstall - this is not an isolated issue for one user)

Please post an announcement on the “webzjs.chainsafe.dev” page that users need to reinstall the snap with instructions on how to do so. Perhaps show it when “Make sure your MetaMask is unlocked to continue” is displayed.