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

# Installation

> Install the @wallet-ui/react-native-web3js library to integrate Mobile Wallet Adapter into your React Native app.

export const Button = ({href, children}) => {
  return <div className="not-prose group mt-3">
    <a href={href}>
      <button className="flex items-center space-x-2.5 py-1 px-4 bg-primary-dark dark:bg-white text-white dark:text-gray-950 rounded-xl group-hover:opacity-[0.9] font-medium">
        <span>
          {children}
        </span>
      </button>
    </a>
  </div>;
};

## Prerequisites

* A React Native (Expo) project set up for Android development. See the [Environment Setup](/get-started/development-setup) guide.
* An MWA-compatible wallet installed on your device or emulator. See [Install a development wallet](/get-started/development-setup#install-a-development-wallet-app).

## Install dependencies

<CodeGroup>
  ```bash npm theme={null}
  npm install @wallet-ui/react-native-web3js react-native-quick-crypto @solana/web3.js expo-dev-client
  ```

  ```bash yarn theme={null}
  yarn add @wallet-ui/react-native-web3js react-native-quick-crypto @solana/web3.js expo-dev-client
  ```

  ```bash pnpm theme={null}
  pnpm add @wallet-ui/react-native-web3js react-native-quick-crypto @solana/web3.js expo-dev-client
  ```
</CodeGroup>

## Configure polyfills

The `react-native-quick-crypto` library provides a polyfill for the `crypto` module needed by `@solana/web3.js`.

**1. Create a `polyfill.js` file in your project root:**

```javascript polyfill.js theme={null}
import { install } from 'react-native-quick-crypto';
install();
```

**2. Create an `index.js` entry point that imports the polyfill first:**

```javascript index.js theme={null}
import './polyfill';
import 'expo-router/entry'; // If using Expo Router
```

**3. Update `package.json` to use the new entry point:**

```json package.json theme={null}
{
  "main": "./index.js"
}
```

<Warning>
  The polyfill must be imported **before** any other code that uses `@solana/web3.js`.
</Warning>

## Custom Development Build

MWA uses Kotlin native modules, so you must use a [custom Expo development build](https://docs.expo.dev/develop/development-builds/create-a-build/) instead of Expo Go.

Update your `package.json` build scripts:

```json theme={null}
{
  "scripts": {
    "android": "expo run:android"
  }
}
```

## Next steps

<Card title="Setup" icon="gear" href="/get-started/react-native/setup">
  Wrap your app with MobileWalletProvider and set up the useMobileWallet hook.
</Card>
