Skip to main content
The JavaScript SDK is framework-agnostic, so it runs in React Native the same way it runs on the web: you create a Dynamic client, add extensions for the chains you support, and call functions directly. Almost every JavaScript SDK guide applies to React Native unchanged. React Native only adds a few native-specific setup steps — polyfills, native modules, and deep links.
Install the JavaScript SDK packages (@dynamic-labs-sdk/client, @dynamic-labs-sdk/react-hooks, @dynamic-labs-sdk/evm, …). Do not install the older @dynamic-labs/client React Native SDK — despite the near-identical name, it is a separate, legacy product with a different API (createClient() and a rendered WebView). This guide covers the headless JavaScript SDK only.
Before you start: a React Native app and a Dynamic environment ID from the Dynamic dashboard.

Choose your setup

The setup differs depending on how your project is built. Pick the guide that matches your app:

Expo

Set up in an Expo app, using expo install, expo-crypto, and a custom entry point.

Bare React Native

Set up in a bare React Native app (@react-native-community/cli), including Babel and native project configuration.
Expo Go is not supported. The SDK depends on native modules that are linked only when you build the native app (for example with npx expo prebuild). Use a development build, EAS Build, or a bare React Native workflow.

What’s the same as web

Once the client is created and initialized, the rest of your integration is identical to the web SDK. Use the same guides for everything else: Where React Native behaves differently, the feature guide shows Expo and Bare React Native tabs next to the web example — the APIs can differ between the two (for example, expo-linking versus react-native’s Linking). When a guide has no such tabs, the web example works as-is.
Last modified on July 22, 2026