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

# Guest Mode

> Allow users to use your app via guest wallets without signing up.

Guest Mode allows you to provision one or more wallets for a new user so they can start using your app without going through the sign-up process.

<Info>
  With Guest Mode enabled, you can offer an option for your users to get started with a guest account without signing up. When users eventually sign up, any previously created guest wallets will immediately be linked to their account.
</Info>

## Create Guest Wallets

Use the `useCreateGuestWallets` hook to create guest wallets programmatically:

```tsx AppContent.tsx theme={null}
import { useCreateGuestWallets } from "@getpara/react-native-wallet";
import { Button, Alert } from "react-native";

function GuestLoginButton() {
  const { createGuestWallets, isPending, isError } = useCreateGuestWallets();

  const onPressGuestLogin = () => {
    createGuestWallets(undefined, {
      onSuccess: (wallets) => {
        console.log("Guest wallets created:", wallets);
      },
      onError: (error) => {
        Alert.alert("Error", "Failed to create guest wallets");
        console.error(error);
      },
    });
  };

  return (
    <Button
      title={isPending ? "Creating..." : "Continue as Guest"}
      onPress={onPressGuestLogin}
      disabled={isPending}
    />
  );
}
```

## Tracking Guest Wallet Creation

Monitor wallet creation status with the `useCreateGuestWallets` hook's own state, or use a separate state variable for cross-component access:

```tsx theme={null}
import { useCreateGuestWallets } from "@getpara/react-native-wallet";
import { View, Text } from "react-native";

function GuestStatus() {
  const { isPending, isError, data } = useCreateGuestWallets();

  if (isPending) return <Text>Creating guest wallets...</Text>;
  if (isError) return <Text>Error creating guest wallets</Text>;
  if (data) return <Text>Ready! {data.length} wallet(s) created</Text>;

  return null;
}
```

<Tip>
  We recommend using `getUserShare` and `setUserShare` to save and restore the user share for a guest wallet, just as you would for a pregenerated wallet.
</Tip>

## Limitations

Currently, guest wallets are prevented from buying or selling crypto through the integrated onramp providers. If a guest wallet is funded, you must be careful to maintain user access to the wallets to ensure no funds are lost.

<Tip>
  We recommend using `getUserShare` and `setUserShare` to save and restore the user share for a guest wallet, just as you would for a pregenerated wallet.
</Tip>
