Zcash wallets today are more reminiscent of the original Bitcoin wallet than of Paypal/Venmo. This is holding back adoption. For Zcash to thrive, our userbase must grow exponentially. This requires that wallets are so easy to use that a novice user can start using it without a Zcash expert at their side, explaining and apologizing for every step they take.
Proposed solution
eZcash is a new kind of Zcash wallet. It seeks to re-imagine the whole experience so that your parents, grandparents, siblings, kids and friends can all use it as easily as PayPal, while maintaining a high level of privacy by default. Where trade-offs are traditionally seen between usability and privacy, eZcash thinks innovatively to achieve both in nearly every aspect. Where the two are mutually exclusive, it may side on usability when the remaining privacy would still far exceed what users get with Venmo so that we target the 99.9% of users that just want a friendly wallet that works.
I’ve heard some concern around the aesthetics of the UI and some of the UI interaction modes of eZcash today. To help resolve those concerns, I want to emphasize something I very briefly mention in the grant itself: I’ll be using some of the grant money to hire one or more UX experts to help make the app work great on the various desktop OSs and mobile devices.
Thus far I’ve mostly been focused on functionality. Proving out the workflows, with integrated address book, accurate balance calculations, etc. But as usability for new users of all ages is of paramount important for Zcash usage to grow, it’s very much worth getting the best UX designers we can find to help us get eZcash usability and aesthetics to an optimal level.
What sync will it use? I think we have at least 3 flavors floating around and 1 that is best? Unfortunately this best flavor has been siloed only in ywallet. IMO, it would be a great value to combine wallet efforts so they are all built on the same foundations - with warp sync or better as the starting point. If we had solid warp-sync to WASM with modern SDK, in the future creating a new wallet with a new flavor could be about as easy as creating a new wordpress site. I’m skeptical of funding new wallets when the foundations are not as cohesive and organized as they should be. But, OTOH, I respect @aarnott’s contributions and reputation. So, I guess I’m neutral on this proposal. I’d rather see focus on the foundations that would make it easier to build new wallets in general than one concrete instance of a new wallet that must necessarily be expensive because it’s too hard in the current fragmented landscape.
You make some good points. I think I agree with you on all the principles you’re espousing.
eZcash is built on Nerdbank.Zcash (a previous minor grant recipient), which is based on librustzcash. The sync comes from librustzcash and Nerdbank.Zcash’s own addition for sync’ing transparent funds, since librustzcash didn’t sync transparent funds (until this week).
I agree we should share lots more code. That’s one reason I’m reusing sync instead of writing my own.
As for whether warp sync is best, I’m not sure whether that’s the case at this point. librustzcash has been improving theirs. I think theirs is DAGSync. And librustzcash supports internal addresses where WarpSync doesn’t.
There’s lots of innovation opportunity at the wallet level while still pushing all the goodness possible into the cross-wallet shareable layer. In the case of eZcash for example, eZcash itself mostly reuses the rust layer, and the .NET layer for interop. I call this out in the grant proposal and that’s why this wallet costs less than half what previous wallets have cost ZCG.
Also as I call out in the grant, I’m putting as much new functionality that I’m inventing for the wallet into the rust layer too, and pushing it upstream to librustzcash as fast as I and its maintainers can handle it.
Ultimately I’d love to see wallets so easy to write that ZCG can fund just the shared libraries underneath. We’re not there yet. And the innovation in eZcash is helping to drive the new functionality that these libraries need (e.g. multi-account support, importing of UFVK-only accounts).
@aarnott unlike other past wallet projects (cough cough… ZecWallet cough cough), has consistently been contributing code for the whole ecosystem instead of running off with what worked for him. He is an example of what the virtuous cycle of open source software is about.
I’ve tested eZcash. The ui is tough, but it’s an interesting product with potential for commerce and retailers
In response to the UI concerns, I’ve prioritized improving that a bit. I haven’t hired anyone yet, which is contingent on the grant being approved, but it’s better than before. I have my new ‘home screen’ here, and new ‘dark mode’ option.
@aarnott Thank you for your submission. After consideration from @ZcashGrants and sufficient time for the community to provide feedback on the forum, the committee has decided to reject this proposal.
The committee appreciates your grant submission efforts and encourages you to continue as an active member of the Zcash community going forward, both here on the forum and in the below avenues as well: