airgap-it / airgap-vault

The AirGap Vault is installed on a spare smartphone that has no connection to any network, thus it is air gapped. This app handles the private key.
MIT License
386 stars 109 forks source link

[Request] Simplify re-creating public address #81

Closed Ahmed-Ali closed 8 months ago

Ahmed-Ali commented 3 years ago

At this moment, you have to learn what derivative path is, and what derivative path used to create existing public address (in case you migrated to Airgap using mnemonic phrase). Which isn’t the most user friendly way and in some instances really challenging.

Would be great if we have an “discover addresses” functionality which can show list of public addresses to chose from or something similar

AndreasGassmann commented 3 years ago

What is the use case you want to cover?

Changing the derivation path is an advanced feature, so generally users will just be able to add their mnemonic, generate the default address and they have all their addresses back. Only if you are an advanced user you have multiple addresses per coin (meaning potentially different DPs).

A "discover addresses" feature would be quite hard, because the Vault doesn't have an internet connection to check the generated addresses against the blockchain. So that would mean we would have to generate a bunch of addresses and then "sync" those to the wallet, do the check there, then "sync back" the ones that are actually valid. But that would require a lot of changes in our apps, without huge value for most of our users. (It would also require users to follow a defined standard when changing the derivation paths).

One thing we are planning to do is making the generation of multiple addresses per protocol easier. Currently, if you generate a new one while you already have one, it will just tell you "you already have that address". Instead, we could just increase the index by 1 and generate the next one for you. That would also make recovery easier because you can just say "Generate 5 addresses" and it will give you the first 5.

bertani commented 2 years ago

@AndreasGassmann I am very much in support of your proposal in the last paragraph, that's much needed especially now that Metamask is supported: it's very common in the ethereum land to use a bunch of addresses so being able to generate N addresses with one click would simplify that significantly. For instance if I had to move my mm's seed to Airgap I would have to repeat the single-address-adding procedure 70 times

AndreasGassmann commented 2 years ago

@bertani AirGap now derives an extended public key for ETH, so it is not required to create any additional accounts when using the Vault with MetaMask.

When you import the account in MetaMask, you will be given the option to import as many of your "sub-addresses" as you want. While AirGap Vault will only show you the first sub-address in the UI, it will actually be able to sign transactions from all addresses.

To verify the addresses you see in MetaMask with AirGap Vault, open the detail page of your ETH account and select "Address Explorer". There you will see all sub addresses of that account and you can compare them to what MetaMask shows you.

bertani commented 2 years ago

thanks @AndreasGassmann , it works great!