The following thread is to open a discussion in regards to 2 subjects and to eventually arrive to an agreement in order to propose an IPP (ICON Improvement Proposal) to standardize these subjects.
The subjects to discuss are:
-
the current ICONex Connect which is an event based communication protocol to allow external webpages to communicate with the ICONex Chrome wallet. This protocol was also used by Reliant Node Team in the development of both Hana and MyIconWallet to ensure compatibility.
-
the BIP44 standard in regards to coin_type and derivation paths for ICON.
Background and reasoning behind this post.
Making an standard for an “ICON Provider JS API” (currently the ICONex connect specs) and “BIP44 coin_type and derivation paths” are important to ensure web applications and wallets across the entire ICON ecosystem.
An standardized “ICON Provider JS API” will ensure that all the wallets in the ecosystem implement the same communication protocol, the benefit of this is to allow web app developers to implement 1 communication protocol and have support for several wallets.
Creating an standard for the BIP44 coin_type and derivation paths for ICX wallets will allow for compatibility for wallet generation based on mnemonic seeds across the ICON ecosystem. The benefit of this are the following:
- Allow backup compatibility between wallets that generate addresses based on mnemonic seeds.
- Create a seamless user experience in web apps that allow for users to login or sign transactions with ledger devices. To explain this point a bit further, currently to use a ledger device you have to use either ICONex or Hana as middlewares for the ledger device, these wallets will connect to the ledger device, supply a BIP44 derivation path and the ledger device will reply with a public address. If lets say Balanced implements ledger support for its users and supply a different BIP44 derivation path to the ledger device, the wallet addresses that the user will see in Balanced will be different than the wallets that the user will see in ICONex or Hana, even if the ledger device is the same.
here are a couple of links where ive been having these discussions before posting this thread:
https://github.com/icon-project/ledger-app-icx/issues/23
https://github.com/icon-project/devportal/issues/35
EDIT: The following thread has been created to discuss the BIP44 derivation path standard