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

# SocketFi React Native SDK — Mobile Wallet Overview

> Embed passkey-powered smart wallets in any React Native or Expo app — no seed phrases, no external wallet apps, no native blockchain code required.

The SocketFi React Native SDK brings the same embedded smart wallet experience as the React SDK to iOS and Android applications. Users authenticate with a device passkey, get a Stellar smart wallet created or resolved automatically, and can approve transactions — all without leaving your app or installing anything extra.

## What's included

<CardGroup cols={2}>
  <Card title="Embedded Wallet Auth" icon="wallet">
    Resolve or create a Stellar smart wallet for every user automatically as part of the passkey authentication flow.
  </Card>

  <Card title="Passkey Sign-In & Sign-Up" icon="fingerprint">
    A single `authenticate()` call handles both new and returning users. The SDK opens a hosted browser session and returns a session object when done.
  </Card>

  <Card title="Transaction Approval" icon="circle-check">
    Open a hosted approval screen in the browser so users can review and sign Soroban contract writes, then deep-link back to your app with the result.
  </Card>

  <Card title="Soroban Contract Reads" icon="magnifying-glass">
    Query on-chain state with `readContract()` — no browser session or user interaction required.
  </Card>

  <Card title="Deep Linking Support" icon="link">
    After authentication or transaction approval, SocketFi deep-links back to your app automatically using your configured app scheme.
  </Card>

  <Card title="Expo Compatible" icon="mobile">
    Built for Expo SDK 53+ with first-class support for `expo-web-browser` and `expo-linking`.
  </Card>
</CardGroup>

## Requirements

| Requirement       | Version                            |
| ----------------- | ---------------------------------- |
| React Native      | 0.76 or later                      |
| Expo SDK          | 53 or later                        |
| TypeScript        | 5 or later                         |
| Expo dependencies | `expo-web-browser`, `expo-linking` |

## How it differs from the React SDK

The API is identical — same constructor, same `authenticate()`, `requestTransaction()`, and `readContract()` methods — but the underlying flow is different because mobile browsers don't support popups.

|                       | React SDK                      | React Native SDK                          |
| --------------------- | ------------------------------ | ----------------------------------------- |
| Auth UI               | Hosted popup window            | Hosted browser session                    |
| Return mechanism      | Popup closes, Promise resolves | Deep link back to app                     |
| Session storage       | `localStorage`                 | `AsyncStorage` or `expo-secure-store`     |
| HTTPS required in dev | No (`localhost` works)         | No, but required for production API calls |

<Note>
  Deep linking is **required** for the React Native SDK to work. After the user completes authentication in the browser, SocketFi redirects them back to your app via a URL like `myapp://socketfi/auth/success`. Without a registered app scheme, users will be left in the browser with no way back.
</Note>

## Setup overview

Getting the React Native SDK running involves four steps:

<Steps>
  <Step title="Install the SDK and Expo dependencies">
    Add `@socketfi/react-native`, `expo-web-browser`, and `expo-linking` to your project.
  </Step>

  <Step title="Configure your app scheme">
    Register a custom URL scheme in `app.json` so SocketFi can deep-link back into your app.
  </Step>

  <Step title="Set up a deep link listener">
    Use `expo-linking` to listen for incoming SocketFi deep links and route them appropriately.
  </Step>

  <Step title="Initialize the SocketFi client and authenticate">
    Create a shared client instance and call `authenticate()` from a button press.
  </Step>
</Steps>

Ready to get started? Head to the installation guide.

<CardGroup cols={1}>
  <Card title="Install the React Native SDK" icon="arrow-right" href="/sdk/react-native/installation">
    Install packages, configure your Expo app scheme, and create a shared SocketFi client.
  </Card>
</CardGroup>
