BUIP198: Ledger Embedded App Development

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”
2 Likes

A note for clarity, as indicated at the top this is submitted by @dolaned. The intention is that he will be completing the BUIP if approved.

Just in case this was missed and/or hasn’t been taken into consideration; this was posted by the Ledger team back in January, and afaik this policy is still in place:

Hey @here ! Quick reminder for everyone looking to partner with Ledger to implement your project to Ledger Live app.

Considering the current market, the scope of potential integration is limited. We welcome the following projects:

  • Top 50 projects according to CoinMarketCap
  • EVMs projects
  • Cosmos ecosystem projects

This will change in the future and we will reopen to everyone when the market is better.

If you are concerned, please make sure you fill in the form here : Blockchain Support Submission Form
We will get back to you as soon as possible.

Cheers.

Victor and the Ledger team

link to the post :point_down:


fwiw, i believe this work can/should still be completed ASAP for when either:

  1. Nexa reaches the TOP 50 :rocket:
  2. the Ledger team adds capacity to support more projects :muscle:
  3. an exception is made for Nexa by the Ledger team :wink:

would also like to mention that I’m currently running a crowdfunding campaign that overlaps some of this work Campaign — Causes Cash and has already been partially funded (ie. 1 of 3 goals reached)

eta for delivery is end of June (if not sooner)

Yes, we are aware of this limitation for ledger live. This is why being implemented into the ledger live app is not a goal of this BUIP. It is limited to creating the embedded app which would be a downloadable app from the marketplace allowing people to install the nexa app on ledger without using sideloading from a development environment. using ledger with a wallet would only be available through 3rd party wallets (3rd party meaning not ledger live).

I see you have linked to some sort of crowdfunding campaign for a ledger live integration. Has any code been produced for this already? If so, can you link to it?

1 Like

ok great :+1:

got it!

and that’s what I’ve already done for SmartBCH before it completely imploded Bitcoin Please / Smart Ledger · GitLab

for Nexa, i intend to implement Ledger support into Nexa Exchange GitHub - avasdao/nexa-exchange: A decentralized, non-custodial platform for instant Nexa assets exchange across supporting blockchains.

my team in ATL has been working on the “embedded app” part, but that code hasn’t been pushed to any of my public repos as yet … that’ll happen presumably after the funding has been secured :wink:

Can you explain what you have already completed or nearly completed regarding the embedded app in a bit more detail? I want to get a sense if you are already close to completing what we wanted to accomplish with this BUIP. if you are nearly done, we can avoid duplication of work and this BUIP can be closed or repurposed.

I haven’t seen any of the work as yet…

I’m expecting to catchup with what my team has been working on next week when I’m back in ATL, but that could easily push out to the following week … i expect to be able to share all the code (via an open repo) by 5/12 (maybe sooner)

i’m not sure when this BUIP will be voted on, or when you guys plan to get started, but please don’t let me deter either of you from pushing forward, at least until I’ve had the opportunity to share what i have

fwiw, just yesterday, i learned about Pitrezor: PiTrezor : A DIY bitcoin hardware wallet based on trezor and raspberry pi zero … i don’t see how approving this BUIP would be a “poor” use of BU resources, as there are many options when it comes to hardware wallet integration(s) with Nexa :+1:

acknowledged. i suppose the BUIP can continue as written due to lack of evidence that it should be changed/cancelled.

2 Likes

definitely! :+1:

very happy to cooperate with your efforts to see this solution delivered to the community ASAP :raised_hands:

— MESSAGE —
BUIP 198 : NO - not at this time.
— SIGNATURE —
H2Bwrzu845QX3P0YNdZpnnyyQ17tv4NEneNu03/nqiPeIBvV7IQAVIZy0Q4WKYKwOS3Kq564spxvq+Bc+cAN0cA=
— END SIGNATURE —