Cake Technologies Zcash Mobile Wallet Design & Development

Hello Zcash community! We recently posted a ZOMG application to develop a Zcash mobile wallet. We would love to hear your feedback and answer any questions of yours!

Link to the proposal:

Cake Wallet website:

https://cakewallet.com

9 Likes

Love it.

I don’t see support for unified addresses and auto-shielding, which is necessary to support Shielded by Default. Are they features you intend to include?

6 Likes

They mentioned “compatible with NU5 and Halo Arc”.

Btw, just putting out some ideas. My wishlist for a Zcash wallet:

  • Zcash URI compatible scanner to work smoothly with zecpages.com (see Zecwallet Mobile)
  • Snap address generator for easier interaction with strangers (see Zwallet)
  • Warp-sync (see Zwallet)
  • Sleek design (see Nighthawk and Cakewallet :wink:)
2 Likes

Yes, we will support unified addresses and auto-shielding.

9 Likes

Wonder what made @cakewallet to look into supporting Zcash after all these years.

I’m very happy to see Monero-supported wallet add Zcash native support :slight_smile:

8 Likes

Hi @cakewallet and welcome to the forums!

I have heard good things about Cake wallet from some of my friends in the Monero community.

Can you provide a more in-depth cost breakdown to show how you arrived at a quarter of a million dollars to accomplish this integration?

I understand it’s easy to look at the grants platform and see what other wallets like ZecWallet and Nighthawk were granted and set the price somewhere in the same ballpark, but since much of your platform is already built with nice UX (a good thing!) I’m having a hard time envisioning the amount of hours/time/complexity that adding Zcash will entail.

Your current application uses broad terminology:

Milestone 1: Expand developer team, wallet proof of concept Milestone 2: Deliver reliable ZEC wallet with core send/receive/backup functionality Milestone 3: Polishing bells and whistles on ZEC integration (Cake Exchange, Thorchain, other miscellaneous)

And broad goals:

Send ZEC to shielded addresses
Send ZEC to transparent addresses (with significant warning)
Receive ZEC to shielded addresses
Backup wallet with mnemonic seed
Send transactions with an optional included encrypted memo
Ability to generate and save new z-addresses under the same seed

Whereas, ZecWallet provides a very detailed breakdown of work per milestone like this:

Nighthawk provides detailed forum posts and milestones:

Additionally, in my opinion, having these details will show that your team has a deep understanding of the unique complexities (lightwalletd, shielded memos, Unified Addresses, blaze-sync, etc…) that supporting Zcash needs.

Thank you

5 Likes

FWIW sounds like Exodus, another wallet with sleek design, quotes $1m for zec shielded integration.

1 Like

Also, FWIW, the ZF grants website has a pretty limited word limit, which may lead people to posting broad statements and rounded sums for budgets. It may be more efficient to increase the space there (by 2x?) instead of having a short proposal and then having to expound on it in the forum thread.

Just a thought.

4 Likes

To bring some contrast, @hanh developed zwallet bringing new functionalities and enhanced sync speeds for zero zec from zomg…

3 Likes

We have heard this before with the Arti grant, and the grants platform does have a word limit (not sure exactly how many characters it is) but that doesn’t prevent an applicant from linking to a Google doc or similar to expound upon details of thier application.

3 Likes

The Foundation is currently looking at site enhancements for the Grants platform. We will add this suggestion to the list.

3 Likes

This is great!

My main question is, will this be a separate application, like “Cake Wallet Zcash” or something? Or will it add Zcash functionality to the main Cake Wallet app?

From my point of view, the proposal is a lot stronger if shielded Zcash is added to a wallet app with existing users, especially given that many/most of those users are already interested in privacy.

11 Likes

Shawn, thank you for your comments. We tried to replicate the other proposals not understanding the full context in other discussions on the forum.

We have outlined a more specific set of requirements for each milestone here:

https://cakewallet-my.sharepoint.com/:x:/g/personal/justin_cakewallet_com1/Ee0mjskmJCJMsJGelFdWE2UB4lGHqnPtBcMqBkJy6ilb1Q?e=Wsir0T

If you have any specific questions or comments, please let us know that we can address those and make adjustments accordingly.

The amount we are requesting is our best assessment about the amount of effort and time it will take to implement a reliable Zcash wallet with a smooth experience that will be familiar to existing Cake Wallet users. We also wish to prioritize the implementation to go live as soon after NU5 as possible, not start months from now.

@holmesworcester Yes, this is full integration of Zcash within the same Cake Wallet application with over 150,000 users. It will not be a separate application, unless the community really wants a separate application for some reason. We advise against this because Zcash will miss out on the bulk of the user-base and it will miss out on the harmony of the integrations (eg: easy exchanges between BTC/ZEC and XMR/ZEC).

10 Likes

FWIW having well documented Zcash Mobile SDKs makes adding Zcash support in existing wallets easy(with the occasional help around integration provided by members of the Zcash Light Client Working Group).

