Start the Expo development server:
yarn startRun on iOS simulator/device:
yarn iosRun on Android emulator/device:
yarn androidPrebuild native projects (cleans existing native directories):
yarn prebuildBuild iOS app for production (via EAS):
yarn build:iosBuild iOS app for development (via EAS):
yarn build:dev:iosBuild Android APK (preview profile):
yarn build:android:apkSubmit iOS build to App Store:
yarn submit:iosSubmit Android build to Play Store:
yarn submit:androidRun ESLint:
yarn lintRun TypeScript type checking:
yarn type-checkFormat code with Prettier:
yarn prettyRun Maestro UI tests:
yarn maestro- Cashu ecash support - Send and receive Bitcoin via ecash tokens
- Lightning Network integration - Lightning payments and invoices
- Multi-currency support - USD, EUR, GBP, and Satoshi units
- QR code scanning - Camera-based payment processing
- NFC support - Contactless payment capabilities
- BIP39 mnemonic recovery - 12-word seed phrase backup
- NIP-06 key derivation - Deterministic key generation for nostr profiles
- Passcode protection - Device-level security
- Secure storage - Encrypted local data storage
- No data collection - Privacy-first approach
- Open source - Fully auditable codebase
- Decentralized identity - Nostr profile management
- Direct messaging - Encrypted peer-to-peer communication
- Contact management - Nostr-based contact system
- Profile sharing - QR code profile sharing
- Modern UI/UX - Clean, intuitive interface
- Theme support - Multiple visual themes
- Transaction history - Comprehensive transaction tracking
- Mint management - Add and manage multiple mints
- Real-time updates - Live balance and transaction updates
Version: 0.0.51 (Build 9)
- Mint Audit Page - Added comprehensive mint auditing capabilities
- Mint Messaging - Direct communication with mints
- Enhanced Error Handling - Improved Lightning payment error messages
- Payment State Tracking - Real-time transaction status updates
- Auto-updating Mint Auditor - Daily mint health checks
- Coco Multi-Unit Support - Full support for multiple currency units
- Code Quality - Zero TypeScript errors and linting issues
- Expired Transaction Polish - Improved handling of expired transactions
- Performance Optimization - Enhanced app responsiveness
- Swap Functionality - Re-implement token swapping between mints
- Advanced Mint Management - Enhanced mint discovery and management
- Transaction Filtering - Advanced transaction search and filtering
- Export Capabilities - Transaction history export
- Restore backup - Restore cashu tokens for mints that support it
- Push Notifications - Real-time payment notifications
- Biometric Authentication - Fingerprint/Face ID support (infrastructure exists, needs enabling)
- Advanced Security - Hardware wallet integration
- Offline Mode - Limited functionality without internet
- Lightning Address Support - Full LNURL-pay integration
- Plugin System - Extensible architecture
This is a React Native project built with Expo that provides a modern Bitcoin wallet experience. The app uses a clean, modular architecture with clear separation of concerns:
- Frontend: React Native with Expo for cross-platform mobile development
- Styling: Tailwind CSS via NativeWind for consistent, utility-first styling
- State Management: Zustand for lightweight, performant state management
- Bitcoin, Lightning and Cashu Operations: Coco-Cashu for modular ecash processing and mint operations
- Nostr Integration: nostr-development-kit (NDK) for decentralized communication and identity
- React Native - Cross-platform mobile development framework
- Expo - Development platform and build tools
- TypeScript - Type-safe development with full type coverage
- Tailwind CSS - Utility-first CSS framework via NativeWind
- Zustand - Lightweight state management (replacing Redux)
- Coco-Cashu - Modular Cashu implementation for ecash operations
- nostr-development-kit (NDK) - Nostr protocol integration and utilities
- Redux - Legacy state management (being migrated to Zustand)
- Cashu NUTs - NUT-00 through NUT-13, NUT-17, NUT-18, NUT-23
- Lightning Network - BOLT11 invoices
- Nostr - NIP-04 (encrypted DMs), NIP-05 (identifiers), NIP-06 (key derivation), NIP-19 (bech32)
- BIP39/BIP32 - Hierarchical deterministic wallets
Due to migrating to the Coco architecture, several features were temporarily removed to ensure a more reliable foundation. This "one step back, two steps forward" approach ensures long-term stability and maintainability.
- Some experimental features require manual activation
- Limited multi-unit support in current Coco implementation
- Transaction expiration handling needs refinement
We welcome contributions! Please see our GitHub repository for:
- Issue reporting
- Feature requests
- Code contributions
- Documentation improvements
- GitHub Issues - Bug reports and feature requests
- Nostr - Direct messaging via Nostr protocol
- Twitter - @KevinKelbie
