Giter Site home page Giter Site logo

lightningnfc's Introduction

LightningNFC

Lightning Network related projects with a NFC tag (ring, card...)

A list of projects. Some of them are really basic and easy to reproduce.

Receive payments with a NFC tag and a Lightning Wallet

A very simple project.
You will be able to receive payments via Lightning Network using your NFC tag.
You will not need to open your app to receive the payments.

You need:

  1. A low cost NFC tag, such as a ring or a card (search on Amazon or Aliexpress)
  2. An Android device
  3. NFC Tools app (https://play.google.com/store/apps/details?id=com.wakdev.wdnfc&hl=it&gl=US)
  4. A Lightning Wallet able to handle LNURL-pay and Lightning Address, such as Breez Wallet or Zeus. You can also try with other wallets, I haven't yet.
  5. A LNURL-pay link (you can create a new link with https://legend.lnbits.com/) or a Lightning Address

Many different Lightning wallets support 'lightning:' protocol handler and LNURL-pay, so you can create a simple string 'lightning:LNURL' and the app will open and set the payment screen. You will just need to enter the amount and confirm.
Some wallets are also able to read Lightning Addresses, so you can use the handler with a vanity wrapper: 'lightning:LNADDRESS'.

In this project we will basically add 'lightning:LNADDRESS' into the NFC tag, so we can receive payment by simply tapping the sender device with our NFC tag.

I created my Lightning Address using my BTCpay Server instance. The LN address I will use is '[email protected]'.

Open NFC Tools app and go to Add a record. You will need to add a custom URL / URI: enter your lightning URI and tap OK. In my case I will add 'lightning:[email protected]', without the quotation marks.

Then you just need to approach the NFC tag and the app will save the data into the NFC tag memory.

Once you tap on your device using your NFC tag, your default Lightning wallet will open. I decided to make Breez my default Lightning app for this test, so when I tap with my NFC tag, the app is lauched and it sets the payment. I just need to enter the amount and send.

The result is this (click the image to see the video):
Watch the video

Send payments with a NFC tag and a BTCpay Server POS


You can make "offline" payments thanks to LNURL-withdraw so you don't need a device with Internet connection.

You need:

  1. A low cost NFC tag, such as a ring or a card (search on Amazon or Aliexpress)
  2. An Android device
  3. NFC Tools app (https://play.google.com/store/apps/details?id=com.wakdev.wdnfc&hl=it&gl=US)
  4. A Lightning Wallet able to generate a LNURL-withdraw link or you can use LNbits (you can create a new demo link with https://legend.lnbits.com/).

Many different Lightning wallets support 'lightning:' protocol handler and LNURL-withdraw, but currently only BTCpay Server supports the LNURL-withdrawPOS (link to the repo will soon be public) flow, so you need to have a BTCpay Server instance, create a new virtual POS and enable LNURL NFC Support plugin by Andrew Camilleri.

In this project we will basically add 'lightning:LNURL-withdrawLink' into the NFC tag, so we can send payments by simply tapping the merchant's BTCpay Server POS device with our NFC tag.

I created my LNURL-withdraw link using LNbits demo.

Open NFC Tools app and go to Add a record. You will need to add a custom URL / URI: enter your Lightning URI and tap OK.

Now in BTCpay Server, enter an amount into the POS, tap on "NFC & LNURL-withdraw" and tap the device with the NFC tag.

Once you tap on your device using your NFC tag, BTCpay will contact the server and will receive the funds.

The result is this (click the image to see the video):
Watch the video

Receive payments to your LN-shirt

How to set up the LN-shirt tag, protect it with password and receive payments (LN-shirt is coming soon).
You will be able to receive payments via Lightning Network using your LN-shirt.
You will not need to open your app to receive the payments.

You need:

  1. LN-shirt (coming soon!)
  2. An Android device
  3. NFC Tools app (https://play.google.com/store/apps/details?id=com.wakdev.wdnfc&hl=it&gl=US)
  4. A Lightning Wallet able to handle LNURL-pay and Lightning Address, such as Breez Wallet or Zeus. You can also try with other wallets.
  5. A Lightning Address (you can have your LN address linked to your own node or use an hosted one, such as one from Wallet of Satoshi).

In this project we will basically add 'lightning:LNADDRESS' into the NFC tag and protect it with a password, so we can receive payment by simply making the senders tap our LN-shirt with their devices.

Open NFC Tools app and go to Add a record. You will need to add a custom URL / URI: enter your lightning URI and tap OK. In my case I will add 'lightning:[email protected]', without the quotation marks.

Tap on the NFC symbol on your LN-shirt with your device and the app will save the data into the NFC tag memory. Now go to NFC Tools, Other, Set a Password. Enter your password and tap again on the NFC symbol on your LN-shirt with your device.

Once the senders tap on the NFC symbol on your LN-shirt, their default wallet will open and they will be able to send funds. They will NOT be able to format the NFC tag.

lightningnfc's People

Contributors

thedavidcoen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.