Skip to content

cashubtc/Numo

Repository files navigation

Numo 🥜⚡

Numo is an Android Point-of-Sale application that enables merchants to receive Cashu ecash payments via tap-2-pay.

Warning

This application is NOT a wallet. It only acts as a terminal to receive payments and immediately generate redemption tokens. It does not store any tokens. tokens MUST be redeemed in a proper Cashu wallet after receiving them, or the funds will be lost.

Overview

The application acts as a simple point-of-sale terminal for receiving Bitcoin payments. When a customer approaches their phone with a supporting wallet, the app receives the ecash payment.

How It Works

Using Numo is straightforward:

The merchant enters the desired amount in satoshis using the application's keypad. When they press "Charge", a payment screen appears and a type-4 forum tag is emulated with a cashu PaymentRequest string as its content. When the payer approaches their phone, their Cashu wallet will interact with the emulated tag using the NDEF protocol, reading the contents and decoding the payment request. Immediately after, the paying wallet will write a cashu token with the requested amount to the emulated tag and Numo will process it. Details of the payer-side spec are available here.

Numo also supports direct lightning payments

When the merchant switches to the "lightning" tab in the payment screen, a fresh BOLT11 invoice is generated and displayed as a QR code. The contents of the emulated tag are also overwritten with "lightning:", so compatible wallets are be able to scan the BOLT11 invoice from the tag.

Features

  • Tap-2-pay with cashu ecash and NDEF protocol
  • Payment through Nostr
  • Lightning bolt11 invoices
  • Withdraw to self-custody / withdraw to lightning address.
  • Automatic withdrawal after threshold is reached
  • Merchant item catalogs, with pre-selectable items
  • Merchant item baskets, which can be persisted and updated at different times
  • Payment history and direct "Open With" integration for Cashu wallets

Requirements

  • Android device running Android 7.0 (API level 24) or higher
  • NFC hardware with Host Card Emulation (HCE) support (required for tap‑to‑pay over NDEF)
  • A rear camera compatible with CameraX (for QR / barcode scanning)
  • Internet connectivity (Wi‑Fi or mobile data) for contacting mints / Lightning endpoints
  • A compatible Cashu wallet / smartcard setup for actual ecash payment flows

Numo will install on any device with Android 7.0+ but core features like tap‑to‑pay and QR scanning require NFC and a camera.

Debug Build

To build the debug version of the app:

# Clone the repository
git clone https://github.com/lollerfirst/numo.git
cd numo

# Build debug APK
./gradlew assembleDebug

# The APK will be available at:
# app/build/outputs/apk/debug/app-debug.apk

Debug Installation

To install the debug version of the app:

# Make sure your device is connected and available to adb
adb devices

## Install the APK you've previously built
cd numo
./gradlew installDebug

Alternatively, you can open the project in Android Studio and build and install it using the IDE's build tools.

Getting Started: Onboarding

After building Numo, simply install the APK on your device and open the app. You'll be presented with an onboarding screen, where you can choose to create a new wallet or restore an old one with your seed-phrase. A further step will prompt you to select the mints you'll be using to receive payments and a few reputable default ones. No additional setup is required - the app is ready to process payments immediately.

Support

For bugs, feature requests, or general feedback, please open an issue in this repository or submit an email to numopay@proton.me. For security-related concerns, please refer to our security policy.

License

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

About

Cashu and lightning PoS APP

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5