Ledger Embedded App Development
Submitted by Dolaned
Sponsored by Griffith
19 April 2023
Motivation
Hardware wallets are a common way for crypto users to store the keys that hold their coins. It is crucial for Nexa’s growth that hardware wallets be supported to reach the growing number of hardware wallet users.
Objectives
The objective of this BUIP is to have an app for nexa on the ledger live marketplace that supports all signature types allowed in nexa. This will be divided up into two phases.
Phase 1
The developer will need to develop a ledger embedded app that supports the nexa blockchain and publish the code under the nexa gitlab repo. The app will have the ability to sign any type of transaction output (P2PKH, P2PKT, P2SH, etc.) supported by the nexa blockchain using schnorr signatures. It will also have the necessary scaffolding in place for the ability to sign with FALCON signatures (512 and 1024) when they become available on the network.
There are three possible ways that this phase might be completed. The ideal solution will be to link libnexa into the ledger app to handle signatures and transaction serialization/deserialization preventing the duplication and reimplementation of consensus critical code. If that is not possible due to some restriction or complication, a refactor/redefinition of nexad files to allow the ledger app to pull in consensus critical code using the git equivalent to a symlink should be attempted. If this also fails for some unforeseen reason, a discussion with BU developers will take place to decide if a the code should be reimplemented for ledger or if the project should be discontinued. In the event of a discontinuation, some amount of fair compensation for time will be negotiated with The Developer.
Deliverables
Ledger embedded app for Nexa
Budget
15,000 USDC for the completion of the app and any libraries or nexa full node work that are required as a prerequisite
Phase 2
After the completion of phase 1 with the code published to the nexa gitlab repo, the code will be submitted to the ledger team for review and audit before ultimately being listed on the ledger live marketplace as an app that is supported by 3rd party wallets. This could potentially involve a lot of back-and-forth with the ledger team depending on their review requirements, required standards, and anything else they request be changed in the embedded app. Because of this open-ended timeline, any expenditure of funds to pay for time spent on this phase will be entirely at the discretion of The Developer (Andrew Stone) from his discretionary budget. The Developer has the ability to takeover the BUIP at this phase and reassign the work of getting listed on the ledger marketplace to a BU developer in the event that this is taking too long or incurring too many issues.
Deliverables
listing for nexa on ledger live marketplace as a blockchain app “supported by 3rd party wallets”
Budget
No limit. Any fees for time spent on this will be entirely at the discretion of The Developer (Andrew Stone) and should fit in his discretionary budget.
Maintenance
12 months of general software maintenance, bug fixes, and updates are to be provided. The funding for maintenance is built-in to the budget for phase 1.
Licensing
All code created/modified as a result of this BUIP will be
- released under the MIT license
- copyrighted to “The Bitcoin Unlimited developers”