Shielded Support for Ledger Hardware Wallets (NanoS+, NanoX)

Imagine the satisfaction of peeling that off!

4 Likes

we need to give hanh props. he managed to make shielded zec on hardware wallet finally possible in just 2 months. now we wait for ledger to implement in one day or?

5 Likes

Just curious on the process from here… I assume there will have to be an audit of the code to satisfy ledger before implementation. What is the prediction of when we will see this out in the wild?

Before the audit, there is automated testing. We have many types of transactions (more than 50!), therefore it needs to be procedurally generated.

8 Likes

I have just submitted the app to Ledger. There seems to be quite a backlog though …

17 Likes

To be included in Ledger Live?

1 Like

Based on this case study, I’ll propose that all grant proposals explicitly shall document external dependency risks to completion! This entire +2 years of punching in the dark to attempt to get milestones to deliver could have been avoided if the original grant was rejected due to the known list of external dependencies (from Ledger) out of the grantee’s (Zondax) control.

4 Likes

The template for the proposals already includes a section about external dependencies.

When it comes to the support for hardware wallets, I think the issue is not about that.

  1. Zondax has a long experience with delivering apps for Ledger. They know well what to expect.
  2. Trezor also has difficulties and it’s a 100% inhouse development

In my opinion, the reason is simple. Projects underestimate the difficulty of working with shielded Zcash. The more experience they have with other coins, the more they assume it is going to be transferrable.

Well, no. Shielded Zcash is the Cocaine Bear. If you don’t respect him, he will shred you to bits.

23 Likes

What are ideas to make working with shielded Zcash easier?

I’ve heard of the difficulty from many people, and it seems like making it easier to work with would be the fastest way to accelerate integrations.

4 Likes

Congratulations @hanh !

I hope we can see your work passing throught the ledger gates! :pray:

6 Likes

The submission can be tracked here.

6 Likes

@hanh just to confirm, this app will NOT fit onto a ledger nano S? Just asking if i have to upgrade or not

1 Like

It will NOT fit in a Nano S. Orchard is way too complex.

5 Likes

Making the impossible happen @hanh ? :slight_smile:

8 Likes

NanoS supports Transparent and Sapling.

I barely managed to make it fit. Less than 100 bytes of RAM left and that’s after manually optimizing the code size by looking at the generated assembly code…

We need testers! If you have a NanoS, or S+ and are proficient with using the command line, you can help by using YWallet 1.4.0 & Ledger.

15 Likes

I tested it tonight on an old NanoS and it worked great!

Here’s a fully shielded Sapling transaction sent from a NanoS:

13 Likes

Thanks!

One cool feature is that transactions aren’t limited in size even on the Nano S.
For example, this one has 6 shielded inputs and 5 shielded outputs.

It is because the tx builder & signer, are streaming.

To my knowledge, that is a first for any wallet/coin.

https://zcashblockexplorer.com/transactions/47bc10c6434838dcd013bf80a0d3f27dc8670c64e4c58400aa1a1bf07c947d06

17 Likes

Just tested this with 1.4.0 and the v1.0.1 zcash-ledger app.

Worked incredibly, really appreciate your work on this!

here’s my versions:

My only feedback is that while signing, the ledger screen flickered a few times? I wasn’t sure if that was intended, but either way it works.

Thanks again!

2 Likes

Screenshot 2023-05-26 at 8.25.37 PM

Ledger Nano S+ clear edition if that matters.

1 Like

Thanks, the app shows different status messages such as processing z-out, etc. The screen may flicker because some of these states don’t last long.

3 Likes