Testing Mobile Wallets : Here's what I found

Remember the days when ZEC didn’t have a mobile wallet, now we have choices!!!

I’ve been testing wallets over the last week.

Test method is ‘quite nasty’ but simple so should be close to the average user experience

  • Import an OLD wallet (approx 200 txns dating back to block 846200)
  • Timer starts when the import starts, stops when funds are spendable
  • Phone is low-end & very common model here in Chile (Nokia Android-One, Model TA-1115)

My plan (although, don’t hold me to this) is to repeat the test every time a new version gets released & update this post.

ZECwallet Lite (Version 1.7.0)

Time-to-sync : 7m 21s

There’s always been lots of things to love about ZECwallet & Aditya has been involved in this since forever - so this was my ‘daily driver’ wallet.

Sync time is fast, the last update included ‘Blaze Sync’ which ‘scans backwards’ from the highest block, plus enhancements in their lightwalletd server. For my ancient test wallet just over 7 minutes is acceptable. Plenty of features & nice things in the UI.

Zwallet (Version 1.0.7-48 Beta)

Time-to-sync : 3 minutes, 39 seconds

This is new and insanely fast, uses a ‘Warp Sync’ method which is extremely careful to only calculate what it needs to during the scan - the goal is ‘extreme efficiency’.

Its the fastest (ie: factor of two!!) and the UI is developing rapidly with more toys & features. Not released yet but its very, very close.

Some new features, creates ‘Contacts’ from shielded transaction memos, better highlight for notes you have excluded from transactions. All good stuff that’s worth checking out.

NightHawk (Version 1.0.20)

Its not my nature to be mean but this wallet did not work.

Version: 1.0.19 : Failed after 10 hours 15 mins, sync at 89%, died with ‘Scan Error’
Version: 1.0.20 : Failed after 6 hours 16 mins, sync at 70%, froze with no error

Your-mileage-will-vary if you create a new wallet or import one that’s not old but don’t expect it to work forever - my test wallet dates back to block 846200 & that’s only 14 months.

It uses the standard SDK so no scanning enhancements - finding your ‘encrypted needles in the zcash haystack’ is a lot of work.

ECC Reference wallet (in progress)

EDIT: Fixed it!! Problem was my Android Studio setup - it needs the Arctic Fox version 2020.3.1 from Android Studio Preview  |  Android Developers

Its important to remember the Ref Wallet isn’t a real production app, its a tool ECC created to test & develop libraries and they released it so the rest of us could learn from example.

Its also a very pretty wallet & in my biased opinion has the most impressive UI.

Importing the wallet happens in stages and uses the same seed words as ZECwallet & Zwallet :-

  • Downloading : 42 minutes, 39 seconds
  • Preparing To Scan : 43 minutes, 52 seconds (total elapsed)
  • Scanning : (In progress : 56%, 3 hours 32 minutes total elapsed)

(Its now silly-o-clock & I’m not staying up all night to time this. Assuming it carries on at the current rate it will be approx 5 hours 43 minutes total elapsed, I’ll check it in the morning)

Sadly, the wallet didn’t sync. At some point during the night it either lost its connection or the phone went to sleep. This morning it started scanning again from the beginning.

Unstoppable (in progress)

This doesn’t allow you to restore a ZEC wallet using the standard recovery words, which means I cant test it.

TL;DR : …but at the end so you read it anyway :rofl:

Zwallet is the one to watch, join the beta program on Google Play and help test it !!!

EDITS:-

  • Corrected sync method outline for ZECwallet & Zwallet
  • Attempted to build ECC Reference Wallet, failed due to broken Android Studio install
  • Attempted to test Unstoppable Wallet
  • New Zwallet version
  • ECC Reference Wallet
9 Likes

There’s nothing to be mean when reporting performance stats.
Nighthawk relies on ECC Mobile SDKs and is committed to strengthening the Zcash Mobile SDK for benefits that extend beyond just Nighthawk Wallet. e.g. Unstoppable Wallet also utilizes the same mobile SDKs as Nighthawk.

