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 installConfigure Environment
cp .env.example .envGet 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_secretRun Your App
For first-time setup, generate native project files:
npx expo prebuildThen run the app:
npm run ios # iOS Simulator
npm run android # Android EmulatorNeed 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:
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 functionsDetailed project structure can be found in the Github Repository.
Available Scripts
| Script | Description |
|---|---|
npm start | Start Expo development server with dev client |
npm run android | Run on Android emulator/device |
npm run ios | Run on iOS simulator |
npm run web | Start web development server |
npm run prebuild | Generate native project files |
npm run prebuild:clean | Clean and regenerate native project files |
npm run lint | Run ESLint |
npm run lint:fix | Fix ESLint errors |
npm run format | Format code with Prettier |
npm run format:check | Check code formatting |
npm run typecheck | Run 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:
- Theming Guide - Deep dive into theming capabilities
- Component Reference - Complete component documentation
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
- WDK SDK Documentation - Learn about the underlying SDK
- UI Kit Documentation - Customize the interface
- WDK Indexer - Understand data fetching
- Secret Manager - Learn about secure key management