1

I am developing a mobile wallet that supports multiple currencies (including Ethereum). As of now, it only supports one currency. The RPC wallet creation function for this currency returns a private key and public key for that currency wallet.

When I add more currencies (like Ethereum), I will have multiple private keys/public keys and would like all of them linked to a mnemonic/seed.

How would this be done? Can I create a custom seed and add private/public key pairs to it?

Or can I use my already existing private/public key pair to generate a seed?

1

You're going about this in the wrong direction.

You cannot construct arbitrary seeds from existing keys, nor can you add existing keys to an existing seed.

A seed->address key process is one way, and you must start with a seed. Any existing keys will have to be handled separately, and will not be related to the seed in any way.

There is a standardized method for generating multiple coin addresses from a single seed, which you can find under BIP-44. The list of registered coins can be found at SLIP-44.

There are a number of libraries to work with these specifications, for various coins. As long as you provide them with the same seed, all of your addresses will originate from that seed.

  • Using a mnemonic I can generate a BIP39 Seed. This seed can be used to create multiple public/private key pairs using BIP44 derivation paths for supported currencies. Is this correct? If so, using this BIP39 Seed or the Mnemonic, how can I find the private key that can be used restore the wallet? (i.e. a private key that functions like a mnemonic). I have used Ian Coleman's BIP39 tool (iancoleman.io/bip39) but when I type in the seed or mnemonic I cannot find the private key that is used to restore the wallet. Any idea? – Pranav Aug 16 '18 at 21:23
  • Each coin will have a different extended private key, which you can find under Account Extended Private Key. Note that any standards following wallet will be able to work directly from the seed as well, in addition to the account xprv (actually, I believe less wallets support the xprv) – Raghav Sood Aug 16 '18 at 21:25
  • Ah that makes sense. The currency I am using has an index of 666 on SLIP44. Unfortunately, it is not supported on Ian's website, so I am using (coinomi.com/recovery-phrase-tool.html) instead. Here, I type in the coin index, seed, and passphrase and I receive the same BIP32 Root Key. However, when I see the extended private key (xprv) it is not the same as the one generated by Achain's (coin index 666) desktop wallet. I think they convert their private key into a WIF private key. Could that be why? – Pranav Aug 16 '18 at 21:45
  • The coinomi tool doesn't list Achain either – Raghav Sood Aug 16 '18 at 22:40
  • But I can manually edit the coin index to 666 (it isnt read only) for the derivation path (unlike Ian's website). The extended private key changes after that. – Pranav Aug 16 '18 at 22:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.