> ## 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.

# Bare Workflow

> Set up the Para SDK in a React Native bare workflow project.

The Para SDK for React Native allows you to easily integrate secure and scalable wallet functionalities into your mobile
applications. This guide covers the installation and project setup for the Para SDK in a bare React Native workflow.## PrerequisitesTo use Para, you need an API key. This key authenticates your requests to Para services and is essential for integration.> [!WARNING]
>
> Don't have an API key yet? Request access to the [Developer Portal](https://developer.getpara.com) to create API keys, manage billing, teams, and more.## Dependency InstallationInstall the required packages for Para SDK integration:```bash npm theme={null}
npm install @getpara/react-native-wallet @react-native-async-storage/async-storage react-native-keychain react-native-modpow react-native-nitro-modules react-native-passkey react-native-quick-base64 @craftzdog/react-native-buffer react-native-quick-crypto viem --save-exact
``````bash yarn theme={null}
yarn add @getpara/react-native-wallet @react-native-async-storage/async-storage react-native-keychain react-native-modpow react-native-nitro-modules react-native-passkey react-native-quick-base64 @craftzdog/react-native-buffer react-native-quick-crypto viem --exact
``````bash pnpm theme={null}
pnpm add @getpara/react-native-wallet @react-native-async-storage/async-storage react-native-keychain react-native-modpow react-native-nitro-modules react-native-passkey react-native-quick-base64 @craftzdog/react-native-buffer react-native-quick-crypto viem --save-exact
``````bash bun theme={null}
bun add @getpara/react-native-wallet @react-native-async-storage/async-storage react-native-keychain react-native-modpow react-native-nitro-modules react-native-passkey react-native-quick-base64 @craftzdog/react-native-buffer react-native-quick-crypto viem --exact
```## Project Setup### iOS SetupInstall CocoaPods for native dependencies:```bash theme={null}
cd ios
bundle install
bundle exec pod install
cd ..
```> [!NOTE]
>
> Remember to run `pod install` after adding new dependencies to your project.> [!NOTE]
>
> Getting ready for App Review? See [iOS App Store Submission](https://docs.getpara.com/v3/general/ios-app-store-submission.md) for Para-specific review tips.> [!NOTE]
>
> If you plan to use native passkeys, additional platform configuration is required. See [Add Passkeys](https://docs.getpara.com/v3/react-native/guides/add-passkeys.md) for iOS and Android setup.### Configure Metro BundlerCreate or update `metro.config.js` in your project root:```javascript metro.config.js theme={null}
const { getDefaultConfig, mergeConfig } = require("@react-native/metro-config");

const config = {
  resolver: {
    extraNodeModules: {
      crypto: require.resolve("react-native-quick-crypto"),
      buffer: require.resolve("@craftzdog/react-native-buffer"),
    },
  },
};

module.exports = mergeConfig(getDefaultConfig(__dirname), config);
```### Add Para ShimImport the Para shim as the FIRST import in your application's entry file (typically `index.js`):```javascript theme={null}
import "@getpara/react-native-wallet/shim";
// Other imports...
```> [!WARNING]
>
> **Important**: The shim import must come before any other imports to ensure required modules are available.## Initialize the SDKSet up the Para client singleton to enable SDK interactions:```typescript para.ts theme={null}
import { ParaMobile } from "@getpara/react-native-wallet";

export const para = new ParaMobile(YOUR_API_KEY, undefined, {
  disableWorkers: true,
});
```Initialize it in your app entry point:```typescript index.js theme={null}
import "@getpara/react-native-wallet/shim";
import { para } from "./para";

// Initialize Para before rendering
para.init();
```> [!NOTE]
>
> **Beta Testing Credentials** In the `BETA` Environment, you can use any email ending in `@test.getpara.com` (like
> [dev@test.getpara.com](mailto:dev@test.getpara.com)) or US phone numbers (+1) in the format `(area code)-555-xxxx` (like (425)-555-1234). Any OTP
> code will work for verification with these test credentials. These credentials are for beta testing only. You can
> delete test users anytime in the beta developer console to free up user slots.> [!NOTE]
>
> If you're using a legacy API key (one without an environment prefix) you must provide the `Environment` as the first argument to the `ParaMobile` constructor. You can retrieve your updated API key from the Para Developer Portal at [https://developer.getpara.com/](https://developer.getpara.com/)## Examples

\<picture><source media="(max-width: 639px)" />
              ![React Native Integration Examples](https://docs.getpara.com/images/v3/cards/framework-react-native.png)</picture>


        

\## [React Native Integration Examples](https://github.com/getpara/examples-hub/tree/3.0.0/mobile/with-react-native)


          

Explore our repository containing React Native implementations, along with shared UI components demonstrating Para integration.

## Troubleshooting> **Para SDK initialization fails**
>
> If you're having trouble initializing the Para SDK:
>
> * Ensure that you've called `para.init()` after creating the Para instance.
> * Verify that you're using the correct API key and environment.
> * Check that all necessary dependencies are installed and linked properly.
> * Look for any JavaScript errors in your Metro bundler console.> **Native modules are not found or linked**
>
> If you're seeing errors about missing native modules:
>
> * Run `pod install` in the `ios` directory to ensure all CocoaPods dependencies are installed.
> * For Android, make sure your `android/app/build.gradle` file includes the necessary dependencies.
> * Rebuild your app after adding new native dependencies.> **Crypto-related errors or undefined functions**
>
> If you're seeing errors related to crypto functions:
>
> * Ensure you've properly set up the `react-native-get-random-values` and `react-native-quick-crypto` polyfills.
> * Verify that your `metro.config.js` file is configured correctly to include the necessary Node.js core modules.
> * Check that you've imported the shim file at the top of your root `index.js` file.> **"Cannot create URL for blob" errors**
>
> If you're encountering blob URL creation errors:
>
> * Ensure you're using `{ disableWorkers: true }` in the ParaMobile constructor
> * Verify the Para SDK shim is imported first in your `index.js` file
> * This error occurs when Web Workers are enabled in React Native environments> **Authentication fails or API requests are rejected**
>
> If you're experiencing authentication issues:
>
> * Double-check that your API key is correct and properly set in your environment variables.
> * Verify you're using the correct environment (`BETA` or `PRODUCTION`) that matches your API key.
> * Ensure your account has the necessary permissions for the operations you're attempting.
> * Check your network requests for any failed API calls and examine the error messages.For a more comprehensive list of solutions, visit our [troubleshooting guide](https://docs.getpara.com/v3/react-native/troubleshooting.md).## Next Steps<picture>![Email & Phone Login](https://docs.getpara.com/images/v3/cards/sdk-react-native-email-login.png)</picture>## [Email & Phone Login](https://docs.getpara.com/v3/react-native/guides/add-email-phone.md)Add email and phone authentication to your app.<picture>![Add Social Login](https://docs.getpara.com/images/v3/cards/sdk-react-native-oauth.png)</picture>## [Add Social Login](https://docs.getpara.com/v3/react-native/guides/add-social-login.md)Authenticate users with Google, Apple, Discord, and more.<picture>![EVM Integration](https://docs.getpara.com/images/v3/cards/evm-libraries.png)</picture>## [EVM Integration](https://docs.getpara.com/v3/react-native/guides/evm)Use Para with EVM-compatible libraries like ethers.js and viem.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.