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

# Providers

> React Native context providers for React Native SDK reference for Crossmint authentication

1. `CrossmintProvider` — SDK initialization (required for all Crossmint features)
2. `CrossmintAuthProvider` — Authentication state, login/logout, and the auth flow

## CrossmintProvider

Root provider for the Crossmint SDK. Must wrap your entire application. Initializes the SDK with your API key and sets up logging.

### Props

<ResponseField name="apiKey" type="string" required>
  Your Crossmint client-side API key.
</ResponseField>

<ResponseField name="appId" type="string">
  Application identifier, sent as `x-app-identifier` header.
</ResponseField>

<ResponseField name="consoleLogLevel" type="ConsoleLogLevel">
  Minimum log level for console output (or "silent" to suppress all output). Logs below this level will not be written to the console. Set to "silent" to completely suppress console output. Defaults to "debug" (all logs shown) for backward compatibility.
</ResponseField>

<ResponseField name="overrideBaseUrl" type="string">
  Override the base API URL.
</ResponseField>

### Usage

```tsx theme={null}
import { CrossmintProvider } from "@crossmint/client-sdk-react-native-ui";

function App() {
    return (
        <CrossmintProvider apiKey="YOUR_CLIENT_API_KEY">
            {/* Your app content */}
        </CrossmintProvider>
    );
}
```

***

## CrossmintAuthProvider

Provides Crossmint authentication to your React Native app: social login (OAuth) and session management. Exposes auth state via the `useCrossmintAuth` hook and stores auth material in secure device storage. Must be nested inside `CrossmintProvider`.

### Props

<ResponseField name="appSchema" type="string | string[]">
  Your app's deep link scheme(s) (e.g. `"myapp://"`), used for OAuth redirects back into your app.
</ResponseField>

<ResponseField name="authModalTitle" type="string">
  Custom title for the auth modal.
</ResponseField>

<ResponseField name="logoutRoute" type="string">
  Custom route for logging out, for server-side session management.
</ResponseField>

<ResponseField name="onLoginSuccess" type="() => void">
  Callback invoked when the user successfully logs in.
</ResponseField>

<ResponseField name="prefetchOAuthUrls" type="boolean">
  Whether to prefetch OAuth provider URLs when the provider mounts.
</ResponseField>

<ResponseField name="refreshRoute" type="string">
  Custom route for refreshing the auth token, for server-side session management.
</ResponseField>

<ResponseField name="storageProvider" type="StorageProvider">
  Custom storage provider for auth material. Defaults to browser cookies on web and secure device storage on React Native.
</ResponseField>

### Usage

```tsx theme={null}
import {
    CrossmintProvider,
    CrossmintAuthProvider,
} from "@crossmint/client-sdk-react-native-ui";

function App() {
    return (
        <CrossmintProvider apiKey="YOUR_CLIENT_API_KEY">
            <CrossmintAuthProvider appSchema="myapp://">
                {/* Your app content */}
            </CrossmintAuthProvider>
        </CrossmintProvider>
    );
}
```

> **Note:** CrossmintAuthProvider must be nested inside CrossmintProvider. Set appSchema to your app's deep link scheme so OAuth redirects return to your app.
