LaWallet POS

ar.lawallet.lawallet_pos
by El Gorila 🇦🇷 agustin@primal.net

Lightning + Nostr point-of-sale for Android

Native Flutter point-of-sale for the LaWallet stack. Charge in sats, ARS or USD, generate real LNURL-pay invoices, accept NFC / Boltcard tap-to-pay, print receipts on ZCS thermal printers, and keep customer tabs plus a session order history. Built for ZCS terminals (armeabi-v7a) and modern arm64 devices.

First release: Jul 2, 2026, 4 total releases.

Most recent release: Aug 16, 2026.

Website Repo

Appears in 1 app stack.

2,100 sats / 1 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Aug 16, 2026 0.1.5
    ## Cupones Escaneá (o tipeá) el código en la pantalla de cobro: se consulta, se cotiza contra la canasta, se canjea y la factura se regenera por el neto. El cupón queda en el ticket impreso y en la pantalla final. El botón solo aparece si el comercio autorizó un servicio de cupones en nostr. ## Las órdenes ahora llegan al panel El `p` del zap request apuntaba a la clave del proveedor LNURL — la que firma recibos, no la que cobra — así que el panel del comercio, que filtra por `#p`, nunca las veía. Ahora apunta al pubkey del comercio (NIP-05), y la canasta viaja con él. ## También
    More…
    - Un `/hub` sin dirección ya no cambia de comercio a mitad de turno. - Un alcance de cupón ilegible se rechaza en vez de aplicarse al local entero. - Recotizar ya no deja órdenes huérfanas ni un bolt11 viejo pagable por NFC. - El anuncio de cupones sobrevive a una lectura parcial de relays. ## Cuál bajar | APK | Para | |---|---| | `lawallet-pos-v0.1.5-armeabi-v7a.apk` | **Terminales ZCS/Ciontek** (Z92 y similares, 32 bits) | | `lawallet-pos-v0.1.5-arm64-v8a.apk` | Teléfonos modernos | | `lawallet-pos-v0.1.5.apk` | Universal, si no sabés cuál | Un APK por ABI trae un `versionCode` más alto que el universal, así que pasar de un split al universal es un downgrade y Android lo rechaza. Elegí un canal por dispositivo y quedate ahí.
  • Jul 23, 2026 0.1.4
    Packaging-only release — no functional changes to the app. `v0.1.3` and `v0.1.4` behave identically. `lawallet-pos-v0.1.4.apk` below is the universal build (all ABIs), same as every prior release. Install it on any device. ## Dedicated 32-bit builds for ZCS terminals The universal APK is ~70 MB because it carries `armeabi-v7a`, `arm64-v8a` and `x86_64` native libraries at once. ZCS/Ciontek terminals are 32-bit only, so roughly two-thirds of that download is native code the terminal can never load. New `tool/build_release.sh` additionally emits per-ABI splits — the `armeabi-v7a` build comes out at **22 MB against 70 MB universal**, a 69% reduction:
    More…
    ```bash tool/build_release.sh ``` | Artifact | ABIs | Size | |---|---|---| | `lawallet-pos-v0.1.4.apk` | all | 70 MB | | `lawallet-pos-v0.1.4-armeabi-v7a.apk` | 32-bit | 22 MB | | `lawallet-pos-v0.1.4-arm64-v8a.apk` | 64-bit | 26 MB | The splits are not attached to this release — build them locally and sideload to terminals. Verified installing and running on a 32-bit `armeabi-v7a` terminal (Android 13). ## Safer release builds The script hard-fails when `android/key.properties` is absent rather than silently falling back to debug signing. A debug-signed APK cannot update an existing install, and that failure previously surfaced only as an `INSTALL_FAILED_UPDATE_INCOMPATIBLE` at `adb install` time. ## Upgrade note `--split-per-abi` offsets `versionCode` per ABI (`armeabi-v7a` +1000, `arm64-v8a` +2000), so a split APK outranks the universal build. Moving a device from a split APK back to the universal one is a downgrade and Android will refuse it. Pick one channel per device and stay on it.
  • Jul 5, 2026 0.1.3
    ## LaWallet POS v0.1.3 ### Payment ("Cobrar") - The invoice screen now **builds its template immediately** instead of showing a spinner: amount, fiat and the buttons appear in place while the invoice loads, the QR slot plays a **"generating" scramble with a centred spinner**, and only **Cancelar** is enabled. When the invoice lands the real QR **cross-fades in**, **"Esperando el pago…"** reveals, and Copiar invoice / Check event enable. - **NFC card-tap charging screen**: an animated **task checklist** (read → request → confirm) that ticks off as it advances, plus a shimmering **"Surprise coming here…"** placeholder for future promotions. ### App-wide - Fast, smooth **fade + scale transition on every page change**. ### Home
    More…
    - **Clear (X) button** inside the address input to wipe the whole address. ### Fixes & performance - **Accepts any resolvable Lightning Address** (e.g. `user@lawallet.io`) — no longer wrongly rejected for lacking an advertised LUD-21/NIP-57 confirmation mechanism. - **Faster first invoice**: the Nostr identity (cached pubkey) and the merchant address are warmed at startup, so the first charge is just the provider callback. Universal signed APK (armeabi-v7a + arm64-v8a).
  • Jul 2, 2026 0.1.1
    Updates the launcher icon to the current POS mark and pins the Zapstore listing icon. Same feature set as v0.1.0. Universal APK (armeabi-v7a + arm64-v8a), release-signed. 🤖 Generated with [Claude Code](https://claude.com/claude-code)