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/legacy-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 developer console.

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.
Prefer a single guided path? Start with the React Native Quickstart (JS SDK) — Agent-friendly prompt or Manual embed — then return here for platform-specific details.
An embedded wallet signs inside a WebView that the SDK loads with metadata.universalLink as its host origin, so that exact value must be listed under Allowed Origins in your environment’s dashboard security settings. If it isn’t, the WebView is rejected and every signing action fails with “The embedded wallet failed to load after exhausting its retry attempts”, while reads keep working because they never open it.
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: Two features have React Native specifics on their own pages: Passkeys and Business Accounts. 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 October 16, 2026