The scanning algorithms are not optimized to run on low-end Android devices with <2GB RAM, and the overall syncing is still slow(15-30mins depending on age of wallet) for one time sync at the beginning for even newer quad-core devices with 4GB+ RAM. That being said, we have plans to support Nighthawk on as many Android devices as possible.

I will discuss prioritizing the recent improvements in syncing speeds to ECC SDKs with @LightCli_WG

8 Likes

My ‘low end’ iphone is also no match for nighthawk. The app store wont even let me download it without having ios 14.5.

1 Like

Welcome to the forums @ralph

So, Apple’s iOS is a closed source operating system and gets frequently updated as critical bugs are fixed. Nighthawk relies on certain iOS frameworks which compiles with specific versioned releases of iOS. We expect iOS users to be running the latest available version of iOS for all the security benefits, especially when using a mobile wallet app.

iOS fixes range all the way from the kernel to UI level. Apple has done a good job to maintain backwards compatibility of iOS releases for the last 4-5 generations of hardware. (Apple iOS 14.6 Release: Should You Upgrade?)

Here is a list of security fixes in iOS 14.5: About the security content of iOS 14.5 and iPadOS 14.5 - Apple Support

Android does have major security holes in the older versions too, but Android is open source, and it allows OSS projects to release patches in dependencies which enables apps to be backwards compatible. Still, it is recommended to use the latest available version of Android as well.

Thanks for your feedback Ralph, this prompts me to make a supported devices/OS versions page for Nighthawk.

Update: Here is the supported devices page https://nighthawkwallet.com/supporteddevices/

2 Likes
Feature ZecWallet NightHawk ZWallet
Sending to
Shielded
Transparent
Receiving into
Shielded
Transparent
Spending from
Shielded
Transparent ? • (1)
Balance
Confirmed
Unconfirmed • (2)
Price Feed
Transaction History
View in Block Explorer ?
Memo
View Only Account ?
Custom Server
Multiple Accounts
Progress Status (Tx Building)
Tx amount in USD ?
QR Code Scanner
Diversified Addresses
Max Amount per Note
Color Themes
Light/Dark Themes
Customizable Anchor Offset
Note Display
Coin Control
Spending Chart
Balance History Chart
Address Book (Contacts)
Sync Speed (3)
Android One (4) ~7 mn N/A ~3 mn
PC (5) ~5 mn 20 s N/A ~25 s
Platform
Android • Jelly Bean
iOS • iOS 9.0 (6)

Notes:

  1. Must be shielded before
  2. Upcoming version
  3. Results depend on the wallet
  4. Test performed on an old wallet (approx 200 txns dating back to block 846200)
    with an Nokia Android One (by @ChileBob). NightHawk did not complete the test.
  5. Test performed on Desktop PC (AMD 3900X) with a recent wallet (2021-06) and ~50 tx.
    NightHawk does not provide a command line version for PC.
  6. To be released

Please let me know if anything is inaccurate and/or incomplete.

Disclaimer: I’m the author of ZWallet.

4 Likes

Hey ChileBob! Nice Work! Can you elaborate on this? Why weren’t you able to restore from seed on Unstoppable?

Sure! I couldn’t figure out how to feed it the seed words to load my test wallet (which originally comes from ZECwallet).

Creating a new wallet etc works but I was trying to do the same import task on all the wallet types.

Let me know if its possible, I’m happy to be wrong :wink:

(PS: Limited connectivity until Wednesday)

1 Like

I’m pretty sure there’s an option to restore a wallet from a seed. at least on version 0.21
When you conceptually create a wallet, it asks you for the coin type and then you can restore or create new words.

1 Like

Hey! So I found where to feed it the seed words but there’s another problem.

It takes many (many!!) hours to sync but if the phone dozes off the sync goes back to 50%, I can’t import :frowning:

I’m sure its fine with a new wallet as there’s no sync involved, but eventually a new install will get old & it won’t be possible to restore/import.

Maybe they could cache the sync so it doesn’t have to restart from 50%, or make it sync faster? I like the UI & multi-coin support.