how to generate keypair from secret phrase (mnemonic) SOLANA

Issue

hello guys 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 word.
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 it always 0 even when i try to airdrop sols using my code it’s not getting in the account.
but if i check using my public key from phantom wallet i get the sols i have and if i want to airdrop sols they also proceed normally.
please help i need to know what is happening why generated public key is not the same as the one in phantom wallet.

Solution

hello guys i figured it out how to solve the problem , well first as "Frank C" said , 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 [ ]

**

Answered By – Said Pc

Answer Checked By – Robin (AngularFixing Admin)

Leave a Reply

Your email address will not be published.