Grin ledger hardware wallet progress thread by @markhollis

Update for weeks May 24 to June 7,

  • I couldn’t work further much because of being unwell. At the moment I also have covid. I reorganized my client library to connect with the ledger device, according to how the company Zondax is structuring their client libraries. See for example: GitHub - Zondax/ledger-filecoin-rs.

Update for weeks June 7 to June 21,

  • I started working on the Ledger Live wallet app. I made a library to communicate with the Ledger app in TypeScript.

Awesome! Is it possible to estimate where the implementation roughly is from 0/project Idea to 100/ready for end user? I am a bit lost by just reading the individual updates, because I have no clue what is actually needed.

1 Like

The project consists largely of these parts:

  • Ledger app wallet
  • grin-wallet integration
  • Live Ledger wallet app (TypeScript and React are used in the starter project)
  • integration tests (I do these in Rust)

These are the main actions that the hardware wallet should be involved with:

  • Build coinbase
  • Build output
  • Getting slatepack proof address

It is hard to estimate or put a number percentage on it. I am not done with the previous elements, far from it. I have ‘lost’ quite some time on issues that weren’t as important; some issues with the handling of errors and traits in Rust.
For example (this can sound too technical), I wanted to make my integration test functions generic enough that it can use the hardware wallet client library, as wel as a Speculos wrapper). But this turns out to be a bit more difficult/time consuming for me at the moment, so I decided to do a more ‘back to basics’ approach.


Update for weeks June 21 to July 5,

  • I worked further on the firmware, some little things. I did some further manual testing of the firmware and I wrote some tests.

I am taking some weeks off from work.


When will we be able to send our smirks to the ledger wallet?


This is hard to say. I’m getting back into development.
Recently, Ledger has changed the Ledger SDK. I like the improvements, but it will take some time to adapt my code. I need to work on the user interface of the Ledger app. It is also hard to estimate how long the integration with grin-wallet and the Ledger Live wallet will take. I started working on that a while ago, I am trying to work towards a point where I can see better how to do the remaining part these integrations, and estimate better the amount of time it will take.


Thanks Mark. Is your code public anywhere?

No, at the moment, it is not ready to make it public.

I’ve been working the last months on incorporating changes to the Ledger rust SDK, resolving errors in the integration tests. I try to come to a point where I can run the integration tests and the Ledger app with most issues resolved. I wait with the integration for grin-wallet and Ledger Live wallet now.


I’m going to think about how I could assign something more developer oriented, but it’s hard at the moment to divide this now in well rounded tasks.

1 Like

Is this the same thing?

1 Like

No, this is another project.

1 Like

Last weeks, I mainly worked on further resolving errors in the ledger app. The Ledger Rust SDK gives some higher-level constructs now for working with keys. But after working with this, it doesn’t do everything I want, so I will revert to working with the lower-level Rust bindings.


Doesn’t Grin already work with ledger hardware wallets?? :thinking:


Grin can work with Ledger now, but it didn’t when this thread was started. It was suggested last year to join efforts.

Now there are two apps with hardware app written in different SDKs (Rust vs C).

Nicolas app seems to be developed further and the source is already open. From the high level point of view it is only missing the native grin-wallet integration. It theoretically it needs more review effort as the hardware app is written in C.

Probably only one grin Ledger integration will end up in official Ledger Live.
It would be nice to think there will be two integrations coexisting, but the reality is people will end up using only due to Ledger app store exclusivity and centralization. Question is how to make sure in the future people don’t get confused by the two implementations.

It would be nice for both devs to discuss this to understand the differences more.


I think the comment above raised valid concerns.

I have worked on resolving further build issues with the ledger app.

I would like to take time off for this project during the month January, although I will work on it while I have time.

Take time off? Hasn’t this become entirely unnecessary since @NicolasFlamel’s work? This bounty has taken hilariously long, and it too should go to Nick, since he has already done the work.


I believe OC needs to step in and clarify the bounty status. @quentinlesceller @oryhp @tromp @Yeastplume

They stated that 1 month of inactivity would trigger bounty to become unlocked but never executed that action.



I am withdrawing from this bounty. I can’t continue due to personal reasons.

So this bounty will become unlocked. Since @NicolasFlamel has already done progressed much further with the work he has done, I think that if he wants to, he should request locking this bounty for himself. Taking into account @NicolasFlamel’s work, I think it also should be clarified or reviewed by the Original Council what the milestones should be. It was the OC that originally put out the bounty. In particular, if the grin-wallet integration is still part of one of the milestones. The OC and @NicolasFlamel can discuss this together with other issues and conditions.