Since Cake Wallet is an existing wallet with several coins supported, I would suggest the team to check the SDK and the built-in Sample Apps to see how easy it is to integrate Zcash support.

Android GitHub - zcash/zcash-android-wallet-sdk: Native Android SDK for Zcash & iOS GitHub - zcash/ZcashLightClientKit: iOS light client Framework proof-of-concept

Even Unstoppable Wallet added Zcash support using these SDKs.

7 Likes
  1. In my opinion, any shielded wallet proposal should come with a reasonable performance guarantee that covers synchronization and wallet recovery.

For example: “zecpages wallet synchronizes in 15 minutes”. Something that the average user can expect.

When zcash is one of the many cryptocurrencies of a wallet but takes 1 day to synchronize, I think it gives a poor impression of its technology and usability.

  1. How would you, @cakewallet, define new user engagement in zcash vs other currencies? It feels that currently, we spend more than 100 USD per new user. Would you be able to improve on this metric?

Thanks,
–h

4 Likes

I’m not especially sure how to address either of those points.

For one, we will implement syncing in the most reasonable way possible. Cake Wallet was originally a Monero-only wallet, and Monero users need to sync all of the outputs to this day to see if any are destined to them. The sync time varies wildly depending on the phone hardware, the network connection, the node speed, etc. Syncing a month of transactions may only take a minute or so, but syncing years of transactions could take a long time on certain hardware.

This is something we think about constantly, and something where we bring years of experience to the table. We have considered background sync, but this is effectively impossible on iOS. We have considered doing it for android, but users would complain about background battery drain. We run into many types of users from those who want immediate usability right away at any cost to those who want slower syncing since they can wait a minute or so.

Thus, while we will make substantial efforts to focus on sync times as we have done for our Monero wallet, committing to any particular hard number is difficult. Especially as we expect shielded adoption to grow significantly with NU5; any estimates on current shielded use will have no comparison with future numbers.

Here are things we can do:

  • Eliminate sync for new wallets (if a wallet is just generated right then, there is no past history to search for)
  • Allow for users to enter a wallet creation date, and to ignore all transactions before that date (a certain block time)
  • Potentially send periodic push notifications to open the wallet and sync at regular intervals if a user manually enables these. We do not currently support this for Monero, but it is an option for both Monero and Zcash.
  • Background sync (not recommended for invisible battery loss)
  • Blaze sync (syncing backwards to potentially spend funds sooner, subject to device memory)
  • Multi-core scanning
  • Run reliable default lightwalletd and Zcash nodes

If there are other best practices, we can do our best to follow those. But, Monero is a coin with the same general long-sync-time issues, which we at least have a lot of experience dealing with more than any other wallet.

Regarding your second question about adoption of the wallet once we add it, this is something where we have a pretty firm line in the sand. We only have data from the app stores and GitHub (for APK downloads). We do not and will not collect data on what sort of wallets and transactions are created by users. In theory we could try to do significant logging of connections to a lightwalletd node, but we don’t want to do that either. We are far more likely to turn the sort of users we want away than accomplish anything productive.

As far as we are aware, Cake Wallet is the most-used wallet that wishes to add full support for the special NU5 upgrades that take Zcash to the next level. Further, we truly understand the importance of privacy. Second only to Samourai Wallet, we have the most privacy-conscious mobile users. On top of this, we fully intend to make Zcash a meaningful part of our ecosystem as described, which includes a new fiat on-ramp to shielded Orchard addresses directly, connections to Thorchain for swapping and liquidity providing, and everything else that we add to Cake Wallet in the future. Zcash also benefits from future Cake Wallet marketing efforts, attracting new users to the application.

At Cake Wallet, we wish to do our part to bring truly useful privacy tools to the masses. We have a proven track record in doing this as the first ever cryptocurrency privacy-respecting iOS app. This grant will allow us to quickly bring Zcash to these users.

9 Likes

I’d be happy if you can have the same performance with zcash as monero. Is it something that would be ok with you?

1 Like

That would entirely depend on verification times of Zcash Halo 2 vs Monero, and I am not an expert on the standard Halo 2 verification times. Further, should one network have more private transactions than another, that will impact the equation more than most else.

I’m not trying to give a non-answer, I just don’t really know how to answer this honestly in the way you’re asking for. We will do what we can to optimize the Zcash portion of the wallet, which we have a significant incentive to do so because we want people to use privacy, and we want people to use Cake Wallet. We pay for multiple support staff, and we have an incentive to avoid an influx of complaints about slow sync times.

6 Likes

I support @cakewallet proposal.

4 Likes

Having a wallet with 150,000 active users be able to send and receive shielded Zcash transactions would be a great way to red pill (is that the right color?) ppl on the magic and fun of using Zcash shielded txns. Could definitely add to the network effect of zcash.

1 Like