> For the complete documentation index, see [llms.txt](https://cramiumlabs.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cramiumlabs.gitbook.io/docs/sdk-mpc-ios/usage-guide-for-an-mpc-wallet-app/import-recovery.md).

# Import/Recovery

To perform the key import process for MPC wallets, you need to:

1. **Import the mnemonic phrase** and derive private keys for child wallets.
2. **Generate a list of `KeyGenWallet`** using the derived private keys and public wallet addresses.
3. **Recall the `createMnemonicWallet` method** with the same input list of `KeyGenWallet`.
   * `wallets`: A list of KeyGenWallet to perform keygen. Each item requires: - `secret`: The private key of the Child Wallet (derived from the mnemonic phrase). - `walletAddress`: The public address or public key of the Child Wallet. - `ChainId`: The chain name (e.g., ethereum, solana). - `ecType`: The cryptographic algorithm type (eddsa, ecdsa).
4. When receiving the backup from **`createMnemonicWallet()`** , please ensure that the server shards of the newly created Paillier group and Keygen group are stored in a safe and secure location.

**Example**:

```swift

let walletResponse = client.createMnemonicWallet(
    name: "KeyGenGroupID123",
    numParties: 2,
    mnemonicPhrase: "your mnemonic phrase here",
    wallets: [
        KeyGenWallet(
            secret: "derived private key",
            walletAddress: "0xYourWalletAddress",
            chainId: "ethereum",
            ecType: "ecdsa"
        )
    ]
)

for masterWallet in walletResponse.masterWallets {
    for wallet in masterWallet {
        // Assuming wallet has properties: keyIdentity, ecType, and address
        print("keyIdentity: \(wallet.keyIdentity) - ecType: \(wallet.ecType) - address: \(wallet.address)")
    }
}
```
