WDK logoWDK documentation

React Native Starter (Alpha)

Multi-chain wallet starter built with WDK, Expo, and React Native

The React Native Starter Alpha is an Expo + React Native app showing how to build a multi-chain wallet using WDK via BareKit worklets and secure secret management. This starter includes wallet creation/import flows, balances, transactions, and a modular service layer.


Prerequisites: Node.js 22+, and either Xcode (iOS) or Android SDK API 29+ (Android). See the React Native Quickstart for details.

Quick Start

Get your React Native wallet running in minutes with these simple steps:

Clone and Install

git clone https://github.com/tetherto/wdk-starter-react-native.git && cd wdk-starter-react-native && npm install

Configure Environment

cp .env.example .env

Get your free WDK Indexer API key here and add it to your .env file:

EXPO_PUBLIC_WDK_INDEXER_BASE_URL=https://wdk-api.tether.io
EXPO_PUBLIC_WDK_INDEXER_API_KEY=your_actual_api_key_here
# Optional: For Tron network support
EXPO_PUBLIC_TRON_API_KEY=your_tron_api_key
EXPO_PUBLIC_TRON_API_SECRET=your_tron_api_secret

Run Your App

For first-time setup, generate native project files:

npx expo prebuild

Then run the app:

npm run ios     # iOS Simulator
npm run android # Android Emulator

Need detailed instructions? Check out the complete React Native Quickstart guide for step-by-step setup, configuration, and troubleshooting.

Features

Multi-Token & Chain Support

  • BTC: Native SegWit transfers on Bitcoin network
  • USD₮: Gasless transactions on EVM (Ethereum, Polygon, Arbitrum), native transfers on TON and Tron
  • XAU₮: Gasless transactions on Ethereum network

Wallet Management

  • Secure Seed Generation: Cryptographically secure entropy generation
  • Seed Import: Import existing 12-word mnemonic phrases
  • Encrypted Storage: Secure key storage via @tetherto/wdk-secret-manager
  • Multi-Account Support: Derive multiple accounts from single seed

Asset Management

  • Real-Time Balances: Live balance updates via WDK Indexer
  • Transaction History: Complete transaction tracking and history via WDK Indexer
  • Price Conversion: Real-time fiat pricing via Pricing Provider

User Experience

  • QR Code Scanner: Scan addresses and payment requests via camera
  • Send/Receive Flows: Intuitive transfer interfaces
  • Network Selection: Choose optimal network for each transaction
  • Token Selection: Multi-token transfer support
  • Activity Feed: Real-time transaction monitoring

Project Structure

The starter includes a modular architecture designed for scalability and maintainability:

Project Structure
src/
├── app/                    # Expo Router screens (file-based routing)
│   ├── onboarding/         # First-time user flows
│   ├── wallet-setup/       # Create/import wallet screens
│   ├── send/ & receive/    # Transaction flows
│   ├── settings.tsx        # Configuration & preferences
│   └── token-details.tsx   # Individual asset views
├── components/             # Reusable UI components
├── config/                 # Network, asset, and chain settings
├── services/               # Business logic (pricing integration)
├── hooks/                  # Custom React hooks
└── utils/                  # Formatting & helper functions

Detailed project structure can be found in the Github Repository.


Available Scripts

ScriptDescription
npm startStart Expo development server with dev client
npm run androidRun on Android emulator/device
npm run iosRun on iOS simulator
npm run webStart web development server
npm run prebuildGenerate native project files
npm run prebuild:cleanClean and regenerate native project files
npm run lintRun ESLint
npm run lint:fixFix ESLint errors
npm run formatFormat code with Prettier
npm run format:checkCheck code formatting
npm run typecheckRun TypeScript type checking

Technology Stack

Core Technologies

  • Expo: ~54.0.8 with development client
  • React Native: 0.81.4
  • React: 19.1.0
  • TypeScript: ~5.9.2
  • Reanimated: ~4.1.0
  • New Architecture: Enabled

Build Configuration

  • Android: minSdkVersion 29
  • iOS: Latest Xcode toolchain
  • Build Properties: Configured via expo-build-properties

Next Steps

Customizing the UI

This starter uses components from the WDK React Native UI Kit. To customize the look and feel:

Add new functionality

This starter provides a solid foundation that you can extend with additional functionality:

  • Add support for other tokens using wallet modules in the WDK SDK
  • Add DeFi protocols like swaps, bridges, and lending using protocol modules

Or explore documentation


Need Help?

On this page