Tester gesucht: EmberSpark - schlanker Android-Client für deinen eigenen LNbits-Server

Hallo zusammen,

ich entwickle in meiner Freizeit EmberSpark, eine Android-App, die als Bedienoberfläche für einen selbst gehosteten LNbits-Server dient. Wichtig vorab: EmberSpark ist explizit keine eigenständige Wallet. Dein LNbits-Server bleibt die Wallet, EmberSpark ist der Client dafür auf dem Handy. Custodial-Funktionen, eingebaute Tauschdienste oder ähnliches gibt es nicht und sind auch nicht geplant.
Möglicherweise werden in Zukunft aber weitere Wallets/Backends unterstützt.

Die App liegt bereits im Google Play Store. Für die kommenden Releases suche ich noch ein paar Tester aus dem deutschsprachigen Lightning-Umfeld, die idealerweise ihren eigenen Node betreiben und gern kritisch hinschauen.

Ideal wenn ihr euren Lightning Node und bestehenden Kanäle für Familie und Freunde zugänglich machen wollt.

Features

  • Lightning Send & Receive über deinen LNbits-Server

  • QR-Scanner mit Auto-Routing für BOLT11, BOLT12 (lno1… / lni1…), LNURL und Lightning-Adressen

  • BOLT12 komplett: Offers und Invoices bezahlen, eigene Offers über die LNbits-Community-Extension generieren

  • LNURL: pay, withdraw und auth (LUD-04 mit secp256k1-Signatur), inkl. LUD-12 Kommentar beim Pay

  • Lightning-Adressen (user@host) als Sende- und Kontakt-Ziel

  • Meine Visitenkarte: eigene Lightning-Adresse, BOLT12-Offer und LNURL-pay-Link via QR, Copy, Share oder NFC teilen, optional automatisch vom LNbits-Server generiert

  • Deterministische Avatare pro Wallet, aus den öffentlichen Lightning-Identifiern abgeleitet, sodass die gleiche Person bei dir und beim Gegenüber denselben Avatar zeigt

  • Mehrere LNbits-Server parallel verwalten, mit schnellem Switcher und eigener Visitenkarte pro Server

  • Live-Transaktionsverlauf, eingehende und ausgehende Zahlungen erscheinen ohne manuelles Refresh

  • Sats / Fiat-Toggle überall (USD, EUR, GBP, CHF, CAD, AUD, JPY via mempool.space), inkl. Eingabe in Fiat beim LNURL-Pay

  • Kontakte speichern, plus Import / Export als JSON-Datei

  • NFC read / write für Lightning-Destinations

  • System-Handler für lightning:- und lnurl:-Deep-Links

  • Biometrie- oder PIN-Sperre beim App-Start

  • API-Key im Android KeyStore (flutter_secure_storage); explizit kein Android Auto Backup, damit die Credentials nicht in Google Drive landen

  • TLS-Toggle für selbstsignierte Zertifikate oder .onion-LNbits-Server

Voraussetzungen

  • Android 6.0+ (API 23)

  • Ein eigener, erreichbarer LNbits-Server mit echtem Lightning-Backend (LND, CLN, Phoenixd oder NWC). VoidWallet reicht nicht, der bewegt keine Sats.

  • Netzwerk-Erreichbarkeit vom Handy zum LNbits-Server: LAN, Reverse-Proxy oder .onion gehen alle.

  • Ein Google-Konto, das ich zur Tester-Liste hinzufügen kann

Links

Mitmachen

Wer im Geschlossenem Testing Track mitlaufen will: schickt mir eine kurze PM mit der Google-E-Mail-Adresse des Test-Accounts. Ich nehme euch in die Tester-Liste auf und ihr bekommt die Builds direkt aus dem Play Store. Feedback gerne hier im Thread, per PM oder über den GitHub-Issue-Tracker.

Alternative Teilnahme über Beitritt der Google Group: https://groups.google.com/g/emberspark-testers

Die Mitgliedschaft schaltet den Testzugang frei, sobald du mit dem Google-Konto beigetreten bist.
Play Store: https://play.google.com/store/apps/details?id=com.emberspark.wallet (Nur sichtbar für registrierte Tester)

