Skip to main content

Installation

giwa-react-native-wallet supports both Expo and React Native CLI projects.

Crypto Polyfill

react-native-get-random-values is automatically handled by the SDK internally. No separate import is needed.

Expo Projects

# npm
npm install giwa-react-native-wallet expo-secure-store expo-local-authentication react-native-get-random-values

# yarn
yarn add giwa-react-native-wallet expo-secure-store expo-local-authentication react-native-get-random-values

# pnpm
pnpm add giwa-react-native-wallet expo-secure-store expo-local-authentication react-native-get-random-values
tip

You can also use npx expo install for automatic Expo SDK version compatibility:

npx expo install giwa-react-native-wallet expo-secure-store expo-local-authentication react-native-get-random-values

React Native CLI Projects

# npm
npm install giwa-react-native-wallet react-native-keychain react-native-get-random-values

# yarn
yarn add giwa-react-native-wallet react-native-keychain react-native-get-random-values

# pnpm
pnpm add giwa-react-native-wallet react-native-keychain react-native-get-random-values
# iOS additional setup
cd ios && pod install && cd ..
Biometric Authentication

react-native-keychain provides both secure storage and biometric authentication for React Native CLI projects.

Dependency Overview

Peer Dependencies

Platform-specific packages are defined as peer dependencies. This is the standard approach in the React Native ecosystem.

  • Expo users: Install expo-secure-store + expo-local-authentication
  • RN CLI users: Install react-native-keychain

Both platforms require react-native-get-random-values.

Core Dependencies (Auto-installed)

PackagePurpose
viemEthereum client library
@scure/bip39Mnemonic generation and validation

Platform-Specific Peer Dependencies

PlatformPackageRequiredPurpose
Expoexpo-secure-storeYesiOS Keychain / Android Keystore
Expoexpo-local-authenticationOptional*Biometric authentication
RN CLIreact-native-keychainYesSecure storage + Biometrics
Allreact-native-get-random-valuesYesCrypto polyfill

*expo-local-authentication: Only required when using biometric authentication features

Secure Storage Required

Important

This SDK requires secure storage (iOS Keychain / Android Keystore). It does not provide fallbacks for web or test environments. This is an intentional design choice for secure private key storage.

Version Requirements

{
"peerDependencies": {
"react": ">=19.0.0",
"react-native": ">=0.77.0",
"expo": ">=53.0.0",
"expo-secure-store": ">=15.0.0",
"expo-local-authentication": ">=14.0.0",
"react-native-keychain": ">=9.2.0",
"react-native-get-random-values": ">=1.11.0"
}
}

Next Steps