1

I recently tried to create a paper wallet following the command below;

solana-keygen grind --starts-with kiz:1 --use-mnemonic --word-count 24 --language english --no-outfile --no-bip39-passphrase

The result was;

Found matching key kizUpLnrzjzb623gAVLb78zLs8v1HyQ7EQAfCuDC9jy

Save this seed phrase to recover your new keypair: (phrase not attached)

Now when I try to import the seed phrase to Phantom or Solflare, I'm hoping to recover the custom keypair that I have generated above as my standard SOL pubkey, but instead am prompted with the need to create new pre-generated pubkeys/wallet addresses, for example AHtScy1VhGu6xyJvkeqGmD9ophB11qvtXR5NNPpPEbhM is the default SOL address prompted when I import the seed phrase to Phantom or Solflare.

My question: How do I access or make use of the pubkey I have generated? How do 'legacy' pubkeys work in relation to web-wallets?

https://docs.solana.com/wallet-guide/paper-wallet#checking-account-balance

I have read through the above guide and solana-keygen pubkey prompt:// returns the following address; 88t7cjJYv3Yi6L4HDKtyLxJZtedoSTCN3cBtfNRAK8NM

solana-keygen pubkey ASK returns the following address; kizUpLnrzjzb623gAVLb78zLs8v1HyQ7EQAfCuDC9jy

but solana-keygen verify kizUpLnrzjzb623gAVLb78zLs8v1HyQ7EQAfCuDC9jy prompt:// returns; Verification for public key: kizUpLnrzjzb623gAVLb78zLs8v1HyQ7EQAfCuDC9jy: Failed

Any support would be greatly appreciated!

2 Answers 2

4

When a Solana wallet is generated using a mnemonic, is has a set "derivation path". The reason the wallet you generated with the CLI is different in the CLI and in your web wallet is because of this derivation path.

As of right now, the current version of the solana-keygen program (v1.14.11) uses a single set static derivation path of m/44'/501'. Which is what you would be currently using to generate your pubkey addresses.

In contrast, web based wallets like Phantom, Solflare, or Ledger use a different derivation path. It can vary between the web wallet, but the most common is m/44'/501'/0'/0'.

The difference between these derivation paths is why your generated keys are different.

Good news: there will be a new addition to the solana-keygen program that will allow people to set a derivation path (and therefore generate vanity addresses for use in web wallets). The bad news is that this should be added in v1.15.0.

So for right now, you really have two options:

  1. Wait for version 1.15.0 of the Solana CLI to be published, which you can then update your local version and use the CLI with the --derivation-path flag to generate pubkeys for use in web wallets.
  2. or you can do it now by downloading Solana source code and building the current version of the codebase (from master) and have access to it now

PS: I would not call them "legacy pubkeys" because that is not at all what they are. Both methods are pubkeys, and are the same. Just the derivation path is different :)

Update Feb 5, 2023:

I wrote two articles that go more into the details of how all this works:

1
  • thanks for the response! would upvote if possible ^^
    – kiz
    Feb 4, 2023 at 15:44
0

Not sure if this is any help, but seed phrases can derive multiple sets of key pairs. I would go out on a limb and assume that if you just kept adding “new” addresses in phantom, you’ll eventually hit your vanity keypair.

1
  • In other words, the seed phrase given to you by solana-keygen includes your vanity keypair, phantom just doesn’t default to it. Next time it might be easier to use the “-o” tag and specifying an outfile, as this will just be the corresponding private key to your vanity address. You can then simply import the private key .json into phantom.
    – Orion
    Dec 23, 2022 at 1:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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