Moment ist EmberSpark eine management-Software für LNbits, also für die Verwaltung durch den Server-Admin, Verwaltung von LNbits-Konten etc. oder ist es für jeweils einen bestimmten LNbits account (ggf. mehrere Wallets in Account) oder ist es für jeweils eine bestimmte Wallet?

Werden Bolt Cards, aktiv unterstützt?
Funktioniert das abbuchen von Sats via LNURLw/Bolt card per scan/NFC wenn die Quelle eine andere Wallet auf dem gleichen LNbits-Server (mit gleicher node dahinter) ist?

Scheint ein spannendes Projekt zu sein. Gibt es schon Pläne für das Release?

Hi Astrea, danke fürs Nachfragen,

Auf welcher Ebene arbeitet EmberSpark?

EmberSpark ist keine Admin- oder Management-Software für LNbits. Es ist ein Client auf Wallet-Ebene. Du bindest es an eine konkrete LNbits-Wallet an, indem du den API-Key (Admin-Key, z. B. per QR) hinterlegst. Ein API-Key entspricht in LNbits genau einer Wallet, also arbeitet EmberSpark pro Wallet.

Du kannst aber mehrere Wallets parallel einbinden. Auch über verschiedene LNbits-Server hinweg und per Switcher zwischen ihnen wechseln. Jede eingebundene Wallet hat ihre eigene Visitenkarte (Lightning-Adresse, LNURL-pay, BOLT12).

Werden Bolt Cards aktiv unterstützt?

Eine dedizierte Bolt-Card-Funktion (Karten programmieren, Anbindung der boltcard-Extension, Counter-Handling) gibt es aktuell nicht. EmberSpark unterstützt aber generisch LNURL-withdraw (LUD-03) und kann sowohl QR-Codes als auch NFC-NDEF-Tags lesen.

Praktisch heißt das: Liegt auf der Karte bzw. dem Tag eine standardmäßige LNURL (bech32 LNURL1…, optional mit lightning:-Präfix), liest EmberSpark sie und führt den Withdraw aus. Viele programmierbare Bolt Cards nutzen allerdings das lnurlw://-Schema mit pro-Tap-Counter (p/c-Parameter), und dieses Schema parst der aktuelle Decoder noch nicht zuverlässig. Eine solche Karte funktioniert also nicht garantiert out of the box. Echte Bolt-Card-Unterstützung steht damit noch auf der To-do-Liste.

Funktioniert das Abbuchen via LNURLw, wenn die Quelle eine andere Wallet auf demselben LNbits-Server (gleiche Node) ist?

Kurz gesagt, ja :slightly_smiling_face:
Beim LNURL-Withdraw erzeugt EmberSpark auf der gerade verbundenen Ziel-Wallet eine Invoice und reicht sie an den Withdraw-Callback der Quelle weiter und die Quell-Wallet bezahlt diese Invoice. Das funktioniert auch auf demselben Server/Node

Gibt es schon Release-Pläne?

Leider noch nicht. Stand jetzt läuft EmberSpark im geschlossenen Test (Closed Testing) auf Google Play, für den ich hier Tester suche.

@Astrea Ich habe soeben eine neue Version released, die nun auch das lnurlw://-Schema korrekt behandeln sollte. Somit müssten Boltcards nun zumindest für die Bezahlung in EmberSpark funktionieren.

Testen kann ich das allerdings selber leider nicht, da ich aktuell noch keine Boltcard besitze. Ich werde mir hierfür wohl noch eine bestellen müssen.

BTW: Schönes Tagebuch, das du hier im Forum führst :wink:

EmberSpark unterstützt nun Bolt Cards inklusive der LNbits Bolt Card Extension nativ.

Damit funktioniert nun das Programmieren, Bearbeiten, Überprüfen und Wipen direkt aus der App heraus.
Das war zwar relativ viel Arbeit, aber mich hat es irgendwie gestört immer zwischen LNbits Server und Bolt App hin- und herspringen zu müssen und QR-Codes kopieren zu müssen.

Besonders, weil ich meinen Server auch für Freunde und Familie zur Verfügung gestellt habe und nicht alle Karten für jeden einzelnen immer verwalten möchte :slightly_smiling_face: Nun können sie ihre Karten selber in der App hinzufügen und bearbeiten.

Danke an alle Tester!

EmberSpark ist ab sofort offiziell im Google Play Store verfügbar​:fire:

