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

# Provision new devices

> Transfer embedded wallet key material to new devices through the provisioning process

Once a user has created an embedded wallet, when they attempt to use the wallet on a *new* device, the key material for their wallet must be transferred to that new device. This process is known as **provisioning a new device**.

<img src="https://mintcdn.com/privy-c2af3412/zlmLhiIqRR7ViKN0/images/recovery-hero.png?fit=max&auto=format&n=zlmLhiIqRR7ViKN0&q=85&s=ab913f829531edbc1f9925afc1b78546" alt="recovery-hero" width="1415" height="1018" data-path="images/recovery-hero.png" />

<View title="React" icon="react">
  To prompt users to set or upgrade recovery on their wallet, call the `setWalletRecovery` method from the `useSetWalletRecovery` hook.

  ```tsx theme={"system"}
  setWalletRecovery: async () => Promise<Wallet>
  ```

  <Tip>
    Users can **reset** their password using this method as well.
  </Tip>

  ### Usage

  ```tsx theme={"system"}
  import {useSetWalletRecovery} from '@privy-io/react-auth';
  const {setWalletRecovery} = useSetWalletRecovery();
  ```

  ### Returns

  <ResponseField name="wallet" type="Promise<Wallet>">
    A `Promise` for the linked account object for the created wallet.
  </ResponseField>
</View>

<View title="React Native" icon="react">
  To prompt users to set or upgrade recovery on their wallet, call the `recoverEmbeddedWallet` method from the `useRecoverEmbeddedWallet` hook.

  ```tsx theme={"system"}
  recover: async ({recoveryMethod: 'user-passcode' | 'google-drive' | 'icloud', password?: string}) => Promise<void>
  ```

  <Tip>
    Users can **reset** their password using this method as well.
  </Tip>

  ### Usage

  ```tsx theme={"system"}
  import {useRecoverEmbeddedWallet} from '@privy-io/expo';
  const {recover} = useRecoverEmbeddedWallet();
  ```

  ### Parameters

  <ParamField path="params.recoveryMethod" type="string" required={true}>
    An enum representing the recovery method used for this user.
  </ParamField>

  <ParamField path="params.password" type="string">
    The password to use for recovery.
  </ParamField>

  ### Returns

  <ResponseField name="wallet" type="Promise<Wallet>">
    A `Promise` for the updated wallet object.
  </ResponseField>
</View>
