Skip to content

Monero-Merchant/monero-merchant

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

183 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Monero Merchant

Free and Open Source Monero Point of Sale (POS)

Monero Merchant screenshot


fdroid

Monero Merchant is a FOSS Android point-of-sale (POS) system for accepting Monero (XMR) payments. It provides a self-hosted, trustless, and secure payment solution for vendors and merchants.


Features

  • Open Source: Licensed under GNU GPL v3.0.
  • Trustless Architecture: Operate your own backend; no reliance on third parties.
  • Device-Agnostic: Works on any Android device β€” no proprietary hardware.
  • Receipt Printing: Supports Bluetooth ESC/POS printers.
  • Scalable: Unlimited POS clients and vendors, centrally managed.
  • Secure: No wallet keys stored or exposed on client devices.
  • Integrated Backend: Backend API interfaces with monerod and MoneroPay.
  • Fast Payments: Supports 0-confirmation Monero transactions in 5–10 seconds.

Compatibility

  • Client: Any Android device, with or without a Bluetooth mobile printer.
  • Backend: Ubuntu LTS VPS or LAN environment (low-spec compatible).

Taking Payments

  1. Enter the amount in your primaryFiatCurrency and tap the green button.

  2. The app generates a Monero payment QR or NFC tag with address, amount, and note prefilled. The customer scans it and sends funds using any Monero wallet.

  3. Once the payment reaches the configured confirmation threshold (0, 1, or 10), the app automatically advances to the receipt screen where you can:

    • Print a receipt
    • Start a new order

Settings Overview

Company Information

  • Upload a logo (appears on receipts)
  • Edit company name and contact details
  • Customize footer text

Fiat Currencies

  • Configure the primaryFiatCurrency
  • Add multiple referenceFiatCurrencies

Security

  • Enable PIN protection for app startup or settings access
  • Note: PINs cannot currently be reset β€” choose carefully

Printer Settings

  • Select connection type (Bluetooth tested and supported)
  • Adjust printer parameters if needed
  • Use Test Print to verify output

Building Monero Merchant Client from Source

Prerequisites

1. Clone the Repository

git clone https://github.com/Monero-Merchant/monero-merchant

2. Open in Android Studio

  1. Launch Android Studio
  2. Select Open an Existing Project
  3. Navigate to monero-merchant/pos and open it

3. Install Dependencies

Android Studio auto-installs dependencies. If not, manually sync Gradle:

File > Sync Project with Gradle Files

4. Choose Build Variant

View > Tool Windows > Build Variants

Select debug or release.

5. Build the APK

GUI method:

Build > Build APK(s)

Command line:

./gradlew assembleDebug    # Debug build
./gradlew assembleRelease  # Release build

Output: app/build/outputs/apk/


Building with Docker

Requirements

  • Docker Engine β‰₯ 24
  • Docker Compose plugin
  • 8 GB RAM, ~10 GB free disk space
  • User added to docker group

Build

git clone https://github.com/Monero-Merchant/monero-merchant
cd monero-merchant/pos
docker compose build --no-cache
docker compose up --abort-on-container-exit

Using Prebuilt Image

git clone https://github.com/Monero-Merchant/monero-merchant
cd monero-merchant/pos
docker run --rm \
  -v "$PWD":/workspace \
  -v monero-merchant-gradle:/home/gradle-cache \
  -v monero-merchant-android-sdk:/opt/android-sdk \
  ghcr.io/ajs-xmr/xmrpos-android-builder:df7af4d

Output APK: app/build/outputs/apk/debug/app-debug.apk


Backend Setup

Prerequisites

  • Clean Ubuntu LTS VPS
  • Docker (user added to docker group)
  • Docker Compose
  • Git
  • OpenSSL

Install

git clone https://github.com/Monero-Merchant/monero-merchant

cd monero-merchant

make install

Start / Restart / Rebuild / Stop

make up # start services

make restart # restart containers (after .env changes)

make rebuild # rebuild images and restart

make down # stop containers

Status & Logs

make ps # show running containers

make logs # stream logs

Cleanup / Uninstall (Warning: this will delete database and wallet data)

make clean # remove containers, volumes, and build cache

make reset # full reset: clean + delete .env and local dependencies


For detailed backend API usage, see backend/README.md.


Donations

Support the project with Monero (XMR):

88zkpYQRJPmeuycSN7Jx3UHq9vH1u2dD8eE1rECvCAouPj75Cdnu1eUacQ5p7ZMvdr4e6BRe2FShv4HoatSs9HcwEeZCupZ

License

Licensed under the GNU General Public License v3.0. See LICENSE for details.

About

Enabling merchants to accept Monero... Fast, private, and seamless payments 😎

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages

  • Kotlin 71.3%
  • Go 22.3%
  • HTML 5.0%
  • Other 1.4%