Now that this bounty has been assigned to me, I propose the following changes to it based on my experiences developing the Grin Ledger app and Ledger Live Desktop/Mobile with Grin support.
1. Remove the requirement of needing Ledger to officially release the app and integrate the Ledger Live changes.
It’s now been more than a year since I submitted the app to Ledger for review, and since then the app’s submission status hasn’t changed at all and I haven’t been contacted by Ledger. Ledger has stated in their Discord channel that they currently lack the man power needed to review and release external apps for cryptocurrencies that don’t have a high enough market cap, so there’s a chance that the Grin Ledger app will never be officially released by them. Unfortunately, this bottleneck is outside of my control.
2. Remove the requirement for a grin-wallet CLI integration.
This isn’t explicitly mentioned in the bounty’s deliverables, so, as far as I can tell, this was a self-imposed requirement by @markhollis. Ledger’s release requirements for an app explicitly state that an app’s integration in a GUI wallet is mandatory for a public release, so having a CLI integration doesn’t help with getting an app released publicly. The GUI wallet that I integrated support for the Grin Ledger app into is the Grin version of the MWC web wallet.
3. Increasing the bounty’s reward from 50k USD to 100k USD.
Given the sheer amount of time, knowledge, and skills required to complete this bounty, I find the original reward of 50k USD to be insufficient. Here’s all the tasks and subtasks required to complete this bounty given Ledger’s requirements and the route that I took.
- Ledger app
- GUI wallet integration
- Integrating the app into a GUI wallet (Knowledge in JavaScript)
- Ledger Live Desktop integration
- Integrating the app into Ledger Live Common (Knowledge in TypeScript)
- Integrating the app into Ledger Live Desktop (Knowledge in TypeScript and React)
- Creating Node.js Addon wrappers for implementations of secp256k1-zkp, X25519, and Ed25519 (Knowledge in C++)
- Ledger Live Mobile integration
- Integrating the app into Ledger Live Mobile (Knowledge in TypeScript and React Native)
- Creating React Native Module wrappers for implementations of secp256k1-zkp, X25519, and Ed25519 (Knowledge in TypeScript, C++, Java, and Objective-C)
As far as I know, in the approximately two years that this bounty was assigned to @markhollis, he didn’t manage to finish any of those subtasks which is a testament to how challenging this bounty truly is. Also, inflation has been pretty bad since this bounty was first posted.
Tagging the Grin OC members to review the proposed changes in a timely manner: @quentinlesceller @oryhp @tromp @Yeastplume