{"id":39706368,"url":"https://github.com/mostrop2p/mobile","last_synced_at":"2026-04-02T22:00:36.859Z","repository":{"id":245439447,"uuid":"795638797","full_name":"MostroP2P/mobile","owner":"MostroP2P","description":"Mobile client for Mostro p2p","archived":false,"fork":false,"pushed_at":"2026-03-26T19:44:34.000Z","size":570133,"stargazers_count":49,"open_issues_count":42,"forks_count":24,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-26T20:11:28.802Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MostroP2P.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2024-05-03T17:52:02.000Z","updated_at":"2026-03-26T13:43:56.000Z","dependencies_parsed_at":"2024-06-22T05:22:46.710Z","dependency_job_id":"44e4e2c6-1592-4227-a7f6-f2821e19cd23","html_url":"https://github.com/MostroP2P/mobile","commit_stats":null,"previous_names":["mostrop2p/mobile"],"tags_count":54,"template":false,"template_full_name":null,"purl":"pkg:github/MostroP2P/mobile","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MostroP2P%2Fmobile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MostroP2P%2Fmobile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MostroP2P%2Fmobile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MostroP2P%2Fmobile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MostroP2P","download_url":"https://codeload.github.com/MostroP2P/mobile/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MostroP2P%2Fmobile/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31317830,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T21:35:00.834Z","status":"ssl_error","status_checked_at":"2026-04-02T21:34:59.806Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-18T10:33:49.414Z","updated_at":"2026-04-02T22:00:36.729Z","avatar_url":"https://github.com/MostroP2P.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mostro Mobile Client\n\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/MostroP2P/mobile)   \n  *Ask questions about this project using DeepWiki AI*  \n\nA modern, secure mobile client for the [Mostro](https://github.com/MostroP2P/mostro) peer-to-peer Bitcoin trading platform.\n\nThis is a fully-featured mobile application that enables secure, private, and decentralized Bitcoin trading over the Lightning Network using the Nostr protocol. Built with Flutter, it provides a native mobile experience for conducting peer-to-peer trades with advanced privacy features and modern UI/UX design.\n\n## 🌟 Key Features\n\n- **🛡️ Privacy-First Architecture**: Advanced encryption with NIP-59 gift wrapping for all trade communications\n- **🔑 Hierarchical Key Management**: BIP-32/BIP-39 compliant key derivation with unique keys per trade\n- **🌍 Multi-Language Support**: Full internationalization in English, Spanish, and Italian\n- **⚡ Lightning Network Integration**: Seamless Bitcoin Lightning payments and invoicing\n- **🔄 Real-Time Trading**: Live order book updates and instant messaging with counterparts\n- **🎨 Modern UI/UX**: Card-based interfaces, smooth animations, and intuitive navigation\n- **🔒 Secure Storage**: Hardware-backed secure storage for cryptographic keys\n- **📱 Cross-Platform**: Native performance on both Android and iOS\n- **🌐 Decentralized**: No central authority, operates entirely on Nostr relays\n\n## 📱 App Screenshots\n\n\u003cdiv align=\"center\"\u003e\n\n### Main Trading Interface\n\u003cimg src=\"assets/images/screenshot-1.jpg\" width=\"300\" alt=\"Order book with buy/sell orders and real-time trading interface\"\u003e\n\n*The heart of Mostro Mobile - browse available Bitcoin buy/sell orders with real-time updates, filter by currency and payment methods, and start trading with a single tap.*\n\n### Secure Trade Execution  \n\u003cimg src=\"assets/images/screenshot-2.jpg\" width=\"300\" alt=\"Trade order details and execution flow\"\u003e\n\n*Take orders seamlessly with detailed trade information, Lightning invoice handling, and step-by-step guidance through the complete trade process.*\n\n### Account\n\u003cimg src=\"assets/images/screenshot-3.jpg\" width=\"300\" alt=\"Account interface\"\u003e\n\n*You can backup your identity writing down 12 secret words.*\n\n### Modern Settings Interface\n\u003cimg src=\"assets/images/screenshot-4.jpg\" width=\"300\" alt=\"App settings and configuration options\"\u003e\n\n*Configure your trading preferences, add relays, customize the interface, and control notifications through the intuitive settings panel.*\n\n### Account \u0026 Profile Management\n\u003cimg src=\"assets/images/screenshot-5.jpg\" width=\"300\" alt=\"About screen\"\u003e\n\n*Check your App and Mostro node settings in about screen.*\n\n\u003c/div\u003e\n\n## Prerequisites\n\n### For the Mobile Client\n\n- Install [Flutter](https://flutter.dev/docs/get-started/install): Follow the official guide for your operating system.\n- Install [Android Studio](https://developer.android.com/studio) or [Xcode](https://developer.apple.com/xcode/) (for iOS development)\n- Install [VS Code](https://code.visualstudio.com/) (optional but recommended)\n\n### For Mostro Daemon\n\n- Install [Rust](https://www.rust-lang.org/tools/install)\n- Install [Docker](https://docs.docker.com/get-docker/)\n\n### For Testing Environment\n\n- Install [Polar](https://lightningpolar.com/): For simulating Lightning Network nodes\n\n## Installation\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/MostroP2P/mobile.git\n   cd mobile\n   ```\n\n2. Install Flutter dependencies:\n\n   ```bash\n   flutter pub get\n   ```\n\n3. **Generate required files (REQUIRED STEP):**\n\n   ```bash\n   dart run build_runner build -d\n   ```\n\n\u003e **⚠️ IMPORTANT:**\n\u003e This step is **mandatory** and must be run after cloning the repository. It generates code files (`*.g.dart`, `*.mocks.dart`) required for the app to compile and run. These generated files are not committed to the repository and are automatically recreated in CI/CD pipelines.\n\u003e\n\u003e You will need to run this command again whenever you:\n\u003e - Update localization files (`lib/l10n/*.arb`)\n\u003e - Modify files that use code generation (Riverpod providers, JSON serialization, etc.)\n\u003e - Pull changes that affect generated code\n\u003e\n\u003e If you see compilation errors about missing files or imports, run this command again.\n\n## Running the App\n\n### On Emulator/Simulator\n\n```bash\nflutter run\n```\n\n### On Physical Device\n\nConnect your device and run:\n\n```bash\nflutter run\n```\n\n### Linux Desktop\n\nIf you want to run it on a Linux Desktop install this dependencies (ubuntu):\n\n```bash\nsudo apt update\nsudo apt install -y build-essential g++ gcc cmake ninja-build pkg-config libgtk-3-dev binutils libsecret-1-dev\n```\n\nThen run:\n\n```bash\nflutter run -d linux\n```\n\n### Using Custom Mostro Public Key\n\nBy default, the app uses the production Mostro public key. For development or testing with a different Mostro daemon, you can specify a custom public key using the `MOSTRO_PUB_KEY` environment variable:\n\n```bash\n# For development/testing\nflutter run --dart-define=MOSTRO_PUB_KEY=your_custom_mostro_public_key\n\n# Example with a test key\nflutter run --dart-define=MOSTRO_PUB_KEY=0a537332f2d569059add3fd2e376e1d6b8c1e1b9f7a999ac2592b4afbba74a00\n```\n\nThis is particularly useful when:\n- Testing with a local Mostro daemon\n- Using different Mostro instances for development\n- Running integration tests with specific configurations\n\n## Setting up Mostro Daemon\n\n1. Clone the Mostro repository:\n\n   ```bash\n   git clone https://github.com/MostroP2P/mostro.git\n   cd mostro\n   ```\n\n2. Set up the configuration:\n\n   ```bash\n   cp settings.tpl.toml settings.toml\n   ```\n\n   Edit `settings.toml` with your specific configurations.\n\n3. Run the Mostro daemon:\n\n   ```bash\n   cargo run\n   ```\n\nSee the README.md in the mostro repository for more details.\n\n## Setting up Polar for Testing\n\n1. Launch Polar and create a new Lightning Network.\n2. Configure at least one node (e.g., \"alice\").\n3. Copy the necessary connection details (cert file, macaroon file) to your Mostro `settings.toml`.\n\n## Development Workflow\n\n1. Ensure Polar is running with your test Lightning Network.\n2. Start the Mostro daemon.\n3. Run the Flutter app and connect it to your local Mostro instance.\n\n## 🏗️ Architecture\n\n### Core Technologies\n- **Flutter**: Cross-platform mobile framework with native performance\n- **Riverpod**: Reactive state management for predictable app behavior\n- **Nostr Protocol**: Decentralized communication layer (NIPs 01, 06, 44, 59, 69)\n- **Sembast**: Local NoSQL database for data persistence\n- **dart_nostr**: Comprehensive Nostr protocol implementation\n\n### Security \u0026 Privacy\n- **NIP-59 Gift Wrapping**: Three-layer encryption (Rumor → Seal → Wrapper)\n- **Hierarchical Deterministic Keys**: BIP-32 key derivation with trade-specific keys\n- **Forward Secrecy**: Ephemeral keys for enhanced privacy protection\n- **Secure Storage**: Platform-native secure storage for sensitive data\n- **Key Rotation**: Automatic rotation prevents transaction linking\n\n### Communication Flow\n```\nMobile App ←→ Nostr Relays ←→ Mostro Daemon ←→ Lightning Network\n     ↓              ↓              ↓              ↓\n  UI Layer    WebSocket Conn.  Order Matching  Bitcoin Payments\n```\n\nFor detailed technical documentation, see **[docs/architecture/](docs/architecture/)**.\n\n## 🔧 Development Commands\n\n### Essential Commands\n```bash\n# Install dependencies\nflutter pub get\n\n# Generate localization and code files (required after dependency changes)\ndart run build_runner build -d\n\n# Run the application\nflutter run\n\n# Code analysis and linting\nflutter analyze\n\n# Format code\nflutter format .\n\n# Run tests\nflutter test\nflutter test integration_test/\n```\n\n### Code Quality\nThis project maintains **zero Flutter analyze issues** and follows modern Flutter best practices:\n- Updated to latest APIs (no deprecated warnings)\n- Comprehensive error handling with proper BuildContext usage\n- Immutable widgets with const constructors where possible\n- Proper async/await patterns with mounted checks\n\n## 🎨 Recent UI/UX Improvements\n\n### Modern Interface Design\n- **Card-based Settings**: Clean, organized settings interface with visual hierarchy\n- **Enhanced Account Screen**: Streamlined user profile and preferences\n- **Currency Integration**: Visual currency flags for international trading\n- **Improved Navigation**: Smooth page transitions with consistent routing\n- **Better Visual Feedback**: Loading states, error handling, and user confirmations\n\n### Accessibility \u0026 Usability\n- **Multi-language Support**: Comprehensive localization with proper time formatting\n- **Responsive Design**: Optimized layouts for various screen sizes\n- **Icon Improvements**: Enhanced notification and app launcher icons\n- **Touch Interactions**: Improved button responses and gesture handling\n\n## 📚 Documentation\n\n### User Guides\n- **[ADDING_NEW_LANGUAGE.md](docs/guides/ADDING_NEW_LANGUAGE.md)** - Complete localization guide\n- **[CLAUDE.md](CLAUDE.md)** - Development environment setup and project conventions\n\n### Technical Documentation\n- **[docs/architecture/](docs/architecture/)** - Complete technical documentation and system architecture\n- **Code Documentation**: Inline documentation following Dart conventions\n\n## 🚀 Contributing\n\nWe welcome contributions of all sizes! Here's how to get started:\n\n### Development Setup\n1. Read **[CLAUDE.md](CLAUDE.md)** for project conventions and development commands\n2. Ensure `flutter analyze` returns zero issues before submitting\n3. Run tests to verify your changes don't break existing functionality\n4. Follow existing code patterns and architectural decisions\n\n### Adding New Features\n- Study existing features in `lib/features/` for implementation patterns\n- Use Riverpod for state management and dependency injection\n- Implement proper localization for all user-facing strings\n- Add appropriate tests for new functionality\n\n### Language Support\n📖 **[ADDING_NEW_LANGUAGE.md](docs/guides/ADDING_NEW_LANGUAGE.md)** - Step-by-step instructions for adding new language support\n\nCurrently supported languages:\n- **English** (en) - Base language\n- **Spanish** (es) - Complete translation\n- **Italian** (it) - Complete translation\n\n## License\n\nThis project is licensed under the MIT License. See the `LICENSE` file for details.\n\n## ✅ Feature Progress\n\n### 🎯 Core Trading Features\n- [x] **Order Management**: Create, display, and manage buy/sell orders\n- [x] **Order Execution**: Take orders with full buy/sell flow support\n- [x] **Real-Time Updates**: Live order book updates via Nostr subscriptions\n- [x] **Lightning Integration**: Lightning address support for seamless payments\n- [x] **Trade Lifecycle**: Complete order-to-completion flow management\n- [x] **Order Cancellation**: Maker cancellation and cooperative cancellation\n\n### 💬 Communication \u0026 Chat\n- [x] **Peer-to-Peer Messaging**: Secure direct messaging with trade counterparts\n- [x] **Trade Chat**: Integrated chat for each trading session\n- [x] **Real-Time Chat**: Live messaging with message delivery confirmation\n- [x] **Encrypted Communications**: NIP-59 gift wrapping for all trade messages\n\n### 🔐 Security \u0026 Privacy\n- [x] **Hierarchical Key Management**: BIP-32/BIP-39 compliant key derivation\n- [x] **Trade-Specific Keys**: Unique key pairs for each trading session\n- [x] **Secure Storage**: Hardware-backed storage for cryptographic keys\n- [x] **Privacy Controls**: Configurable privacy settings and reputation tracking\n\n### 🌐 User Experience\n- [x] **Multi-Language Support**: English, Spanish, and Italian localization\n- [x] **Modern UI Design**: Card-based interfaces with smooth animations\n- [x] **Settings Management**: Comprehensive settings and preferences\n- [x] **User Rating System**: Rate counterparts after successful trades\n- [x] **Push Notifications**: Real-time trade and message notifications\n- [x] **Enhanced Icons**: Improved app launcher and notification icons\n\n### 🛠️ Technical Achievements\n- [x] **Zero Analyzer Issues**: Clean codebase following Flutter best practices\n- [x] **Modern APIs**: Updated to latest Flutter APIs, no deprecated warnings\n- [x] **Comprehensive Testing**: Unit and integration test coverage\n- [x] **Code Generation**: Automated localization and mock generation\n- [x] **Background Services**: Reliable background processing for notifications\n\n### 🚧 Planned Features\n- [x] **Invoice Recovery**: Add new invoice if payment fails\n- [x] **Multi-Relay Support**: Advanced relay management and failover\n- [ ] **Dispute Resolution**: User-initiated dispute flow\n- [ ] **Admin Tools**: Dispute management interface for administrators\n- [ ] **Tor Integration**: Anonymous relay connections\n\n### 📊 Platform Status\n- ✅ **Android**: Full feature support with native performance\n- ✅ **iOS**: Complete iOS implementation with platform-specific optimizations\n- ✅ **Security**: Production-ready cryptographic implementation\n- ✅ **Localization**: Complete translation coverage for supported languages\n- ✅ **Documentation**: Comprehensive technical and user documentation\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmostrop2p%2Fmobile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmostrop2p%2Fmobile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmostrop2p%2Fmobile/lists"}