Skip to main content

React Native

This documentation contains guides for using Turnkey's React Native compatible JavaScript packages.

Using these packages combined will help you create a fully-featured React Native app, powered by Turnkey.

React Native Compatible Packages

Package NameDescriptionLink
@turnkey/httpA lower-level, fully typed HTTP client for interacting with the Turnkey API.@turnkey/http
@turnkey/cryptoThis package consolidates common cryptographic utilities used across our applications, particularly primitives related to keys, encryption, and decryption in a pure JavaScript implementation.@turnkey/crypto
@turnkey/api-key-stamperA JavaScript package for API stamping functionalities. It is meant to be used with Turnkey's HTTP package.@turnkey/api-key-stamper
@turnkey/encodingThis package contains decoding and encoding functions used by other Turnkey packages.@turnkey/encoding
@turnkey/react-native-passkey-stamperA React Native package for stamping payloads with passkeys. It is meant to be used with Turnkey's HTTP package.@turnkey/react-native-passkey-stamper
@turnkey/sdk-react-nativeThis package simplifies the integration of the Turnkey API into React Native applications. It provides secure session management, authentication, and cryptographic operations.@turnkey/react-native-sessions
@turnkey/ethersA package for integrating Turnkey signers with the Ethers.js library.@turnkey/ethers
@turnkey/solanaA package for integrating Turnkey signers with the Solana blockchain.@turnkey/solana
@turnkey/cosmjsA package for integrating Turnkey Signers with the CosmJS library.@turnkey/cosmjs
@turnkey/viemContains helpers to use Viem with Turnkey.@turnkey/viem

You can see all of Turnkey's JavaScript packages on npmjs.

Getting Started

The easiest way to build a React Native app with Turnkey is to use our React Native demo wallet as a starter. This app is a fully-featured example that demonstrates how to use the Turnkey's JavaScript packages to authenticate users, create wallets, export wallets, sign messages, and more.

The app includes a backend JavaScript server which uses @turnkey/sdk-server to make requests to Turnkey that must be signed by the parent organization. An example of a request that must be signed by the parent organization is creating a sub-organization. (code reference)

Some requests made to Turnkey must be signed by the sub-organization. These are ran by the app directly. You can find these requests in the app's TurnkeyProvider. An example of a request that must be signed by the sub-organization is creating a wallet. (code reference)

Video

Complete the installation and setup by following the instructions in the README file.