A secure, feature-rich mobile wallet for Stellaris and Stellaris-based chains built with React Native and Expo.
- Secure Storage: All sensitive data encrypted with Expo SecureStore
- Biometric Authentication: Fingerprint and Face ID support
- PIN Protection: Additional layer of security
- Mnemonic Backup: 12-word recovery phrase generation and import
- Auto-lock: Configurable auto-lock timeout
- Multi-wallet Support: Create and manage multiple wallets
- Easy Import/Export: Import from mnemonic or export recovery phrase
- Address Generation: Secure address generation using proven cryptography
- Balance Tracking: Real-time balance updates
- Modern UI: Clean, intuitive interface with dark/light theme support
- Navigation: Tab-based navigation with stack navigation for flows
- QR Codes: Generate QR codes for receiving payments (coming soon)
- Transaction History: View past transactions (coming soon)
- Stellaris Network: Full support for Stellaris blockchain
- Token Support: Support for STE and compatible tokens
- Transaction Sending: Secure transaction creation and broadcasting
- Fee Estimation: Automatic network fee calculation
src/
├── components/ # Reusable UI components
├── contexts/ # React contexts for state management
├── lib/ # Utility libraries and wallet functions
├── screens/ # Screen components
├── types/ # TypeScript type definitions
└── utils/ # Helper utilities
- React Native: Cross-platform mobile framework
- Expo: Development platform and SDK
- TypeScript: Type-safe JavaScript
- React Navigation: Navigation library
- Expo SecureStore: Encrypted storage
- Expo LocalAuthentication: Biometric authentication
The mobile app reuses the battle-tested wallet library from the browser extension:
- Cryptographic Functions: Reuses
quasar/src/lib/cryptographic_utils.ts - Wallet Generation: Reuses
quasar/src/lib/wallet_generation_utils.ts - Transaction Handling: Reuses
quasar/src/lib/wallet_client.ts - Data Types: Reuses type definitions from browser extension
- Node.js 18+
- npm or pnpm
- Expo CLI
- iOS Simulator (for iOS development)
- Android Studio & Emulator (for Android development)
-
Install Dependencies
npm install # or pnpm install -
Start Development Server
npm start # or expo start -
Run on Device/Simulator
# iOS npm run ios # Android npm run android # Web (for testing) npm run web
-
Configure EAS Build
npx eas build:configure
-
Build for Android
npm run build:android
-
Build for iOS
npm run build:ios
- Private keys are encrypted and stored in Expo SecureStore
- Mnemonic phrases are only shown during wallet creation/export
- Biometric authentication guards wallet access
- PIN provides fallback authentication method
- TypeScript provides compile-time type checking
- Reuses proven cryptographic functions from browser extension
- Secure random number generation for key derivation
- Input validation on all user inputs
- Supports hardware-backed security on supported devices
- Auto-lock prevents unauthorized access
- Warning messages educate users about security best practices
- Recovery phrase verification during wallet creation
- Create type definitions in
src/types/ - Implement business logic in
src/lib/ - Create UI components in
src/components/ - Add screens to
src/screens/ - Update navigation in
App.tsx
- Unit tests for utility functions
- Integration tests for wallet operations
- UI tests for critical user flows
- Security testing for cryptographic functions
- Follow TypeScript best practices
- Use functional components with hooks
- Implement proper error handling
- Add comprehensive JSDoc comments
- Follows React Native and Expo best practices
- Complies with mobile app store requirements
- Includes proper app metadata and icons
- Implements required privacy policies
- Update
app.jsonwith production settings - Configure proper app icons and splash screens
- Set up deep linking for wallet URLs
- Configure push notifications (if needed)
- Fork the repository
- Create a feature branch
- Implement changes with tests
- Update documentation
- Submit a pull request
Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
For issues and questions:
- Check the documentation
- Search existing issues
- Create a new issue with detailed information
- Contact the development team