Skip to content

Upgrading recovery

Once a wallet has been created, users have the ability to upgrade from automatic recovery to a user-owned recovery method, or to switch between different user-owned recovery methods.

INFO

Please note that:

  • If a user's embedded wallet requires recovery, they will need to complete recovery with their existing method before upgrading their recovery method.
  • Once a wallet is upgraded to a user-owned recovery method, it cannot be set back to automatic recovery.
  • iCloud recovery is only supported on iOS devices.
  • Users cannot upgrade recovery to the same cloud provider (i.e. Google drive to Google drive) as the user's existing recovery method.

Upgrading a user's recovery method

To prompt users to set or upgrade recovery on their wallet, call the setRecovery function returned by the useSetEmbeddedWalletRecovery hook.

This method will support the user-managed recovery methods you have enabled in the Dashboard. This will always include setting up a password or resetting their password as an option.

TIP

Users can reset their password using this method as well.

tsx
import {useSetEmbeddedWalletRecovery} from '@privy-io/expo';

const UpgradeWalletToPasswordButton = () => {
  const [password, setPassword] = useState('');
  const {setRecovery} = useSetEmbeddedWalletRecovery();

  return (
    <View>
      {/* Make sure to handle sensitive information appropriately */}
      <TextInput value={password} onChangeText={setPassword} />
      <Button
        onPress={() =>
          setRecovery({
            recoveryMethod: 'user-passcode',
            password,
          })
        }
      >
        Set password
      </Button>
    </View>
  );
};