LNPoS – Lightning PoS Terminal
Bitcoin im Geschäft per LNPoS (Lightning Point of Sale) akzeptieren.
In diesem Beitrag erklären wir, wie Du in Deinem Geschäft (Einzelhandel, Restaurant, Handwerker, Dienstleister) Bitcoin und Lightning Zahlungen mit einem LNPoS Hardware POS Terminal akzeptieren kannst.
Mit dem LNPoS Bitcoin PoS Terminal können Händler Zahlungen per Bitcoin und Lightning empfangen und wie an einem Bitcoin Automaten (ATM) auch Bitcoin verkaufen.
Die LNPoS Funktionen:
- LNURLPoS – für Offline Lightning Zahlungen
- OnChain – für On-Chain Zahlungen
- LNURLATM – für Offline Lightning Auszahlungen
Das Bitcoin Terminal kann auch Offline verwendet werden. Es kann auch dort eingesetzt werden, wenn es keine Internetverbindung gibt, wie zum Beispiel bei Freiluft-Veranstaltungen, Festivals oder auf Flohmärkten.
YouTube Video – Bitcoin per LNPoS akzeptieren
Auf dem Coincharge YouTube Kanal findest Du ein deutschsprachiges Video mit dem Titel „Bitcoin per LNPoS akzeptieren„.
In dem Video wird erklärt, wie ein LNPoS funktioniert, wo der Bausatz bestellt werden kann und wie man das LNPoS zusammenbaut und konfigurieren kann.
LNPoS Hardware Komponenten
Das LNPoS Bitcoin Terminal isst keine App auf einem Smartphone, sondern ein eigenständige Stück Hardware. Das LNPoS besteht aus den folgenden Hardware-Komponenten:
- Lilygo T-Display Keyboard Modul als Eingabefeld
- Lilygo TTGo T-Display ESP32
- Gehäuse
- USB-Kabel
- Akku mit Micro JST 1,25-Stecker (Optional)
- Schiebeschalter (Optional)
Optional kann man einen wiederaufladbaren Akku und einen An/Aus-Schalter noch dazu kaufen.
Diese Einzelteile können einzeln und individuell bestellt werden.
Es gibt aber auch Anbieter wie Fulmo und Anchorhodl bei denen man einen kompletten Bausatz bestellen kann.
Wir haben unseren LNPoS bei Fulmo gekauft. Der Bausatz kostete ca. €50,- (zur Blockzeit 762388) und für €10,- mehr, konnte man bereits die erforderliche Software vorinstalliert bekommen.
Der Bausatz besteht aus dem Lilygo T-Display Keyboard Module und einem Gehäuse, welches mit einem 3D Drucker erstellt wurde.
Das LNPoS erhält seine Stromversorgung durch den Anschluss an einen Computer über das mitgelieferte USB-Kabel.
Für einen Einsatz im Laden oder in einem Restaurant ist eine Unabhängigkeit von diesem USB-Kabel empfehlenswert.
Vielleicht erweitert Fulmo sein Komplettsatz Angebot noch um eine aufladbare Batterie (Per Link wird auf ein Angebot bei Amazon verwiesen) und einen An/Aus-Schalter.
Dies ist nicht zwingend erforderlich und kann bei Bedarf auch später noch nachgerüstet werden. Wir haben uns für das LNPoS – Construction Kit mit vorinstallierter Software für €59,- entschieden und erklären jetzt, wie die Hardware zusammengebaut wird.
Mit einem 3D Drucker kann man sein eigenes individuelles Gehäuse erstellen.
Für uns hat Lightning Bits ein paar Gehäuse zur Verfügung gestellt.
Zusammenbau das LNPoS Lightning PoS Terminal
Das LNPoS Construction Kit von Fulmo wird geliefert, wie auf dem nebenstehenden Bild gezeigt.
Wir haben uns zusätzlich eine aufladbare Batterie besorgt und das erforderliche Werkzeug (einen kleinen Kreuzschraubenzieher und eine Zange) bereitgelegt.
Wir nehmen das Keyboard Module (hier: LILYGO® TTGO T-Display ESP32 Keyboard For LNURLPoS Keypad Module) und bauen es erst einmal auseinander.
Wir entfernen den Schutzaufkleber vom Display und ziehen das Display aus der Steckverbindung.
Wenn wir eine wiederaufladbare Batterie (Akku) verwenden, dann stecken wir die in die vorgesehene Steckverbindung auf der Rückseite des Displays. Wollen wir keine Batterie verwenden, verzichten wir einfach darauf.
Wir empfehlen, auf den Einbau des Akkus zu warten, bis wir die Software und die eigenen Daten hinterlegt haben. Für die Konfiguration ist es erforderlich, dass unser LNPoS vom Strom entfernt wird. Dies geht einfacher, wenn wir mit dem Einbau des Akkus warten.
Dann entfernen wir die vier Schrauben und trennen das restliche Keyboard Modul voneinander. Jetzt kommt unser Schraubenzieher zum Einsatz. Damit die Schrauben nicht durchdrehen, halten wir mit der Zange die Schrauben entsprechend fest.
Wenn wir alle Schrauben entfernt und das Keypad voneinander getrennt haben, widmen wir uns dem Gehäuse.
LNPoS Gehäuse
Das LNPoS Gehäuse entstammt aus einem 3D-Drucker. Entsprechend sind noch ein paar Plastikteile, die entfernt werden müssen.
An der Seite befinden sich noch sechs kleine Stäbchen, welche wir mit dem Schraubenzieher wegbrechen können.
Jetzt haben wir den erforderlichen Platz, um das Keypad Element mit der Eingabetastatur in das Gehäuse zu drücken.
Dann setzen wir das Element mit dem Display in das Gehäuse.
Danach das verbleibende Teil von dem Keypad auf die entsprechenden Steckverbindungen.
Danach setzen wir das zweite Teil von dem Gehäuse drauf und verschrauben das Ganze.
Wir müssen die vorgesehenen Löcher für die Schrauben eventuell vorbohren und auch bei dem Einsetzen in das Gehäuse etwas drücken.
Somit ist der Zusammenbau des LNPoS abgeschlossen. Wenn das LNPoS das erste Mal an eine Stromquelle angeschlossen wird, entweder über die Batterie oder über das USB Kabel, dann wird das Display aktiv und zeigt No Methods und Restart & Run Portal.
Nachdem wir die Hardware vorbereitet haben, benötigen wir die Daten von unserer Lightning bzw. Bitcoin Wallet, die später auf dem LNPoS hinterlegt werden.
Es empfiehlt sich eine Textdatei bereit zu halten, in der wir die gewonnenen Angaben speichern können, da diese Daten in einem späteren Schritt benötigt werden.
LNbits Konto
Um Lightning Zahlungen empfangen zu können, benötigen wir ein Konto bei LNbits
Die LNPoS Hardware interagiert mit LNbits, um die eingehenden Bitcoin- und Lightning-Zahlungen zu empfangen.
Dafür wird eine Wallet bei LNbits benötigt. Eine detaillierte Beschreibung zu LNbits findest Du hier: LNbits Lightning Wallet- und Kontensystem
Wir können LNbits auf einem eigenen Server aufsetzen. Wie das gemacht werden kann, wird hier erklärt: https://github.com/lnbits/lnbits-legend
Ebenso ist LNbits auf einigen Hardware Nodes bereits vorinstalliert. Wer zum Beispiel einen Raspiblitz oder Umbrel am Laufen hat, der kann seinen eigenen LNbits nutzen.
Die Einrichtung ist in diesen Fällen etwas kompliziert, da die Hardware Nodes in der Regel im eigenen Heimnetzwerk betrieben werden und ein Zugriff für externe Nutzer über das Internet erlaubt werden muss.
Wie Du LNbits auf Deinem eigenen Raspiblitz verwendest, erfährst Du hier: https://coincharge.io/lnbits/#raspiblitz
Von LNbits wird aber auch ein eigener Server betrieben, der mitgenutzt werden kann.
Du gelangst über die Homepage https://lnbits.com/ auf die Seite und dann wechselst Du auf den Legend Server.
Die direkte Url lautet: https://legend.lnbits.com/ und dort erstellst Du Dir eine eigen Wallet.
LNbits Wallet
Im ersten Schritt wird eine LNbits Wallet erstellt. In unserem Beispiel erstellen wir eine LNbits Wallet direkt auf dem LNbits Server unter: https://legend.lnbits.com/
Wir wählen für uns den Namen Coincharge und klicken auf Add a new Wallet.
Wir benötigen keine EMail-Adresse oder sonstige Login Daten. Nachdem wir die Wallet erstellt haben, sollten wir uns eine Bookmark setzen für die Url mit unseren Wallet Daten, damit wir zu einem späteren Zeitpunkt direkt auf die Wallet zugreifen können.
Nachdem wir die Wallet erstellt haben, befindet sich im rechten Bereich die API Info zu der Wallet. Dieser Bereich klappen wir auf und bekommen den Invoice/read key angezeigt.
Diese Angaben können wir uns schon einmal in eine separate Text Datei kopieren, da wir diese Angaben später benötigen.
LNbits Extension LNURLDevice
In der linken Menüleiste gibt es den Menüpunkt Extension und Manage Extension. Wir klicken auf Manage Extension und bekommen eine Vielzahl von Anwendungen aufgelistet, welche mit LNbits verwendet werden können.
Wir wählen die Extension LNURLDevice aus und klicken auf Enable.
Danach wird LNURLDevice in der linken Menüleiste aufgeführt. Wir öffnen die Extension und richten POS und ATM ein.
LNURLPoS Funktion
Wir klicken auf New LNURLDevice Instance und es öffnet sich ein neues Fenster.
Wir geben der PoS Funktion einen selbstgewählten Titel.
Dann müssen wir aus dem Dropdown Menü eine Wallet auswählen. Man kann mehrere LNbits Wallet erstellen. Da wir nur eine Wallet erstellt haben, ergibt sich die Auswahl entsprechend.
Wir möchten gerne die Zahlungen auf Basis von Euro entgegennehmen und wählen entsprechend EUR.
Dann wählen wir PoS aus, da wir es als Point of Sale nutzen möchten.
In dem Feld Profit Margin können wir einen prozentualen Aufschlag auf dem Umrechnungskurs festlegen. Da wir an Wechselkursgewinnen nicht interessiert sind, setzen wir den Wert auf 0 und klicken auf Create LNURLDevice.
Wir erhalten eine Auflistung der bereits erstellten LNURLDevice und klicken auf das Symbol neben den von uns erstellten Titel.
Es öffnet sich dann ein weiteres Fenster mit dem LNURLDevice device string.
Da klicken wir rein und kopieren uns den Inhalt und fügen die Angaben in unsere bereit liegende Text Datei.
LNURLATM Funktion
Neben der Akzeptanz von Zahlungen über die PoS Funktion, verfügt LNPoS auch über eine ATM Funktion.
Mit der ATM Funktion kann man Bitcoin verkaufen.
Ein Kunde möchte zum Beispiel im Gegenwert von €50,- Bitcoin kaufen. Er gibt dem Verkäufer den Betrag zum Beispiel in Bar. Danach gibt der Verkäufer über die ATM Funktion den Betrag in Höhe von €50,- ein und über den angezeigten QR-Code kann der Käufer die Sats in seine Lightning Wallet übernehmen.
Da wir als Verkäufer auch etwas verdienen wollen, werden wir einen Aufschlag von 5% auf den Kurs vornehmen.
Wir erstellen wieder eine New LNURLDevice Instance. Wir wählen wieder einen Titel aus und legen die Währung fest.
Jetzt wählen wir ATM aus und in das Feld Profit Marge tragen wir 5 ein, um eine Marge von 5% zu erzielen.
Auch hier klicken wir in der Übersicht auf das Symbol, um den LNURLdevice String für die ATM Funktion zu erhalten.
Diese Angaben kopieren wir ebenfalls in unsere Text-Datei.
OnChain – für On-Chain Zahlungen
Bisher haben wir uns ausschließlich mit Lightning Zahlungen beschäftigt. Doch wir möchten mit unserem LNPoS auch Bitcoin Zahlungen, also On-Chain Zahlungen, empfangen.
Dafür benötigen wir einen Xpub-Key. Du kannst dafür einen xPub Key von Deiner Hardware Wallet verwenden.
Das Thema xPub Key haben wir ausführlich in dem Beitrag: xPub Key ermitteln erklärt. Hier findest Du auch die Informationen, wie Du den xPub Key von Deiner eigenen Hardware Wallet ermitteln kannst.
Wenn Du keine eigene Hardware Wallet verwendest, kannst Du auch die BlueWallet verwenden und den xPub Key verwenden. In dem YouTube Video haben wir den xPub Key aus der BlueWallet verwendet. Du kannst an die entsprechende Stelle in dem Video springen oder es unter BlueWallet xPub Key nachlesen
Nachdem wir den xPub Key ermittelt bzw. erstellt haben, können wir mit der Konfiguration der LNPoS beginnen.
LNbits Software auf dem LNPoS installieren
Software auf dem LNPoS installieren
Um die LNbits Software auf unserem LNPoS zu installieren, gehen wir auf die Webseite:
https://lnbits.github.io/lnpos/installer/index.html
Wir verbinden unseren LNPoS mit unserem Computer über das mitgelieferte Kabel.
Danach wählen wir „Stable Version“ aus und klicken auf Flash.
Die LNbits-Github Seite versucht eine Verbindung zu dem seriellen Port herzustellen, an dem LNPoS angeschlossen ist.
Dies entsprechend erlauben und dann beginnt die Installation der LNbit Software auf das LNPoS.
Nachdem wir die erforderliche Software installiert haben, um die Keypad Hardware als LNPoS nutzen zu können, müssen wir jetzt die individuellen Einstellungen vornehmen, damit die eingehenden Sats auf unserem eigenen Bitcoin- bzw. Lightning-Wallet gutgeschrieben werden.
LNPoS WLAN Verbindung
Um an die Einstellungen für die LNDPoS Optionen zu gelangen, müssen wir über die WLAN Funktion auf das LNDPoS zugreifen.
Unser LNDPoS verfügt über eine WLAN Funktion und darüber kann eine WLAN Verbindung aufgebaut werden.
Wir entfernen das Kabel aus unserem und somit verfügt unser LNPoS über keine Stromquelle. Wir drücken eine beliebige Taste, halten die Taste gedrückt und verbinden unser LNPoS erneut mit einer Stromquelle.
Beim Starten wird dann im Display AP Launching angezeigt.
Dies bedeutet, dass unser LNPoS dabei ist einen AP (=Access Point) zu suchen.
Jetzt benötigen wir unser Smartphone oder Computer mit einer eigenen WLAN Funktion. Wir gehen dafür in die WLAN Einstellungen und suchen nach einem WLAN Netzwerk in der Nähe, welches die Bezeichnung LNPoS trägt.
Wähle das WLAN aus, welches mit LNPoS beginnt.
Wenn das LNPoS WLAN Netzwerk ausgewählt werden konnte, gelangt man in die LNDPoS Optionen.
LNDPoS PoS Einstellungen
Bevor man auf die LNDpoS Optionen zugreifen kann, wird man nach einem Passwort gefragt. Von LNDPoS wurde werkseitig das Passwort ToTheMoon1 vorgegeben.
Nachdem dieses Passwort eingegeben hat, gelangt man auf die LNDPoS Einstellungen.
Man gelangt dann auf die technischen LNPoS Einstellungen. Unter SoftAP IP wird zum Beispiel eine IP Adresse angezeigt. Wenn ich die in meinen Browser eingebe, gelange ich ebenfalls auf die LNDPoS Einstellungen und kann etwas komfortabler die Einstellungen vornehmen.
PoS Options
Im Menüpung PoS Option können wir jetzt die individuellen Einstellungen vornehmen. Die erforderlichen Daten haben wir uns bereits in der Text Datei zusammengestellt. Diese Daten werden wir an dieser Stelle hinterlegen.
Das erste Feld ist das Passwort Feld für den Zugriff auf das LNPoS Backend. Das Standard-Passwort ist ToTheMoon1 und kann an dieser Stelle geändert werden.
In das Feld Master Public Key tragen wir den xPub Key von unserer Onchain Bitcoin Wallet ein. Dies ist erforderlich, um reine Bitcoin Zahlungen zu empfangen.
In das Feld LNbits Server tragen wir die url unseres LNbits Server ein. Wenn wir den von LNbits zur Verfügung gestellten Server verwenden, dann lautet die Eingabe https://legend.lnbits.com/
Verwenden wir unseren eigenen LNbits Server, dann tragen wir diese Url entsprechend ein.
In das Feld Wallet Invoice Key wird der Invoice/Read Key eingetragen, den wir bei der Erstellung der LNbits Wallet erhalten haben.
Dann die Währung unseres Landes, in diesem Fall EUR für Euro.
In das Feld LNURLPoS String kommen die Angaben aus der LNbits Extension LNURLDevice. Hier die Angaben von POS.
In das Feld LNURLATM String die Angaben für ATM.
Dann die Angaben für den Mempool.Space. Hier sind keine Änderungen empfehlenswert.
In das Feld LNURLATM Pin String ist der Standard-Wert 878787. Dieser Pin ist erforderlich, wenn Auszahlungen vorgenommen werden sollen.
Hier kann eine eigene PIN festgelegt werden.
Danach klicken wir auf Save und bekommen eine neue Seite angezeigt, mit den vorgenommenen Änderungen.
Dann ist die Zeit gekommen, um unser LNPoS auszuprobieren, ob alles so funktioniert, wie wir es uns wünschen.
LNPoS nutzen
Während wir unsere Einstellungen vornehmen, wird im Display des LNPoS AP Launched When finished reset angezeigt.
Wir müssen das LNPoS wieder von der Stromquelle nehmen und so einen Reset zu erreichen.
Nachdem wir das LNPoS wieder an eine Stromquelle angeschlossen haben, erscheint im Display bitcoinPoS powered by LNbits.
Nach ein paar Sekunden wird dann das Auswahl Menü angezeigt.
Wir sehen die vier Menüpunkte:
- LNURLPoS
- OnChain
- LNURLATM
Durch das Drücken auf * können wir die Auswahl wechseln. Durch Drücken von # gelangen wir in die Detailansicht.
LNURLPoS
LNURLPoS ist für die Zahlung per Lightning vorgesehen. Es wird der Fiat Betrag eingegeben, der gezahlt werden soll.
Nachdem der Betrag eingegeben wurde, wird auf # gedrückt und der QR Code für die Lightning Rechnung wird angezeigt.
Dieser QR Code kann der Zahler mit Hilfe seiner Lightning Wallet scannen.
In unserem Fall haben wir die Wallet of Satoshi Lightning Wallet verwendet.
Nach einer erfolgreichen Zahlung bekommt der Zahler einen Hinweis angezeigt, dass die Zahlung erfolgreich war.
Wenn der Zahler auf Open Url klickt, dann wird ihm ein vierstelliger Code angezeigt.
Wenn der Händler (Zahlungsempfänger) auf den #-Knopf drückt, bekommt er ebenfalls einen vierstelligen Code angezeigt.
Sind beide Codes identisch, dann war die Zahlung erfolgreich und ist abgeschlossen.
OnChain
Möchte ein Kunde per Bitcoin, also OnChain zahlen, dann wird diese Option ausgewählt.
Im Display wird xPub Ending angezeigt.
Um eine Bitcoin Adresse auf Basis dieses xPub Key zu erstellen, klicken wir auf # und wiederum wird ein QR Code angezeigt.
Der Zahler kann an diesen QR Code scannen und den Betrag festlegen, der gezahlt werden soll. Seitens LNPoS wird der Betrag nicht vorher eingetragen oder ein Verwendungszweck definiert, wie es bei der Lightning Zahlung unter LNURLPoS der Fall war.
Es wird auch kein PIN Code angezeigt, mit der eine erfolgreiche Zahlung geprüft werden kann.
Ob eine Zahlung erfolgreich abgeschlossen wurde, kann wie folgt überprüft werden:
Der Händler kann sich in seine Bitcoin Wallet einloggen und überprüfen, ob die Zahlung unterwegs bzw. bereits gutgeschrieben worden ist.
Der Händler kann nach der Zahlung auf die #-Taste drücken. Er erhält dann einen anderen QR-Code. Diesen QR-Code kann er mit jedem anderen QR-Code-Reader scannen und erhält dann eine Url, welche auf die Webseite von Mempool.Space verweist.
Darüber kann die Detailinformation zu der Onchain-Bitcoin-Transaktion aufgerufen werden. Der Händler sieht, dass die Transaktion sich im Mempool befindet bzw. die Anzahl der bereits vollzogenen Konfirmation.
LNURLATM
Bei der ATM Version wird ein Betrag von der Lightning Wallet des Händlers abgebucht.
Nach dem Aufruf des Menüpunktes LNURLATM muss der Händler einen PIN Code eingeben. Der Standard PIN Code ist 878787.
In den LNPoS Einstellungen konnten wir diesen PIN Code ändern.
Nachdem der PIN Code eingegeben wurde, kann der Händler den Betrag eintragen, der ausgezahlt werden soll.
In diesem Fall möchte der Kunde im Gegenwert von €1,- Lightning erwerben. Nachdem der Händler den Kaufbetrag erhalten hat, generiert der Händler den QR Code.
Der Käufer kann mit einer Lightning Wallet die LNURL Withdraw unterstützt diesen Betrag dann abrufen.
Das dieser Vorgang erfolgreich abgeschlossen wurde, bekommt der Käufer in seiner Lightning Wallet angezeigt.
Der Verkäufer bekommt keine Rückmeldung. Auch hier wäre eine Rückmeldung an den Händler wünschenswert, wie es bei LNURLPoS der Fall ist.
Der Händler hat aber die Möglichkeit sich in seinen LNbits Account einzuloggen und sich die entsprechenden Lightning Transaktionen anzusehen.
Eine entsprechende Bookmark dieser Url hatten wir ja bereits am Anfang des Textes empfohlen.
Zusammenfassung
Das LNPoS ist eine sehr gute Option für stationäre Händler die vor Ort Lightning Zahlungen akzeptieren wollen. Die eigenständige Hardware kann von jedem Mitarbeiter für den Empfang von Lightning Zahlungen genutzt werden. Die Gutschrift der Lightning Zahlungen erfolgen auf der eigenständigen LNbits Wallet, auf welcher dann nur der Chef zugreifen kann.
Das LNPoS Hardware Terminal bietet somit eine interessante Alternative für Lightning PoS Lösungen, die als APP Lösung auf einem Smartphone betrieben werden können.
So können Mitarbeiter auch Lightning Zahlungen akzeptieren, wenn der Chef mit seinem Smartphone mal nicht vor Ort ist.
Etwas unglücklich ist es, dass bei den OnChain Zahlungen und bei der ATM Funktion keine Rückmeldung an den Händler erfolgt. Dies muss etwas umständlich geprüft werden und ist für den ungeübten Laien vielleicht etwas umständlich. Es ist zu hoffen, dass es in der Zukunft vielleicht eine nutzerfreundlichere Version entsteht.
Wenn man seinen Fokus auf die Akzeptanz von Lightning Zahlung setzt, dann hat man eine perfekte Lösung.
LNPoS perfekt geeignet, um sein Lieblingsrestaurant, die Stammkneipe oder die Meetup Lokation davon zu überzeugen auch Lightning Zahlungen zu akzeptieren.
Bitcoiner aus dem deutschsprachigen Raum können ein LNPoS für ein Geschäft erstellen und ein Video von der Lightning Zahlung erstellen.
Wird das Video bei Coinpages publiziert wird, erhält man als Belohnung 100.000 Sats.
Somit kann man das LNPoS finanzieren, in seiner Stammkneipe selbst mit Lightning zahlen und trägt gleichzeitig für die Verbreitung von Lightning als Zahlmethode bei.