@turnkey/react-native-wallet-kit

v1.4.2
  • Types
  • ESM
  • CJS

The easiest and most powerful way to integrate Turnkey's Embedded Wallets into your React Native applications.

License
MIT
Install Size
453.5 kB/-
Vulns
0
Published

Get started

$npm install @turnkey/react-native-wallet-kit
$pnpm add @turnkey/react-native-wallet-kit
$yarn add @turnkey/react-native-wallet-kit
$bun add @turnkey/react-native-wallet-kit
$deno add npm:@turnkey/react-native-wallet-kit
$vlt install @turnkey/react-native-wallet-kit

Readme

@turnkey/react-native-wallet-kit

The easiest and most powerful way to integrate Turnkey's Embedded Wallets into your React Native applications.

Getting started

To learn how to setup your Turnkey organization and configure the Auth Proxy, check out our Getting Started guide for React Native.

Installation

You can use @turnkey/react-native-wallet-kit in any React Native app (Expo or bare).

npm install @turnkey/react-native-wallet-kit

This package requires the following peer dependencies:

npm install react react-native react-native-passkey react-native-inappbrowser-reborn react-native-gesture-handler react-native-safe-area-context react-native-svg @react-native-async-storage/async-storage react-native-get-random-values react-native-url-polyfill buffer

Quick Start

Provider
import { TurnkeyProvider } from "@turnkey/react-native-wallet-kit";

export default function App() {
  return (
    <TurnkeyProvider
      config={{
        organizationId: "your-organization-id",
        authProxyConfigId: "your-auth-proxy-config-id",
      }}
    >
      {/* Your app content */}
    </TurnkeyProvider>
  );
}

If you're using Expo, ensure polyfills are imported early (e.g., in your root layout) and Buffer is defined:

import "react-native-get-random-values";
import "react-native-url-polyfill/auto";
import { Buffer } from "buffer";
(global as any).Buffer = (global as any).Buffer || Buffer;

Quick authentication

import { useTurnkey, AuthState } from "@turnkey/react-native-wallet-kit";

function LoginButton() {
  const { loginWithPasskey, loginWithOtp, handleGoogleOauth } = useTurnkey();

  return (
    <>
      <Button title="Login with Passkey" onPress={() => loginWithPasskey()} />
      <Button
        title="Login with Email OTP"
        onPress={async () => {
          // initialize + verify OTP as needed, then:
          await loginWithOtp({ email: "user@example.com", otp: "123456" });
        }}
      />
      <Button title="Login with Google" onPress={() => handleGoogleOauth()} />
    </>
  );
}

Development

This package is part of the Turnkey SDK monorepo. To build:

pnpm build

To run tests:

pnpm test

License

MIT