> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hedera.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Recover keys from a mnemonic phrase

Recover private keys from a mnemonic phrase.

<table><thead><tr><th /><th /><th /></tr></thead><tbody><tr><td><strong>Method</strong></td><td><strong>Type</strong></td><td><strong>Description</strong></td></tr><tr><td><code>PrivateKey.fromMnemonic(\<mnemonic>)</code></td><td>Mnemonic</td><td>Recover a private key from a mnemonic phrase compatible with the iOS and Android wallets</td></tr><tr><td><code>PrivateKey.fromMnemonic(\<mnemonic, passphrase>)</code></td><td>Mnemonic. String</td><td>Recover a private key from a generated mnemonic phrase and a passphrase</td></tr></tbody></table>

<CodeGroup>
  ```java Java theme={null}
  //Use the mnemonic to recover the private key
  PrivateKey privateKey = PrivateKey.fromMnemonic(mnemonic);
  PublicKey publicKey = privateKey.publicKey();

  //v2.0.0
  ```

  ```java JavaScript theme={null}
  //Use a recovered mnemonic to recover the private key
  const recoveredMnemonic = await Mnemonic.fromString(mnemonic.toString());
  const privateKey = await recoveredMnemonic.toPrivateKey();

  //v2.0.5
  ```

  ```java Go theme={null}
  recoveredKey, err := hedera.PrivateKeyFromMnemonic(mnemonic, "")
  publicKey := recoveredKey.PublicKey()

  //v2.0.0
  ```

  ```rust Rust theme={null}
  // Recover private key from mnemonic phrase with passphrase
  let private_key = PrivateKey::from_mnemonic_with_passphrase(&mnemonic, "passphrase")?;
  let public_key = private_key.public_key();

  // v0.34.0
  ```
</CodeGroup>
