ZIP-321 in Zecwallet

Motivation and overview

ZIP-321 is a new ZIP that standardizes how URIs are handled in wallets. Especially interesting is the part that describes how multiple payments can be made from the same URI. Zecwallet currently doesn't have full support for this standard - especially the multi-payment URIs.

This proposal is to add support for ZIP-321, the zcash standard URI payments across all Zecwallet products:

  • Zecwallet Full node
  • Zecwallet Lite desktop
  • Zecwallet iOS and Android apps

Technical approach

ZIP-321 is fairly detailed, so we will implement the technicals as described in the ZIP. For Zecwallet, this will include implementing the ZIP-321 parsing in the shared Javascript code, so the same implementation will be reused across all Zecwallet products.

The desktop apps already support multiple payments, so implementing ZIP-321 on the desktop apps is straightforward. For mobile apps, the multi-payments UI needs to be implemented on the send screen as well.

Execution risks

Very little execution risk on this, since the ZIP is very well written

Downsides

No major downsides. The one issue might be the ZIP-321 is not 100% compatible with the currently implemented ad-hoc URI parsing on Zecwallet (most notably, the memo is encoded in base64 in the ZIP, while it is a URI-encoded in Zecwallet), so it might cause some incompatibilities.

However, we're not aware of any large-scale breaking deployments, so the disruption should be minimal.

Tasks and schedule

Work Items:

  • Implement ZIP 321 (0.5 day)
    • Add support for multiple addresses in mobile wallets. UI + Library (3 days)
    • They currently only support 1 outgoing address.
    • Desktop wallets already support multiple outgoing addresses
    • Publish to Play / App store (0.5 days)
    • Android Play store should be easy.
    • iOS is hard, Apple always has some issues with updates and might take a while.

Budget and justification

The $6000 funding request represents 4 days worth of work at $187.5 per hour.

Tipping

Tips Received
???  
ZEC

Campaign

Started
a month ago
Funding
$6,000 
Funded through  
1
ZIP-321 implementation

ZIP-321 implementation

Estimate: October 2020
Reward: $6,000
The team was awarded $6,000 in ZEC on Oct 27th, 2020, 8:54 pm.
Implement in the desktop and mobile apps and publish to the app store.