A modern, multi-chain cryptocurrency wallet built with Flutter for the Aura Network ecosystem
Features β’ Architecture β’ Getting Started β’ Documentation
AuraPay is a feature-rich, secure cryptocurrency wallet application supporting both EVM and Cosmos chains within the Aura Network ecosystem. Built with Flutter for cross-platform compatibility (iOS & Android), it provides a seamless experience for managing digital assets, NFTs, and blockchain interactions.
π Quick Links:
- Build Environments Guide - How to build for different environments
- Code Improvement Checklist - Development roadmap
- Vietnamese Documentation
-
Aura EVM Chain (Ethereum-compatible)
- Serenity Testnet (ChainID: 6322)
- Euphoria Testnet
- Mainnet (Xstaxy)
-
Aura Cosmos Chain
- Serenity Testnet (auradev_1236-2)
- Euphoria
- Mainnet
-
Multiple Wallet Creation Methods
- Generate new wallet with mnemonic phrase (12/24 words)
- Import from seed phrase
- Import from private key
- Social login via Web3Auth (Google, Apple, Twitter, Facebook, etc.)
-
Advanced Security
- 6-digit passcode protection
- Biometric authentication (Fingerprint/Face ID)
- Encrypted key storage
- Secure enclave integration
-
Multi-Token Support
- Native AURA token
- ERC20 tokens (EVM)
- CW20 tokens (Cosmos)
- Custom token management
-
Token Features
- Real-time balance tracking
- USD value conversion
- Market data & 24h PNL
- Enable/disable tokens
- Hide small balances
- View NFT collections
- Display NFT metadata (on-chain & off-chain)
- Support for CW721 contracts
- Image and animation rendering
- NFT value estimation
-
Send
- Multi-token selection
- Address book management
- Transaction memo support
- Dynamic fee adjustment (Slow/Average/Fast)
- Transaction preview & confirmation
-
Receive
- QR code generation
- Multi-network address display
- One-tap address copy
- Save QR code image
-
Modern Design
- Smooth animations & transitions
- Responsive layouts
- Custom fonts (Inter, Mulish)
- Story-based promotional content
-
Multi-Language Support
- English
- Vietnamese
- Auto-detect system language
-
Navigation
- Home dashboard
- Wallet management
- Transaction history
- Settings & preferences
- DApp browser (planned)
- Token swapping
- Staking functionality
- DApp browser
- Advanced transaction history
- Multi-account management
The project follows Clean Architecture principles with clear separation of concerns:
βββββββββββββββββββββββββββββββββββββββββββββββ
β Presentation Layer β
β (UI, BLoC/Cubit, Screens, Widgets) β
βββββββββββββββββββββββββββββββββββββββββββββββ€
β Domain Layer β
β (Entities, Use Cases, Repositories) β
βββββββββββββββββββββββββββββββββββββββββββββββ€
β Data Layer β
β (DTOs, Repository Impl, Data Sources) β
βββββββββββββββββββββββββββββββββββββββββββββββ
π¦ Domain Layer (cores/domain/)
- Pure Dart business logic
- Platform-independent entities
- Use case implementations
- Repository interfaces
π¦ Data Layer (cores/data/)
- Data transfer objects (DTOs)
- Repository implementations
- Local data sources (Isar, Secure Storage)
- Remote data sources (API services)
π¦ Presentation Layer (lib/src/)
- BLoC pattern for state management
- UI components and screens
- Navigation and routing
- Global state management
- Pattern: BLoC (Business Logic Component)
- Library:
flutter_bloc ^9.1.1 - Code Generation:
freezedfor immutable states - Dependency Injection:
get_itservice locator
aurapay/
βββ android/ # Android native code
βββ ios/ # iOS native code
βββ assets/ # Static assets
β βββ config/ # Environment configs
β βββ font/ # Custom fonts
β βββ icon/ # SVG icons
β βββ image/ # Images
β βββ language/ # Translations
β βββ logo/ # Brand assets
βββ cores/ # Core modules
β βββ domain/ # Domain layer
β βββ data/ # Data layer
βββ packages/ # Local packages
β βββ wallet_core/ # Blockchain core
β βββ aura_wallet_core/ # Aura-specific features
β βββ cache_network_image_extended/
βββ lib/
β βββ app_configs/ # DI & configuration
β βββ src/
β β βββ application/ # App-level logic
β β βββ core/ # Constants, utils, helpers
β β βββ presentation/ # UI screens & widgets
β βββ main.dart # App entry point
βββ docs/ # Documentation
- Flutter: 3.35.0+
- Dart: 3.9.0+
flutter_bloc: ^9.1.1- State managementfreezed: ^2.5.2- Code generation for immutable classesget_it: ^8.2.0- Dependency injection
isar: ^3.1.0+1- Fast NoSQL databaseflutter_secure_storage: ^9.2.2- Encrypted storageshared_preferences: ^2.2.3- Key-value storage
dio: ^5.5.0+1- HTTP clientretrofit: ^4.1.0- Type-safe REST client
wallet_core(custom) - Multi-chain wallet functionalityweb3auth_flutter: ^6.3.0- Social authenticationweb3dart: ^2.7.3- Ethereum librarytrust_wallet_core- Wallet core librarycrypto: ^3.0.3- Cryptographic functionsbech32: ^0.2.2- Bech32 encoding
flutter_svg: ^2.0.10+1- SVG renderingqr_flutter: ^4.1.0- QR code generationshimmer: ^3.0.0- Loading effectsfluttertoast: ^9.0.0- Toast notifications
intl: ^0.20.2- Internationalizationurl_launcher: ^6.3.0- Open URLsshare_plus: ^12.0.0- Share functionalitypath_provider: ^2.1.3- File paths
- Flutter SDK: 3.35.0 or higher
- Dart SDK: 3.9.0 or higher
- iOS: Xcode 14+ (for iOS development)
- Android: Android Studio with SDK 26+ (Android 8.0+) for Android development
β οΈ Note: Minimum SDK updated from 24 to 26 to support Web3Auth and TrustWalletCore- See TrustWallet Crash Fix for details
- Clone the repository
git clone <repository-url>
cd AuraPay- Install dependencies
flutter pub get- Install dependencies for local packages
cd cores/domain && flutter pub get && cd ../..
cd cores/data && flutter pub get && cd ../..
cd packages/wallet_core && flutter pub get && cd ../..
cd packages/cache_network_image_extended && flutter pub get && cd ../..- Generate code
flutter pub run build_runner build --delete-conflicting-outputs- Install iOS Pods (iOS only)
cd ios
pod install
cd ..flutter run
# or explicitly
flutter run --dart-define=ENV=developmentflutter run --dart-define=ENV=stagingflutter run --dart-define=ENV=production# Run with specific environment
./scripts/run.sh development
./scripts/run.sh staging
./scripts/run.sh production# Development
flutter build apk --dart-define=ENV=development
# Staging
flutter build apk --dart-define=ENV=staging
# Production (Release)
flutter build apk --dart-define=ENV=production --release
# or App Bundle for Google Play
flutter build appbundle --dart-define=ENV=production --release# Development
flutter build ios --dart-define=ENV=development
# Staging
flutter build ios --dart-define=ENV=staging
# Production (Release)
flutter build ios --dart-define=ENV=production --release# Build with script
./scripts/build.sh production android release
./scripts/build.sh staging ios debugπ For detailed build instructions, see Build Environments Guide
The app uses JSON configuration files for different environments:
assets/config/config.dev.json- Development/Serenityassets/config/config.staging.json- Staging/Euphoriaassets/config/config.json- Production
{
"APP_NAME": "AuraPay Wallet",
"NATIVE_COIN": { "name": "...", "symbol": "AURA" },
"COSMOS_INFO": { "chainId": "...", "rpc": "...", ... },
"EVM_INFO": { "chainId": ..., "rpc": "...", ... },
"API": { "v1": { "url": "..." }, "v2": { "url": "..." } },
"WEB_3_AUTH": { "client_id": "...", ... }
}-
AuraPayConfig- Main app configuration class (inlib/app_configs/aura_pay_config.dart)- Manages environment configs
- Provides access to AppConfig instance
-
AuraPayEnvironment- Environment enumAuraPayEnvironment.serenity- Development/TestnetAuraPayEnvironment.staging- Staging/EuphoriaAuraPayEnvironment.production- Production/Mainnet
-
AuraPayAccountConstant- Account-related constants (inlib/src/core/constants/aura_pay_account_constant.dart)- Default wallet names
- Account prefixes
lib/app_configs/
βββ aura_pay_config.dart # Main config classes
βββ di.dart # Dependency injection setup
- Documentation Index - Complete documentation index
- Vietnamese Documentation - TΓ i liα»u tiαΊΏng Viα»t
- Build Environments Guide - Multi-environment build guide
- Code Improvement Checklist - Development roadmap & improvements
- Bug Fixes Documentation - All bug fixes and troubleshooting guides
- TrustWallet Crash Fix - Fix for SIGSEGV crash on Android
- Technical Documentation (English)
- Quick Summary (Vietnamese)
- Implementation Guide (Vietnamese)
- Architecture Details - Coming soon
- API Documentation - Coming soon
- Contributing Guide - Coming soon
- Private Key Management: Keys never leave the device, stored in encrypted format
- Biometric Protection: Optional fingerprint/Face ID authentication
- Passcode Lock: 6-digit passcode for app access
- Secure Communication: All API calls over HTTPS
- Web3Auth Integration: Secure social login with key sharding
- Never share your seed phrase or private key
- Enable biometric authentication
- Set a strong passcode
- Verify transaction details before confirming
- Keep the app updated
This is a private project. For internal contributors, please follow:
- Create a feature branch from
develop - Follow the existing code structure and naming conventions
- Write clean, documented code
- Test thoroughly before submitting PR
- Update documentation as needed
This project is private and proprietary. All rights reserved.
Aura Network Development Team
For issues and questions:
- Internal team: Use company communication channels
- Email: [support email if applicable]
- Aura Network - Blockchain infrastructure
- TrustWallet - Wallet core library
- Web3Auth - Social authentication
- Flutter Community - Open source packages
Built with β€οΈ using Flutter
Empowering the future of decentralized finance