Skip to main content
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.

Prerequisites

To use Para, you need an API key. This key authenticates your requests to Para services and is essential for integration.
Don’t have an API key yet? Request access to the to create API keys, manage billing, teams, and more.

Dependency Installation

Install the required packages for Para SDK integration:
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

Project Setup

iOS Setup

Install CocoaPods for native dependencies:
cd ios
bundle install
bundle exec pod install
cd ..
Remember to run pod install after adding new dependencies to your project.
Getting ready for App Review? See for Para-specific review tips.
If you plan to use native passkeys, additional platform configuration is required. See for iOS and Android setup.

Configure Metro Bundler

Create or update metro.config.js in your project root:
metro.config.js
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 Shim

Import the Para shim as the FIRST import in your application’s entry file (typically index.js):
import "@getpara/react-native-wallet/shim";
// Other imports...
Important: The shim import must come before any other imports to ensure required modules are available.

Initialize the SDK

Set up the Para client singleton to enable SDK interactions:
para.ts
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:
index.js
import "@getpara/react-native-wallet/shim";
import { para } from "./para";

// Initialize Para before rendering
para.init();
Beta Testing Credentials In the BETA Environment, you can use any email ending in @test.getpara.com (like 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.
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/

Examples

Troubleshooting

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

Next Steps