An alle mit der Testversion: Ihr müsst nichts weiter tun. Alle Tester werden automatisch auf die offizielle Version umgestellt. Es ist keine Neuinstallation nötig, das nächste Update kommt einfach als normales Store-Update.

Bleibt dran und happy Stacking​:high_voltage:

Sehr cool. Gerade ausprobiert, einfach top! Boltcards sehr schön integriert.

Einziges Problem: Ich wollte and die LN-Adresse in der „about“-Sektion eine Spende schicken, bekomme aber „Void Wallet cannot create invoices“. Und nein, mein LNbits läuft nicht auf Void Wallet. Zahlungen empfangen und senden funktioniert sonst problemlos.

Danke für das Feedback und schön, dass dir die Bolt Card integration gefällt :slightly_smiling_face:
Der Fehler mit der Zahlung lag an meinem Backend. Sollte nun wieder funktionieren. Danke für den Hinweis :wink:

Ja hat geklappt. Spende wurde geschickt!

Ist das Produkt fertig oder hast du noch weitere Features geplant?

Ist angekommen. Danke dir für die großzügige Spende Astrea! :fire:

Ich würde mal sagen, dafür kannst du dir direkt etwas wünschen wenn du einen konkreten Feature-Wunsch hast.
Prinzipiell möchte ich mit der App zukünftig mehr als nur LNbits unterstützen und aller Wahrscheinlichkeit nach noch NWC (Nostr Wallet Connect) hinzufügen. Auch Funding/Aufladungen via Boltz und Co. wären schön, aber unter Umständen auch schwierig hinsichtlich der Regulierungen.

Unterstützung für iOS ist auch bereits vorgesehen, allerdings würde ich das noch etwas nach hinten schieben wollen, da ein Developer Account bei Apple um die 100$ im Jahr kostet. Ich möchte aber in keinem Fall Werbung in der App, daher muss das auch irgendwie wirtschaftlich im Verhältnis stehen.

Gerne!

Ich habe einen bzw. 2 zusammenhängende Bugs entdeckt:
Wenn ich „Receive“ wähle, den Betrag eingebe und NFC wähle, dann meine Boltcard nutzen will, dann sagt er „could not write to tag“. Etwas komische Fehlermeldung, ich wollte doch nur lesen.
Ich hab dann aus Interesse „Send“ gewählt, auch NFC, und die Boltcard drangehalten. Und da konnte ich doch tatsächlich eingeben wieviel ich abbuchen will. Hat auch funktioniert. Di Idee ist ja aber, dass der bezahlende vorher den Betrag sieht und der dann direkt abgebucht wird bei dranhalten.

Ist da vielleicht das mapping vertauscht? Wobei „could not write to tag“ allgemein komisch wäre, egal ob man was abbuchen oder zahlen will. Irgendwas ist da auf jeden Fall falsch.

Dann hab ich noch den Sonderfall „mich selbst bezahlen mit Boltcard, die die gleiche wallet zum senden nutzt wie ich zum empfangen“. Das funktioniert auch. Ich seh dann ein credit und ein debit zur gleichen Zeit. Kann ein feature sein dass es einfach geht, oder der Fall wurde übersehen und es gibt deswegen keine Warnung. Die Nutzung leidet nicht darunter, ich dachte nur ich erwähne es.

Feature-Wunsch hab ich an sich keinen. Alle Funktionen die ich brauche sind beriets drin (die NFC-Sache wird ja sicher noch behoben).

Noch 2 UI-Sachen:

Fände es cool wenn man in der Hauptansicht bei längeren drücken des Wallet-Namens ein drop down/scroll through Menü bekommen würde und dann nur den Finger nach oben oder unten bewegen muss um die Wallet zu wechseln. Ist bequemer als in die andere Ansicht zu wechseln und dort zu wählen.
Ich würde gerne den „Avatar“ selber wählen können. Z.B. aus einer Auswahl Standardbildern (Bitcoin logo, Lightning Logo, 1-2 „work related“ Optionen, falls jemand eine der falls für den Betrieb nutzt, vielleicht eine Strand mit Schirm Option, eine „Satoshi“ Option (Typ mit Hoodie ohne gesicht oder so). Einfach so ein paar Sachen die übliche sind. Ist kein muss, aber eine gute Alternative zu den generierten Avataren (die sagen mir persönlich ehrlich gesagt nicht so zu).