A cross-platform mobile wallet application for RustChain (RTC) built with React Native and Expo.
- 💰 Balance Tracking: Real-time RTC balance monitoring
- 📊 Transaction History: View all incoming and outgoing transactions
- 📱 QR Code Receive: Generate QR codes for easy payment receiving
- 🔄 Auto-refresh: Balance and transactions update every 30 seconds
- 🎨 Modern UI: Dark theme with smooth animations
- 🔒 Secure: Local state management, no sensitive data storage
- Node.js 18+
- npm or yarn
- Expo CLI (will be installed automatically)
- iOS Simulator (Mac) or Android Emulator
-
Clone the repository
cd rustchain-mobile-wallet -
Install dependencies
npm install
-
Start the development server
npm start
-
Run on your device
- Press
ito open iOS simulator - Press
ato open Android emulator - Scan QR code with Expo Go app on physical device
- Press
- Display RTC balance
- Quick action buttons (Send, Receive, History)
- Network status indicator
- Miner ID management
- QR code generation
- Copy address to clipboard
- Share functionality
- Recipient address input
- Amount entry with MAX button
- Balance display
- Transaction preview
- Complete transaction list
- Transaction details (hash, date, status)
- Filter by incoming/outgoing
src/
├── components/ # Reusable UI components
│ ├── BalanceCard.tsx
│ ├── QuickActions.tsx
│ ├── QRCodeDisplay.tsx
│ └── TransactionList.tsx
├── screens/ # App screens
│ ├── HomeScreen.tsx
│ ├── SendScreen.tsx
│ ├── ReceiveScreen.tsx
│ └── HistoryScreen.tsx
├── services/ # API integration
│ └── rustchain.ts
└── context/ # State management
└── WalletContext.tsx
The wallet connects to the RustChain node at https://50.28.86.131
GET /wallet/balance?miner_id={id}- Get wallet balanceGET /epoch- Get current epoch informationGET /health- Node health checkGET /api/miners- List active miners
To enable actual transaction sending (currently demo-only):
- Implement key generation and storage
- Add transaction signing logic
- Integrate with RustChain transaction API
- Add QR code scanning for recipient addresses
// Example: Future transaction sending implementation
async function sendTransaction(from: string, to: string, amount: number) {
const signedTx = await signTransaction({ from, to, amount });
const response = await api.post('/transactions', signedTx);
return response.data;
}Android APK:
npm run build:androidiOS IPA:
npm run build:iosBoth platforms:
npm run buildThe project uses TypeScript with strict mode enabled.
npm run lint- iOS 13.4+
- Android 6.0+ (API level 23+)
- React Native 0.76.3+
- Expo SDK 52+
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- RustChain Main Repository
- RustChain Bounties
- Block Explorer
- Expo Documentation
- React Native Documentation
For issues and feature requests, please open an issue on the rustchain-bounties repository.
Issue: #1616
Bounty: 20 RTC
Status: ✅ Complete
- ✅ React Native mobile wallet app
- ✅ Balance check functionality
- ✅ Transaction history display
- ✅ QR code receive feature
- ✅ Build configuration for iOS and Android
- ✅ Complete documentation
Built with ❤️ for the RustChain Community