What needs to happen for our DeFi Ecosystem ASAP?

Some more detailed thoughts on Ledger hardware wallet based on the input from our devs.

Issues with ledger app integration:

There should be one universal ledger app that will work with all parachains. The closest analogue is the Cosmos ecosystem, in which one application supports most of the projects. A less similar analogue is an ether application that works equally well for all projects on ether + for all EVM networks (BSC, HECO, Moonbeam, …)

Problems of creating different ledger apps for different parachains:

  1. The Ledger team is overwhelmed with work and responds EXTREMELY slowly. From our experience, the answer to your request may come in a month or two.

  2. Unique derivation path for each app (a unique account for each relay chain and parachain). Which leads to a number of problems:

  • Most applications do not have derivatives path selection functionality. So users, who transfer tokens from Kusama to parachain, for example, have their account changed and lose access to their tokens. The entire flow is not directly obvious to the average user (need to export mnemonic with correct derivation path).

  • The inability to participate in a crowdloan with a ledger with guaranteed access to its rewards on a parachain without exporting mnemonics to less secure environments (for example, an extension, a mobile application). Most likely, a new project that participates in the crowdloan will not have it’s app built for a long time, because of which users will have to wait and get a negative experience from the entire ecosystem.

  • Even if developers of parachain/relay chain applications will include functionality for selecting derivation paths in their ledger applications, this will cause all applications to need to upgrade to support new parachains. The alternative is for users to set derivation path manually, which is complicated for average user

The ledger app works as a full-scale decoder, where pallet numbers and their respective methods are hard-coded. This leads to following problems:

  1. Some transactions become unavailable after the runtime upgrade if there are changes to pallet indices and/or changes to extrinsic types.

  2. These problems in conjunction with slow ledger support response lead to the fact that users lose access to their assets for a prolonged period of time

Possible solution:

Abandon call data decoding on the device.

The main reason why it is necessary to make a distinct ledger app for each parachain is the need to decode the call data of every extrinsic.

Ethereum ledger app, for example, never decodes transactions, one exception being a transfer. That is, the user checks data in the metamask, for example, and approves it on a ledger.

In the case of the Polkadot ecosystem app, the call data is already being decoded in apps/mobile apps. In order to be sure that the ledger has a corresponding call data, it’s possible to display the hash of the call data both in the extension / mob. application, and on the ledger. This will eliminate the need to implement an extra decoder for each parachain after the runtime upgrade.

5 Likes