Nighthawk Wallet Design & Development Grant

Applicant background

Nighthawk Wallet maintains the native apps for Android & iOS platforms along with bug-fixes, user support and security patches.

Since last year’s ZF funding, Nighthawk has:

  • Maintained the Z-address native app for expanding the use of Shielded Transactions (based off ECC Wallet codebase)
  • Provide ongoing support for end-users with bug-fixes via regular releases
  • Added a proxy protected price API to fetch ZEC price without exposing the user’s balance on Android
  • Setup a responsible disclosure policy and handle one incident of fixing reported issue
  • Launched and maintained iOS version on App Store

With this grant, Nighthawk Wallet plans to:

  1. Expand the team & strengthen the underlying ECC codebase
  2. Ship regular updates including NU5 to end users via Nighthawk app on Android & iOS
  3. Improve usability via UX design & app tutorial/FAQs

Motivation and overview

Releasing native wallets on the top 2 mobile platforms makes Zcash available to the majority of smartphone owners around the world and paves the way for easier integration of ZEC usage via the Android & iOS platform APIs.

In addition to maintaining open source mobile wallets, Nighthawk Wallet team plans to contribute to upstream ECC apps & SDKs to help new developers using ECC code to benefit from the work that is funded via ZOMG. There are 50+ open issues on GitHub for iOS/Android wallets & SDKs which we plan to contribute to by working in collaboration with respective ECC developers.

Nighthawk roadmap for 2021 includes:

  1. Redesign the native Zcash wallet with new designs from ECC
  2. Add Payment URI support and Deep Links integration to improve ZEC usage on mobile
  3. Support NU5 release on mobile clients
  4. Publish Nighthawk Wallet on the F-Droid Store
  5. Secure cloud backup of seed words
  6. Document FAQs on the website & app
  7. Add New User tutorial
  8. Support language translations

Lightwalletd improvements:
9. Add in-app message to notify users of any known issues with the app or the network
10. Maintain ZEC/USD price endpoint, add several more currencies

Third-Party integrations:
11. Integrate Flexa SDK when the Flexa SDK is made available
12. Review and implement easy purchase of ZEC via cards & bank accounts

Good to have (with bandwidth)
13. Add Tor support for Android & iOS (preferably via Arti Rust based APIs)
14. Support Unified Addresses & UDAs working with ECC engineers
15. Finish the We accept Zcash project and launch it on the App Store to support businesses to accept Zcash as payment via iPads/iPhones.

Technical approach

  • Collaborate with ECC developers & design
  • Contribute to zcash upstream repos, review & implement new ECC designs & customize them as necessary for Nighthawk
  • Pull down merged changes to Nighthawk Wallet for release on App Store, Play Store & Fdroid
  • Follow up with releases with bug fixes, if required
  • Follow the strict no logging/tracking policy

Design approach

  • Focus on creating an easily understandable and intuitive app experience
  • Conduct competitor analysis and research studies to validate UX concepts and product direction
  • Implement ECC base level designs for NU5 features and updated workflows
  • Perform user studies to validate design decisions
  • Create new UI wireframes and update Nighthawk app

Execution risks

  • Balancing priorities between upstream work & feature development.
  • Delays due to unforeseen challenges during development.

Downsides

  • Regulations around cryptocurrency wallets in App Store/Play Store at a country level (China bans self-custody apps).
  • HR risks and complexity in ramping up of new developers to the Zcash eco-system.

What are the milestones?

  • Milestone 1: Hire experienced team, setup workflows, work on low-hanging fruits, issues & features, review updated designs.
  • Milestone 2: Ramp up contributions to upstream towards NU5 release, push forward on Nighthawk feature list.
  • Milestone 3: User Study & Design work begins & coding up majority of the work defined for the roadmap.

How will the work we fund support the Zcash mission—i.e. to bring financial privacy to everyone in the world?

  • By shipping high quality apps with a modern design to help build confidence in financial privacy and make it more accessible to a wider audience.

What are the most important things to execute on, to get to the baseline? What about to get to the best-case?

  • Help fix upstream SDK issues in ZcashLightClientKit + zcash-android-wallet-sdk and zcash-ios-wallet + zcash-android-wallet and support backward compatibility for Android with updates for Android 12.

Deliverables:

  • Ship Nighthawk Wallet on App Store, Play Store & Fdroid Store with regular updates.
  • All code & designs will be open-sourced with MIT license on GitHub.
  • Updates following every Milestone on Zcash Forums.

Budget and justification

The 9 month budget funds 1 Designer & 2 Full Time Developers and several part time contributors.

  • $2,000 User Research & UX Study
  • $33,000 200hrs Design Consultation ($165/hr)
  • $12,430 200hrs Lightwalletd Backend API Development ($62.15/hr)
  • $293,800 2,000hrs Development, QA, HR ($146.9/hr includes part time & full time developers)
  • $10,000 in Consulting Fees for Zcash KT/support from ECC staff

Total: $351,230 (includes all software licenses, hardware, currency conversion & taxes)

4 Likes

Third party integration related feature request: Would be awesome to go from USD (bank account) to shielded Zcash in one go.

5 Likes

Out of the two exchange integrations we are reviewing (MoonPay & Transak) only MoonPay has support for Bank Transfers. Also note that exchange integrations will not be part of the app screens, but a separate flow requiring KYC.

I would keep third party integrations low priority for now. Keep wallet usability & improvement features highest priority. I understand that building Zcash mobile wallets is not as simple or straightforward (relatively) as Bitcoin or an Ethereum wallet. Everything else is good-to-have & probably wouldn’t matter for users.

If we can get the Nighthawk design & experience as close to Casa (Bitcoin) or Rainbow (ethereum) then that would be great.

2 Likes

I’m really looking forward to discussing this with everyone tonight at the ZOMG meeting.

Funding wallets is a priority for me, so I’m really happy to see ambitious proposals from wallet teams coming in.

Quick question: would this be payments to ECC? Or are you saying you’d get some consulting fees from ECC as part of this work?

(I think we’re technically not allowed to direct funds back to ECC or ZF, so I think this is a budget item we can’t fund, though I’m open to learning more and might just be being too nit-picky about it.)

I have other questions and feedback too, but I think it can wait until after I discuss with others.

Thanks @holmesworcester

Consulting Fees to ECC staff might seem like a grey area, but they are the real subject matter experts on all things Zcash. And some of the feature implementations for Nighthawk would require consulting with folks who know the ins and out of Zcash and working knowledge on limitations around mobile/privacy fronts.

The Nighthawk team has managed to get all the free help so far, but it doesn’t seem fair to work with experts for hours during off-work and weekends to resolve critical issues without compensation. Also note that this compensation could include non-ECC/ZF experts, but I wanted to put the most likely beneficiaries of the funds in exchange helping out with reaching feature/spec goals of a Zcash Community based project. I am open to any feedback around reservations around this topic.

The concept of the z2z only wallet is awesome. The app for wallet is still buggy. Sometimes it stuck on reconnecting and sometime shows incorrect amount of balance