Announcing: Nighthawk Wallet for Zcash 🛫

Code is available so easy enough to tweak the theme & change the name to, errm, maybe ‘SneakyPidgeon’ ? Pidgeons don’t bomb civilians… well, yes, they do, but it wipes off.

I quite like the ‘stealth’ connection with NightHawk & think that was the intention. Joking aside, a zebra-stripe-theme would be nice.

(EDIT: Not exactly hard, I’m sure the smart people who hang out here can do way better 'cos I’m just goofing around, here’s my attempt)

EDIT: Here’s a link to the APK if you want it on your phone :-

ANOTHER EDIT: I removed the link to my version - use NightHawk, their wallet is evolving faster than mine :slight_smile:


Well, some people will surely get less enthusiastic about a Zcash wallet which puts a Chinese or a Russian bomber prominently on its front page. Arguments about its coolness, aesthetics and how that particular bomber didn’t harm too many people will sound very different in that case. Exactly the same applies for this particular US bomber in many regions of the world. Weapons are killing devices, talk to a child who lost her family and her legs after a bomber passed over her head and ask her what she thinks about the aesthetics of bombers. It’s absolutely wrong to use weapons as symbols in peaceful projects.


+1 for name change.

1 Like

First, this isn’t the only wallet, its not even ECC’s wallet. It’s a volunteer effort created by a community member. And they made the choice to go for nighthawk. It’s clever and there are a bunch of cool things about the plane and the aesthetic. It’s not being used because it drops bombs, it’s being used because it’s stealth and stays off the radar. Thee intent is obvious. That saiid, the fact that it drops bombs and that can be bad ( it can also be good, see stoping genocide in the Balkans), is lost on no one including the authors. Which does raise the issues you allude to, but how important that is is a thing people can reasonably disagree on. Lets not pile on them and lets not derail the thread in which they announce the thing.


Keep in mind that Nighthawk is a project created by a independent group of Zcash enthusiasts, not something released from the ECC or ZFND thereby, it seems a bit rude to badger them about a name they chose because they obviously liked it. They have already gone through the trouble of forking the code, customizing the UI, creating Developer apps accounts for Google and iOS store, secured a Twitter handle, designed the logo, and probably several other things that I’m not thinking of.

If you don’t like the wallet simply because of the name then the code is open-source, you are free to do what they did: Fork it to make it your own.


Mika and I are entitled to strongly express our opinions on the logo, both here and to the Nighthawk developers.


You have the freedom to use the wallet or not to use the wallet. What else would you like to censor? I think censorship resistance is good. This wallet app is certainly not going to kill anyone.


Great name for a great wallet. Keep up the good work guys. For the brave and the free!


Thanks for the encouragement Kevin!

It means a lot for you to recognize our baby steps. And thank you for choosing the best in class architecture which should make this app future proof for the next couple of years before having to rewrite it again! :sweat_smile:


Hey @gcsfred1, thanks for the feedback. We agree that it could be made clearer how to send and receive. We’ve since reordered the home screen. Let us know you think!


Hi! Could you add additional protection functionality to Nighthawk?

I mean, Face ID, or password for logging in and making a transaction, as well as one useful function that is available in hardware wallets: a code word, which is essentially a twenty fifth word of recovery phrase and allows you to branch address trees in the wallet and select a desired tree when logging.

I think that this is the last thing that prevents me from abandoning the hardware wallet as a cold wallet in favor of a bundle of Ipod+software wallet. I’m tired of waiting for Z addresses in hardware wallets.


Just installed Nighthawk Wallet.

Feature Requests:

  1. Can you allow users to store the seed in icloud? Some crypto wallets do & it comes in handy.
  2. Sideshift is blocked in some countries. So, having other options to acquire Zcash would be nice. Options doesn’t have to be decentralized exchanges. It could be showing how users can buy Zcash from Gemini (or other trusted exchanges) & transferring to Nighthawk
  3. Single click to go from ETH/BTC to Zcash (via RenZec).
  4. Instant sync? and/or improve zero state experience for first time users.
  5. Donate option :slight_smile: ?

Thanks for the ideas! @dontbeevil

  1. While Apple iCloud claims strong encryption, they have had security breaches in the past, so I’m unsure if storing the seed in iCloud will be in the best interest of the users. Maybe I’ll review their newer APIs for leveraging iCloud KeyChain which is supposedly more secure?

  2. @NighthawkApps is working to bring an exchange partner to allow more users buy crypto, just need to be careful how we make the integration happen, to preserve the privacy of users till they decide to KYC with a 3rd party.

  3. I’m wary about integrating secondary blockchain protocols in the app in the current stage, and trusting in a 3rd party (ren) to keep the services up, maybe this changes over time.

  4. Yes, initial sync is a pain to watch as a new user, we’re working on ideas like showing “Setting up your wallet” status and notifying the user only after background sync is complete.

  5. Donate address should be back under the Profile/Backup button. We’ve had a few micro donations come in along with memos which helps in testing on mainnet and onboarding new devs.

Currently, Nighthawk Wallet for iOS is based straight off ECC codebase and the Android version has some customizations which was possible to maintain for the last 6 months following ZF funding. Now that we have a separate grant for setup, we plan to apply to ZOMG for a larger grant to build more features and contribute to upstream ECC codebase and help in resolving the backlog of issues. That way all the developers using Zcash SDKs can benefit.


I think for this you can encrypt the file and allow users to store it on iCloud or any other cloud provider. The user would then only need to make sure that they remember the password to the file. This can be a better option for a lot of people, especially those who use Nighthawk strictly for spending.

Agree, everything is so early let others try it out first before we expose Zcash users to those.

1 Like


Yes, initial sync is a pain to watch as a new user, we’re working on ideas like showing “Setting up your wallet” status and notifying the user only after background sync is complete.

What is the data that needs to be synced for a new wallet? There shouldn’t be any notes received yet…


1 Like
  • Downloading the latest compact blocks in a privacy-sensitive way → this depends on network speed & lightwalletd traffic

  • Scanning and trial decrypting those blocks for shielded transactions related to the wallet → this takes a while depending on 1) the number of blocks since last scan or wallet height that needs to be processed and 2) the processing power of the mobile device iPhone 7 could take 8x longer than iPhone 10

  • Processing those related transactions into useful data for the UI → this is fast

OK but why do you need to do that if it is a new wallet? There are no shielded transactions related to a new wallet.

Correct, the sync is done to reduce the future delay in sync for when the user is actually expecting a transaction. Hence the idea of making the syncing happen in the background.

I’m sorry - I still don’t get it. If the user is expecting a transaction, that transaction will happen in the future. So there is no need to download past blocks. Isn’t it what the initial sync is about?

@hanh I think the reason they do it this way is:

  • The lightwallet needs a checkpoint to start from
  • It has better security properties if it doesn’t have to trust the lightwallet server for this checkpoint.
  • So the checkpoint is bundled with the app.
  • This means if it’s been N days since app release, the app must sync that data at some point.
  • @adityapk00 mentioned potential solutions to achieve “minimal initial sync needed” in another issue: Zecwallet Infra Funding for increased traffic - #5 by adityapk00

Does this make sense to you?

Do you have an opinion on what the best solution is? (I agree that the current situation of having to sync useless block data on first startup is not ideal!)