2

I am working with Solana and phantom wallet I have a wallet with a public key and I have it's secret phrase composed of 12 words. when I generate keypairs from the secret phrase I use:

const getKeyPair = (mnemomic) => {
  const seed = bip39.mnemonicToSeedSync(mnemomic).slice(0, 32);
  const Keypair = web3.Keypair.fromSeed(seed);
  return Keypair;
};

the generated keypair has publicKey and privateKey , but when am checking my balance using the generated public key I find the balance is always 0 even when I try to airdrop Sol using my code it's not getting in the account.

But if I check using my public key from phantom wallet I get the Sol I have and if I want to airdrop sols they also proceed normally.

Why is my generated public key not the same as the one in phantom wallet?

mikemaccana
  • 110,530
  • 99
  • 389
  • 494
Said Pc
  • 565
  • 7
  • 13

2 Answers2

3

solana-keygen recover 'prompt:?key=0/0' -o phantom_wallet.json

Frank C.
  • 7,758
  • 4
  • 35
  • 45
  • thanks bro this was the solution i don't know why it was generating different keys using the bip39 and web3.Keypair.fromSeed but now i generate them using SOLANA CLI and it's working thank you very much bro. – Said Pc Feb 10 '22 at 14:10
2

First, we need to generate the publicKey and privateKey from the seed phrase using this command :

solana-keygen recover 'prompt:?key=0/0' -o phantom_wallet.json

remark : our account may have many wallets the command above access the first wallet , if we need to access wallet number 10 for example we need to change the 'prompt:?key=0/0' to 'prompt:?key=10/0' "only the first 0 is changing"

next this will generate public key "will be written in the console" and a json file with secret key contains an array of 64 element which is the secret key. now to generate the KEYPAIRS in solana web3 javascript SDK we do the following:

 let seed = Uint8Array.from(
    process.env.REACT_APP_OUR_SECRET_KEY.split(",")
  ).slice(0, 32);

  // create keypairs
  let KEYPAIRS = web3.Keypair.fromSeed(seed);

IMPORTANT : in .env files REACT_APP_OUR_SECRET_KEY is stored without brackets [ ] example : 15,320,52,... as we see a table without brackets [ ]

Dharman
  • 30,962
  • 25
  • 85
  • 135
Said Pc
  • 565
  • 7
  • 13