Releases: MostroP2P/mobile
v1.2.0+2
⚡ Version 1.2.0 Beta ⚡
This release is a big one — Mostro Mobile now has a built-in Lightning wallet. No more switching apps to pay invoices or generate them. NWC (Nostr Wallet Connect) integration means your wallet talks directly to Mostro, automating the entire payment flow for both buyers and sellers.
🔗 NWC — Your Wallet, Inside Mostro
The headline feature of 1.2.0 — full Nostr Wallet Connect integration, rolled out in 5 phases:
- Core NWC protocol library — handles
pay_invoice,make_invoice, andget_balancecommands over Nostr relays - Wallet connection UI — connect your NWC-compatible wallet (Alby, Mutiny, etc.) with a simple paste-and-go flow
- Automatic hold invoice payment for sellers — when you sell sats, the app detects the hold invoice and pays it automatically via your connected wallet. No more copy-pasting invoices.
- Automatic invoice generation for buyers — when you buy sats, the app generates a Lightning invoice from your wallet automatically. Just confirm and wait for your sats.
- Payment notifications — get notified when payments are sent, received, or fail, with clear status indicators throughout the trade flow
🛡️ UX Improvements
- Confirmation step before receiving sats — when using a Lightning Address to receive, the app now shows a confirmation dialog before proceeding. No more accidental submissions.
- Cleaner payment methods — removed banks from payment method list, keeping only actual payment methods (transfers, mobile pay, etc.)
- Consistent button styling — black text on green buttons across the app
💬 Chat Fixes
- Input focus retained after sending — no more tapping the input field again after every message
- Fixed input bar overlap — replaced Stack layout with Column in chat screen, fixing the overlapping input bar on some devices
- Cleaner chat room code — extracted side effects, deduplicated callbacks, and improved overall reliability
🛠️ Under the Hood
- Fixed restore crash — prevented crash and revert loop when switching between Mostro nodes
- Disposed invoice controller properly — fixed a memory leak in the order flow
- Fixed fiat amount display — taken orders now show the selected fiat amount instead of the full range
- Refactored pending state —
isPendingis now a single source of truth passed through the widget tree
Thank you for testing and providing feedback — it makes Mostro better every release. 🚀
Contributors
Full Changelog: v1.1.1...v1.2.0
v1.1.1+1
🎉 Version 1.1.1 Beta 🎉
This release brings multi-Mostro node support, chat reliability fixes, and order creation improvements. Here's what's new:
🌐 Multi-Mostro Node Support
The biggest feature in this release — you can now connect to multiple Mostro nodes:
• Trusted nodes registry with a curated list of known Mostro instances
• Add custom nodes by pubkey, with validation and duplicate detection
• Kind 0 metadata fetching — nodes display their Nostr profile name, avatar, and description instead of raw pubkeys
• Node selector UI with a bottom sheet picker, trusted badges, and custom node management
• Automatic fallback — if a selected node is offline, the app reverts to the previous working node and shows an error
• Metadata persistence — both trusted and custom node metadata survives app restarts
• Performance tested with up to 50 custom nodes
🛒 Order Creation Improvements
• Editable premium/discount — replaced the static indicator with an editable input field and dynamic slider range
• Fixed price + range validation — prevents combining fixed price with range orders, avoiding invalid order states
• Expanded payment methods — added new payment methods including CRC options
• Always-visible custom payment input — no more toggling "Other" checkbox, the custom field is always available
• Smarter submit validation — button stays disabled until all required fields are filled, including custom payment method support
💬 Chat Reliability
• Fixed chat restore errors — resolved issues where chat data wasn't properly cleared during restore
• Better error handling — reusable error screens for missing sessions or unavailable peers
• Keyboard-aware scrolling — chat now scrolls properly when the keyboard appears
• Increased restore timeout to accommodate slower relay message delivery
🛠️ Behind-the-Scenes Fixes
• Kind 0 metadata now applied even when signature verification fails (dart_nostr rejects some valid vanity pubkey events)
• Pubkey normalization to lowercase prevents case-sensitive duplicates
• Updated screenshots and changelog
Thank you for using the app!
As always, your feedback helps us keep improving. 🚀
Contributors
• @AndreaDiazCorreia
• @BraCR10
• @Catrya
• @grunch
Full Changelog: v1.1.0...v1.1.1 (v1.1.0...v1.1.1)
v1.1.0
🎉 Version 1.1.0 Beta Is Here! 🎉
We have finally released our first beta version. After 3 years of hard work, we have a fairly stable version that will continue to improve. this new version of the app with major improvements to logging, notifications, and overall polish. Here's what's new:
📋 Complete Logging System
We've built a full-featured logging system from the ground up:
- Singleton logger across the entire codebase for consistent, reliable logging
- Background isolate support so logs keep recording even when the app is in the background
- Share and save log files — you can now export your logs and share them for debugging
- Visual recording indicator so you always know when log capture is active
This makes it much easier to troubleshoot issues and share diagnostic info with the team.
🔔 Better Notifications
Notifications got a significant upgrade:
- New Notification Settings Screen where you can manage your push notification preferences
- Fixed a bug where background notifications weren't showing due to a serialization issue
- Added Android background permissions for more reliable notification delivery
🎨 UI & Visual Improvements
The interface keeps getting better:
- Phase 2 visual refinements with layout enhancements across the app
- Improved toggles and buttons with a new shared MostroSwitch widget for consistency
- Updated drawer logo with the latest Mostro branding
- SnackBars moved to the top of the screen so they no longer block bottom navigation
- All SnackBar messages internationalized — no more hardcoded English strings
- Improved About screen with additional information
🛠️ Behind-the-Scenes Fixes
- Smarter relay updates: NostrService now uses additive initialization instead of disconnect-reconnect, making relay changes smoother and more reliable
- Auto-generated files cleanup: Updated gitignore and documentation to properly handle generated files
Thank you for using the app!
As always, your feedback helps us keep improving. 🚀
Contributors
Full Changelog: v1.0.7...v1.1.0
v1.0.7
Added
- In-App Logging System (#403, #398): Complete logging service with UI components and settings integration
- Logger service with basic integration for debugging and troubleshooting
- Logging UI components with toggle controls and log viewer
- Multi-language support for logging features
- Push Notification System (#391, #394, #396): Full Firebase Cloud Messaging integration
- Firebase basic configuration for push notifications
- FCM service with background integration (Phase 2)
- PushNotificationService with encrypted token registration (Phase 3)
- Encrypted File Messaging (#367): Support for encrypted file attachments in chat
- Backup Account Reminder (#383): Notification system to remind users to backup their account
- FVM Configuration (#376): Flutter Version Management configuration for consistent development environment
Fixed
- Order Creation Time Display (#386): Fixed bug in order creation time display
- Background Notifications (#378): Fixed background notifications failing in release builds
- Localization Entries: Fixed invalidKeyFormat entry in Italian and Spanish ARB files
- Logging Toggle State: Fixed toggle resetting to OFF on app restart
- Build Workflow (#375): Added missing build_runner step to flutter.yml workflow
Changed
- Brand Colors Unification (#407): Unified brand colors and consolidated color variants (Phase 1)
- UI Buttons and Opacity (#402): Improved button styling and opacity handling
- Mostro Instance Configuration (#390): Enhanced UX for Mostro instance configuration
- Order Expiration (#392): Removed hardcoded 24h order expiration, now uses expiration_hours for trade messages and new orders
- Info Event Kind (#410): Updated info event kind from 38383 to 38385
Documentation
v1.0.6
🎉 Version 1.0.6 Is Here! 🎉
We’ve just released a new version of the app, and it comes with helpful improvements to make your experience smoother, faster, and more reliable. Here’s what’s new:
🔄 Easier Recovery of Your Orders
We’ve added a brand-new Restore Orders feature.
If you ever lose your session or need to reconnect, the app can now restore your previous orders automatically. This means:
- You can quickly pick up where you left off
- Works whether you use the app in full privacy mode or with reputation features
- A more reliable and seamless recovery process overall
📱 Smaller, Optimized App Downloads
We’ve improved the way the app is packaged:
- The app now comes in versions optimized for your device’s processor
- This makes the download smaller and more efficient
- Better compatibility and faster installation for supported devices
(Note: The Zapstore version will now only support newer devices with arm64-v8a processors.)
🛠️ Behind-the-Scenes Fixes
We fixed an issue affecting how the app’s files were checked and verified during the build process. This ensures:
- More reliable app updates
- More secure installation packages
Thank you for using the app!
As always, your feedback helps us keep improving. 🚀
Contributors
Full Changelog: v1.0.4...v1.0.6
v1.0.4
Added
- Dynamic Countdown Timer System (#354): Intelligent countdown widget with automatic day/hour scaling for pending orders
- Uses exact
order_expires_attimestamps from Mostro protocol for precision - Day scale (>24h): Shows "14d 20h 06m" format with day-based circular progress
- Hour scale (≤24h): Shows "HH:MM:SS" format with hour-based circular progress
- Automatic transition at 24:00:00 remaining with localized display
- Created shared
DynamicCountdownWidgetto eliminate code duplication - Safe parsing with edge case handling for expired/invalid timestamps
- Uses exact
- Lightning Address Usage Notification (#349): Automatic notification when configured Lightning address is used for payments
- Detects buyerInvoice usage in order confirmation messages
- Informs buy order makers when their configured address was automatically used
- Integrated with existing notification system for consistent UX
Fixed
- Payment Method Reset (#353): Payment methods now properly reset when fiat currency changes (#352)
- Clears selected payment methods and custom fields on currency change
- Prevents invalid payment methods being sent for wrong currency
- Desktop Build Process (#350): Resolved GitHub Actions workflow issues for Windows and Mac desktop builds
Documentation
- Android Signing Setup (#347): Enhanced documentation and examples for Android APK signing configuration
- Improved key.properties.example with detailed explanations
- Added DEBUG_RELEASE_CONFLICT.md guide for troubleshooting build issues
Full Changelog: v1.0.3...v1.0.4
v1.0.3
[v1.0.3]
Added
- Release Build Features (#341): Chat and disputes features now enabled in production/release builds (previously debug-only)
Fixed
- P2P Chat Message Encryption (#343): Restored simplified NIP-59 implementation for secure peer-to-peer messaging
- Desktop Build Artifacts (#344): Fixed inconsistent artifact naming for desktop builds
Changed
- Build Naming Convention (#346): Standardized build artifact naming to use dash separators for consistency across all platforms
- Debug Mode Restrictions: Removed debug-only limitations for chat tabs and disputes view, making features fully accessible in release builds
Documentation
- Configuration Updates (#345): Updated changelog and zapstore configuration file with latest project information
Full Changelog: v1.0.2...v1.0.3
v1.0.2
We’d like to start by sincerely thanking everyone who tested and shared feedback on version v1.0.1. Your participation was essential in helping us identify issues, refine workflows, and strengthen the overall experience. The insights from our community continue to guide our development, ensuring that Mostro evolves in the right direction — toward a faster, safer, and more intuitive P2P experience for everyone.
In v1.0.2, we’ve introduced major improvements across the board. This release brings full desktop application support for Linux, Windows and Mac, a complete dispute chat system with real-time role-based communication, enhanced smarter session management to prevent orphaned orders. We’ve also refined UI elements, optimized build configurations for Linux, improved exchange rate accuracy, and expanded documentation for all supported platforms. Altogether, this version represents a significant leap forward in performance, usability, and reliability.
Added
- Desktop Application Support (#340): Complete implementation for Windows and Mac desktop platforms
- Dispute Chat System (#329): Full-featured dispute chat implementation with role-specific messaging and real-time updates
- Lightning Address Auto-Send (#336): Automatic Lightning address transmission on add-invoice for waiting-buyer-invoice status
- Invalid Fiat Currency Handling (#331): Comprehensive error handling for invalid fiat currency with session cleanup and user feedback
- Custom Mostro Public Key Support (#315): Environment variable support for configuring custom Mostro public keys
- Create Order Timeout Protection (#318): Orphan session cleanup system with 10-second timeout for order creation
- Dispute Action Button (#323): VIEW DISPUTE button integration for orders in dispute states in order details screen
- Admin-Canceled Dispute Status: Enhanced dispute status handling for admin-canceled disputes with proper user notifications
- Dispute Resolution Tracking: Role-specific dispute resolution messages and admin assignment flow improvements
Fixed
- Invoice Payment Confirmation (#337): Restored invoice payment confirmation in PayLightningInvoiceWidget
- Exchange Rate Fetching (#332): Fixed exchange rate fetching issue in Create Order screen for accurate pricing
- Linux Build Configuration (#321): Fixed Linux build with host-toolchain bootstrap in CMakeLists.txt and updated README
- Chat Tab UI (#320): Improved chat tab UI contrast, corrected shared key display, and fixed status badge rendering
- Dispute Status Handling: Case-insensitive dispute status processing with additional terminal states for admin counterparty
- Price Type Switch UI (#335): Enhanced visual contrast for better UX in price type switch component
- Button Text Colors (#333): Updated red button text color to white for improved readability
- Switch Button Colors: Fixed switch button color consistency across the application
- Dispute Status Badge: Corrected status badge display in dispute-related screens
Changed
- Session Deletion Timeout (#330): Increased automatic session deletion from 36 to 72 hours for better user experience
- NIP44 Dependency (#338): Migrated to Mostro fork of nip44 dependency for improved protocol compatibility
- Order Status Flow (#327): Refactored flow from waiting to pending status for clearer state transitions
- Dispute Status System (#310): Complete overhaul with comprehensive localization support across all languages
- Dispute Protocol: Migrated dispute protocol from NIP-17 to NIP-59 for enhanced security and standardization
- Dispute Data Handling: Converted userDisputeDataProvider to handle async state with preserved message timestamps
- Dispute UI Layout: Optimized dispute chat layout with CustomScrollView and SafeArea for better mobile experience
- Dispute Message Sorting: Disputes now sorted by creation date in descending order for easier navigation
Removed
- Unused Session Peer Logic: Removed unused session peer fallback logic in dispute chat for code cleanup
- Mock Dispute Data: Replaced mock dispute data with real provider implementation throughout the application
- Debug Logging: Removed debug logs from dispute resolution and role determination code
Security
- Enhanced Dispute Privacy: Improved dispute protocol security with NIP-59 encrypted messaging
- Session Cleanup Protection: Automatic cleanup of orphaned sessions prevents security vulnerabilities in order creation flow
Documentation
- Dispute System Documentation: Comprehensive documentation for dispute chat implementation and protocol changes
- Desktop Platform Guide: Setup and build instructions for Windows and Mac desktop applications
- Linux Build Guide: Updated README with Linux-specific build instructions and requirements
Contributors
Contributors
The following contributors had code included in this release:
@AndreaDiazCorreia
@Catrya
@grunch
New Contributors
- @arkanoider made their first contribution in #340
Full Changelog: v1.0.1...v1.0.2
v1.0.1
[v1.0.1]
Added
- Enhanced Child Order Session Management (#311): Complete implementation of pre-emptive session creation for range order child orders with proper session lifecycle management
- Dispute System Enhancements (#304): Full dispute listing and management system with comprehensive UI for active orders
- Background Push Notifications (#297): Complete push notification integration with background support for real-time order updates
- Orphan Session Cleanup System (#305): 10-second timeout detection and automatic cleanup to prevent orphaned sessions when Mostro instances are unresponsive
- Subscription Initialization Fix (#309): Critical fix ensuring existing sessions properly load and display after app restart
- Rating Validation System (#312): Enhanced rating system with proper validation in notification navigation flow
- Request ID Analysis Documentation (#306): Comprehensive debugging documentation for troubleshooting order flow issues
- Zapstore Distribution Support (#302): Added zapstore spec file for alternative app distribution
- Malawi Kwacha Currency Support (#300): Added MWK fiat currency for Malawi users
- Centralized Key Derivation Configuration (#301): Improved key management architecture with centralized derivation path handling
Fixed
- Hold Invoice Payment Status Mapping (#314): Correct status mapping for hold-invoice-payment-settled action to success status
- Child Range Order Recognition (#311): Complete fix for child orders not appearing in "My Trades" after range order completion - child orders now seamlessly link to parent sessions
- Session Timeout Detection (#305): Proper cleanup of orphaned sessions with 10-second timeout when no response from Mostro
- Rating Navigation Flow (#312): Fixed rating validation preventing proper navigation in notification flows
- Subscription Manager Initialization (#309): Fixed critical issue where existing sessions weren't properly loaded on app startup, causing orders to disappear from "My Trades"
- Session State Persistence: Enhanced session state management to prevent data loss during app lifecycle events
Changed
- Session Management Architecture: Complete overhaul with pending child session tracking, proper lifecycle management, and automatic cleanup mechanisms
- Child Order Flow: Seamless transition from parent range orders to child orders with proper session linking and role inheritance
- Error Handling: Improved cant-do error processing with better user feedback and custom error messages
- Order State Management: Enhanced order state transitions with proper session cleanup and timeout detection
- Subscription Management: Improved subscription handling with automatic session-based subscription updates
Security
- Session Isolation: Enhanced session cleanup to prevent data leakage between different order sessions
- Timeout Protection: Automatic cleanup of unresponsive sessions to prevent security vulnerabilities
- Key Management: Centralized key derivation path configuration with improved security practices
- Session Privacy: Enhanced session cleanup and timeout detection to prevent sensitive data persistence
Documentation
- Child Order Implementation Guide: Comprehensive documentation of pre-emptive child order session creation system
- Session Management Documentation: Detailed technical documentation covering session lifecycle, cleanup, and timeout detection
- Request ID Analysis: Complete troubleshooting guide for debugging order flow issues
- Technical Architecture Updates: Enhanced system documentation including timeout detection and session cleanup processes
v1.0.0+14
Added
- Documentation System Overhaul (#296): Complete reorganization of project documentation with improved structure
- Protocol Documentation Integration: Added comprehensive docs/protocol/ subtree with complete Mostro protocol specifications
- Session and Key Management Documentation: Detailed technical documentation for cryptographic key handling and session management
- Automatic Relay Synchronization: Complete relay management system with real-time sync to Mostro instances, blacklist support, and URL normalization
- Enhanced Notifications Screen (#257): Brand new notifications interface with improved user experience
- Dispute System UI (#285, #289): Enhanced dispute creation and management interface for active orders
- Secure APK Signing for CI/CD: Comprehensive GitHub Actions setup for secure release builds with proper certificate management
- Enhanced Message Signing and Verification: Comprehensive logging system for cryptographic operations with protocol compliance verification
- Technical Architecture Documentation: Complete system documentation including timeout detection, session cleanup, and order creation processes
Fixed
- Message Structure Protocol Compliance (#295): Fixed message formatting to properly follow Mostro protocol specifications
- Session Cleanup for Error Responses (#287): Proper session cleanup for pending_order_exists cant-do responses
- Range Order Release Payload (#283): Correct next trade key handling for range order releases using proper trade pubkey instead of master key
- Android Compilation Warnings (#278): Resolved multiple Android build warnings and compilation issues
- Relay Management Issues: Fixed URL normalization, duplicate prevention, blacklist bypass prevention, and proper relay persistence
- Key Derivation in Tests: Added proper KeyManager stubbing for deterministic test results
- Relay Synchronization Race Conditions: Improved relay sync with proper deduplication and blacklist handling
- Relay URL Normalization: Consistent trailing slash removal and format standardization across all relay operations
- User Relay Deletion: Fixed duplicate keys and proper settings preservation during relay management operations
Changed
- Optimized Error Handling (#292): Enhanced cant-do error processing with better user feedback and custom error messages
- Improved Relay Selection UI: Redesigned relay screen with switch toggles and enhanced user experience
- Enhanced Relay Validation: Two-tier validation system with Nostr protocol testing and WebSocket fallback connectivity checks
- Streamlined Documentation Structure: Reorganized technical documentation with improved accessibility and cross-references
- Enhanced Message Logging: Comprehensive cryptographic operation logging with verification status and debugging information
Removed
- Dispute Token Functionality (#294): Removed unused dispute token system and related translations for code cleanup
- Seller/Buyer Token System (#293): Streamlined token handling by removing redundant seller/buyer token functionality
- Relay Timer Leaks: Proper cleanup of periodic timers in RelaysNotifier to prevent memory leaks
- Instance Contamination: Prevention of relay contamination between different Mostro instances with proper isolation