Skip to content

MostroP2P/mobile

Repository files navigation

Mostro Mobile Client

Super early version of a mobile client for the Mostro P2P platform.

This project is a mobile interface that facilitates peer-to-peer bitcoin trading over the lightning network ⚡️ using nostr 🦩. The lightning network is a layer 2 scaling solution for bitcoin that enables fast and low-cost transactions.

Prerequisites

For the Mobile Client

  • Install Flutter: Follow the official guide for your operating system.
  • Install Android Studio or Xcode (for iOS development)
  • Install VS Code (optional but recommended)

For Mostro Daemon

For Testing Environment

  • Install Polar: For simulating Lightning Network nodes

Installation

  1. Clone the repository:

    git clone https://github.com/MostroP2P/mobile.git
    cd mobile
  2. Install Flutter dependencies:

    flutter pub get

Running the App

On Emulator/Simulator

flutter run

On Physical Device

Connect your device and run:

flutter run

Setting up Mostro Daemon

  1. Clone the Mostro repository:

    git clone https://github.com/MostroP2P/mostro.git
    cd mostro
  2. Set up the configuration:

    cp settings.tpl.toml settings.toml

    Edit settings.toml with your specific configurations.

  3. Initialize the database:

    ./init_db.sh
  4. Run the Mostro daemon:

    cargo run

Setting up Polar for Testing

  1. Launch Polar and create a new Lightning Network.
  2. Configure at least one node (e.g., "alice").
  3. Copy the necessary connection details (cert file, macaroon file) to your Mostro settings.toml.

Development Workflow

  1. Ensure Polar is running with your test Lightning Network.
  2. Start the Mostro daemon.
  3. Run the Flutter app and connect it to your local Mostro instance.

Contributing

Please take a look at our issues section for areas where you can contribute. We welcome all contributions, big or small! 😊

License

This project is licensed under the MIT License. See the LICENSE file for details.

Progress Overview

  • Displays order list
  • Take orders (Buy & Sell)
  • Posts Orders (Buy & Sell)
  • Direct message with peers (use nip-17)
  • Fiat sent
  • Release
  • Maker cancel pending order
  • Cooperative cancellation
  • Buyer: add new invoice if payment fails
  • Rate users
  • List own orders
  • Dispute flow (users)
  • Dispute management (for admins)
  • Conversation key management
  • Create buy orders with LN address
  • Nip-06 support (identity management)
  • Settings tab
  • Notifications