A Flutter mobile application for the PayFi Tip Jar decentralized tipping system on Shardeum blockchain.
- Wallet Management: Create new wallets or import existing ones via private key or mnemonic phrase
- Send Tips: Send SHM tokens to any Ethereum address with optional messages
- Receive Tips: Generate QR codes for easy tip collection
- Transaction History: View sent and received tips
- Security: Private keys stored securely on device
- Network Support: Built specifically for Shardeum Testnet
- Real-time Balance: Auto-updating wallet balance
- Verification: Address and transaction verification
- Frontend: Flutter 3.7+
- State Management: Provider pattern
- Blockchain Integration: web3dart
- Storage: SharedPreferences (secure storage recommended for production)
- QR Codes: qr_flutter, qr_code_scanner
- HTTP Requests: http package
- Crypto: crypto, bip39 packages
lib/
├── main.dart # App entry point
├── models/ # Data models
│ ├── tip.dart # Tip data model
│ └── wallet.dart # Wallet connection model
├── providers/ # State management
│ └── wallet_provider.dart # Main wallet state provider
├── screens/ # App screens
│ ├── home_screen.dart # Main dashboard
│ ├── send_tip_screen.dart # Send tips interface
│ ├── receive_screen.dart # Receive tips/QR code
│ ├── settings_screen.dart # App settings
│ └── wallet_setup_screen.dart # Wallet creation/import
├── services/ # Business logic
│ ├── blockchain_service.dart # Blockchain interactions
│ └── wallet_service.dart # Wallet management
├── utils/ # Utilities
│ ├── helpers.dart # Helper functions
│ └── theme.dart # App theming
└── widgets/ # Reusable widgets
├── wallet_status_card.dart
├── quick_actions.dart
└── recent_tips.dart
- Flutter SDK: Install Flutter 3.7 or later
- Android Studio/VS Code: With Flutter extensions
- Android SDK: For Android development
- Xcode: For iOS development (macOS only)
-
Navigate to the Flutter app directory:
cd Tip-Jar/flutter_tip_jar -
Install dependencies:
flutter pub get
-
Run the app:
# For Android flutter run # For iOS (macOS only) flutter run -d ios # For web flutter run -d chrome
- Network Name: Shardeum Testnet
- RPC URL: https://api-testnet.shardeum.org/
- Chain ID: 8083
- Currency: SHM
- Explorer: https://explorer-testnet.shardeum.org/
The app is designed to work with the TipJar smart contract deployed on Shardeum. For now, it uses simple ETH transfers, but can be extended to use the smart contract functions.
- Create Wallet: Generate new wallet with mnemonic phrase
- Import Wallet: Import using private key or mnemonic
- Backup: Export mnemonic phrase and private key securely
- Security: Local storage with encryption recommended
- Send Tips: Send SHM to any address with optional message
- Receive Tips: Generate QR codes with optional amount/message
- History: View transaction history
- Verification: Verify addresses and transactions
- Material Design: Modern Flutter UI components
- Responsive: Works on phones and tablets
- Accessibility: Screen reader support
- Private keys stored in SharedPreferences
- Basic input validation
- Network verification
- Use Flutter Secure Storage for private key storage
- Implement biometric authentication
- Add PIN/password protection
- Use secure communication (HTTPS)
- Implement proper error handling
- Add transaction signing verification
- Transaction History Screen: Full transaction history with filtering
- Contact Management: Save frequently used addresses
- Multi-language Support: Internationalization
- Push Notifications: Transaction confirmations
- DeFi Integration: Swap, stake, and other DeFi features
- NFT Support: Send and receive NFTs
- WalletConnect Integration: Connect to dApps
This project is part of the PayFi Tip Jar application.
Note: This is a testnet application. Never use real funds or mainnet private keys with this application.