Polkadot Generic Ledger App

Hello everyone,

In the months since the approval of our proposal our team has been deeply engaged in the development of the Generic Polkadot App and we’re excited to share our progress.

Key Developments so far:

  1. Specs for Metadata Protocol: We have been collaborating with the Alzymologist team in the specification of the metadata for offline signers. The metadata size is crucial for our solution since Ledger devices have ~4 kB of RAM. The outcome from this protocol was a reduction in the size of the metadata from 300 kB to ~5 kB.

  2. Development of an early prototype for Offline Devices: using an early version of this new metadata we have initiated development of the generic app for Ledger devices. We have ensured safety and security by adopting clear signing on most of pallets and methods, avoiding illegible hashes, and making signatures human-readable. We presented our prototype during the Sub0 conference and a recording of it can be viewed here. We have also uploaded another demo video here

In this repository the progress of this project can be tracked​.

Looking Ahead:

These are some of the upcoming areas we will be focusing during the next months:

  • Communication package
  • Integration with web wallets and Ledger Live
  • Extend testing coverage to most pallets and parachains
  • Incorporating metadata into signatures
  • Third party security audit

We appreciate the ongoing support from the Polkadot community and look forward to sharing more updates soon. If you have any questions you can always contact our team at ledger@zondax.ch

20 Likes

Thanks so much for the update - this will be a huge unlock in UX for anyone using Polkadot SDK chains :heart_eyes:

Hey everyone,

We want to share with you that we continue to make solid progress in the development of the Generic Polkadot App and we are excited to share the latest updates with you.

Recent Developments:

This past month, as anticipated, we managed to complete and have ready the following points:

  • JS Communication package: Done, we will make it public soon.

  • Extended testing coverage to most pallets and parachains: We have tested all pallets of Polkadot/Kusama, Statemine/Statemint, and other parachains.

  • Incorporating metadata into signatures: Parity has provided a branch based on Rococo GitHub - paritytech/polkadot-sdk at bkchr-metadata-hash

What’s Next:

Now, with these achievements, we’re moving forward to the following areas:

  • Development of the Migration App: this will allow to unlock and move funds that are currently in existing Ledger applications.

  • Integration with Web Wallets and Ledger Live: conversations are currently on going

  • Third-Party Security Audit, which we plan to start coordinating in the coming weeks.

  • A guide for Parachains, to add the changes needed on the runtime to be able to use the generic app. This needs RFC 46 (see below) to be approved so that there’s a specification document ready.

In order to add this functionality to the Polkadot Runtime, the team has opened RFC #46. We kindly request the fellows to take a look at this and provide feedback so that this can be improved and added to the Polkadot Runtime.

7 Likes

How is this effort progressing folks?
Can we have some ballpark estimates on when we can expect the productive app to go live?

1 Like

Hi @branarakic, from our side, the work on the app is mostly completed. We also plan to publish soon the js communication package so that other wallets can integrate. We’re currently waiting on approval for this: Metadata for offline signers by Slesarew · Pull Request #46 · polkadot-fellows/RFCs · GitHub
to proceed with the security audit.

Thanks @ainhoa-a. Fingers crossed you manage to deliver soon, the OriginTrail community is very eager to use the app

Hi! I bring more updates! We have just published the js communication package @zondax/ledger-polkadot - npm

We’re too! We’re pushing this but at the moment we really need the RFC to be approved

what can we do to expedite the RFC?

Hi Everyone,

Providing a quick update from the Parity side. The teams involved in this project have been working exceptionally hard over the past few months and we would like to share some details on progress.

Major Milestones Remaining:

  • The app developed by Zondax is essentially ready and is awaiting audit, this must be completed after the RFC is accepted to avoid any changes in the implementation of the specifications which would result in a re-audit.
  • At present the plan is to launch with two applications:
    • Generic ledger app.
    • Migration app.
      • The migration app is effectively the same as the generic app but will allow users to migrate their tokens from non-standard derivation paths to the generic Polakdot derivation path implemented in by project e.g. Acala, Astar.
  • The RFC is under review. Once it is accepted by the Fellowship the specification can be implemented in the runtimes (i.e. Kusama & Polkadot).
  • Parachains will also need to upgrade their runtimes with the new spec to be able to use the app. More details to follow as we get closer.
  • Wallets: Both Talisman and SubWallet are progressing exceptionally well towards integrating and testing the Ledger app.

Call To Action:

  • RFC Feedback: If anyone would like to provide feedback on the RFC please do!
  • DevX: We warmly welcome any Parachain team that would like to test the new app on Rococo once it is ready. If you are interested please reach out here!

In terms of the project overall, as we near completion, it would be remiss not to express that it has been an exceptional experience working with the Fellowship, Alzymologist, Zondax, SubWallet, and Talisman. The level of collaboration and support from everyone involved is an amazing testament to the culture within the Polkadot ecosystem.

12 Likes

Congratulations on the excellent progress.

I wanted to ask on behalf of the numerous and growing number of Substrate based non-parachain teams out there: is there anything about what you are describing that will not work with such chains? Either at the lowest level, or simply being included in the list supported chains in the Ledger apps.

1 Like

Hi @justin_galfond there won’t be a “whitelisting” of parachains on the Ledger application level. Any substrate-based team that upgrades to the Polkadot runtime that includes this new metadata will benefit from it. :heart_hands:

4 Likes

Fantastic! elated to hear that

Is there some sort of demo that shows the UX end-to-end ?

You can check this video https://www.youtube.com/watch?v=zEjlaRcRloM We do not have yet an end-to-end demo that includes web-wallets.

Can you elaborate on what you mean by „new spec“? After going through the RFC, this appears to be adding a signed extension for the constant binary merkle tree root hash which represents the necessary metadata.

AFAIU, parachain teams are not required to be on the same Polkadot SDK version as their respective relay chain. A quick comment about the validity of this assumption would be great, thank you!

Hi, are there some new updates to this? Can’t wait to be able to use all parachains on my ledger :smiling_face_with_three_hearts:

Hi @IceHax we are making solid progress, the RFC has been approved :partying_face:

1 Like

Is there any tentative ETA on the app being available to download?

1 Like

This will first require a runtime upgrade. We aim for including this into the 1.3.0 release.

1 Like

Thanks for the update! Is the v1.3.0 runtime version already pinned to an SDK version? If so, which one?

Moreover, I would like to re-raise my question whether parachain teams need to continuously be in sync with the current SDK version of their respective relay.