This post is also available on:
LNPoS – Lightning PoS Terminal
Wie können Händler mit einem stationären Ladengeschäft Bitcoin und Lightning Zahlungen vor Ort akzeptieren? In diesem Beitrag stellen wir das LNPoS Hardware POS Terminal vor, welches von Ben Arc entwickelt wurde.
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:
- LNPoS – für Online Lightning Zahlungen
- 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.
In einem Twitter Post stellt Ben Arc sein LNPos wie folgt vor:
Introducing #bitcoinPoS! 🥳🚀
— Ben Arc 🏴✊⚡️ (@arcbtc) January 22, 2022
Completely free and open-source #bitcoin point-of-sale, that can do:
- offline AND online #LightningNetwork
- Onchain (using xPub)
- LNURL-withdraw for refunds and OTC! 🤩
All now configurable through an easy access-point🤯https://t.co/KJ8nBvPrdU pic.twitter.com/1PYsMqGirK
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:
- Keyboard Modul mit Eingabefeld
- Gehäuse
- USB-Kabel
Optional kann man eine wiederaufladbare Batterie und einen An/Aus-Schalter nach dazukaufen.
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 734843) 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.
Zusammenbau das LNPoS Lightning PoS Terminal
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.
Wenn wir eine weideraufladbare Batterie 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 erst einmal auf die Batterie zu verzichten. Wenn alles einwandfrei funktioniert, sollte man nachträglich die Batterie einsetzen und idealerweise mit einem Schalter verbinden.
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.
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.
Der Zusammenbau des LNPoS kann sich als englischsprachiges Video hier angesehen werden:
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.
Jetzt müssen wir die entsprechende Software auf unsere LNPoS Hardware installieren. Dies beschreiben wir im folgenden Abschnitt. Wer sich bei Fulmo für die LNPoS Variante inklusive Software entschieden hat, kann das folgende Kapitel überspringen.
Software auf dem LNPoS installieren
Wir selbst haben uns für die Lösung entschieden, bei der die Software bereits vorinstalliert ist.
In dem folgenden YouTube Video wird ab Minute 01:32 bis 06:00 die Installation der Software erklärt:
Eine Beschreibung findest Du auf Github unter: https://github.com/arcbtc/LNPoS/tree/main/lnPoSTdisplay
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.
LNbits Konto
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.
Unabhängig davon, welchen LNPoS Server Du verwendest, wollen wir die folgenden Funktionen umsetzen:
- LNPoS – für Online Lightning Zahlungen
- LNURLPoS – für Offline Lightning Zahlungen
- OnChain – für On-Chain Zahlungen
- LNURLATM – für Offline Lightning Auszahlungen
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.
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 oder wenn Du die BlueWallet verwendest Dir darüber einen xPub Key erstellen.
Das Thema xPub Key haben wir ausführlich in dem Beitrag: xPub Key ermitteln erklärt
Nachdem wir den xPub Key ermittelt bzw. erstellt haben, können wir mit der Konfiguration der LNPoS beginnen.
Konfiguration LNDPoS PoS Options
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.
Dazu 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.
Solltest Du LNPoS bei den verfügbaren WLAN Netzwerken nicht finden, so musst Du LNDPoS von der Stromquelle entfernen und noch einmal neu starten. Bei dem Neustart irgendeine Taste gedrückt halten und dann wieder an die Stromquelle anschließen.
Bei unserer Einrichtung hatten wir durch die Batterie eine dauerhafte Stromverbindung und mussten dafür die Batterie kurzzeitig entfernen.
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.
Neuer Access Point
Im ersten Schritt konfigurierst Du ein neues AP (Configure new AP). Das AP steht für Access Point. Du hast jetzt zwar Zugriff auf das LNPoS, aber das LNPoS muss selbst auch noch in das Internet.
Entsprechend gewährst Du dem LNPoS auf Dein WLAN Netzwerk. Die verfügbaren WLAN-Netzwerke werden als SSID angezeigt. Klicke auf eines der Netzwerke und gebe bei Passphrase das WLAN Passwort ein.
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.
LNPoS
Bei der Auswahl LNPoS haben wir die Meldung erhalten „Fetching Fiat Rate Failed“. Wir konnten leider die Ursache nicht beheben. Wer einen Idee hat, freuen wir uns über eine Rückmeldung.
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.
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.
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.
Der Händler muss sich in seine Bitcoin Wallet einloggen und überprüfen, ob die Zahlung unterwegs bzw. bereits gutgeschrieben worden ist.
Einen identischen Ablauf, wie bei der Lightning Variante, wäre auch für die OnChain Variante wünschenswert.
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.
This post is also available on: