Go to file
2020-05-03 13:55:17 -03:00
.github/workflows tests: only use github for CI 2020-04-28 23:09:59 +02:00
docs docs: add LNbits logos to repo 2020-04-23 18:42:27 +02:00
lnbits apply prettier to everything. 2020-05-03 13:55:17 -03:00
tests test: configure Travis for CI 2020-04-27 19:39:00 +02:00
.editorconfig refactor: decorators, models and more broken bits 2020-03-04 23:11:15 +01:00
.env.example Update .env.example 2020-04-25 22:39:30 +01:00
.gitattributes test: configure Travis for CI 2020-04-27 19:39:00 +02:00
.gitignore apply prettier to everything. 2020-05-03 13:55:17 -03:00
.prettierrc apply prettier to everything. 2020-05-03 13:55:17 -03:00
app.json feat: prepare for deploying to Dokku 2020-04-21 23:13:37 +02:00
DEV.md refactor: add some dev files and black original code 2019-12-13 17:56:19 +01:00
Dockerfile feat: prepare for deploying to Dokku 2020-04-21 23:13:37 +02:00
LICENSE Create LICENSE 2019-12-17 21:52:52 +00:00
Makefile apply prettier to everything. 2020-05-03 13:55:17 -03:00
package.json apply prettier to everything. 2020-05-03 13:55:17 -03:00
Pipfile refactor: make some wallet dependencies optional 2020-05-02 19:16:10 +02:00
Pipfile.lock refactor: make some wallet dependencies optional 2020-05-02 19:16:10 +02:00
Procfile feat: prepare for deploying to Dokku 2020-04-21 23:13:37 +02:00
pyproject.toml refactor: add some dev files and black original code 2019-12-13 17:56:19 +01:00
README.md tests: only use github for CI 2020-04-28 23:09:59 +02:00
requirements.txt refactor: make some wallet dependencies optional 2020-05-02 19:16:10 +02:00

LNbits

github-actions-badge codecov-badge license-badge

Lightning network wallet

LNbits v0.1 BETA, free and open-source lightning-network wallet/accounts system

https://lnbits.com, or run your own LNbits server!

LNbits is a very simple Python server that sits on top of any funding source, and can be used as:

  • Accounts system to mitigate the risk of exposing applications to your full balance, via unique API keys for each wallet
  • Extendable platform for exploring lightning-network functionality via LNbits extension framework
  • Part of a development stack via LNbits API
  • Fallback wallet for the LNURL scheme
  • Instant wallet for LN demonstrations

The wallet can run on top of any lightning-network funding source, currently there is support for LND, CLightning, Lntxbot, LNpay, OpenNode, with more being added regularily.

LNbits as an account system

LNbits is packaged with tools to help manage funds, such as a table of transactions, line chart of spending, export to csv + more to come..

Lightning network wallet

Each wallet also comes with its own API keys, to help partition the exposure of your funding source.

(LNbits M5StackSats available here https://github.com/arcbtc/M5StackSats)

lnurl ATM

LNbits as an LNURL-withdraw fallback

LNURL has a fallback scheme, so if scanned by a regular QR code reader it can default to a URL. LNbits exploits this to generate an instant wallet using the LNURL-withdraw.

lnurl fallback https://github.com/btcontract/lnurl-rfc/blob/master/spec.md

Adding /lnurlwallet?lightning="LNURL-withdraw" will trigger a withdraw that builds an LNbits wallet. Example use would be an ATM, which utilises LNURL, if the user scans the QR with a regular QR code scanner app, they will stilll be able to access the funds.

lnurl ATM

LNbits as an insta-wallet

Wallets can be easily generated and given out to people at events (one click multi-wallet generation to be added soon). "Go to this website", has a lot less friction than "Download this app".

lnurl ATM

Running LNbits locally

Download this repo

LNbits uses Flask.
Feel free to contribute to the project.

Application dependencies

The application uses Pipenv to manage Python packages. While in development, you will need to install all dependencies:

$ pipenv shell
$ pipenv install --dev

You will need to set the variables in .env.example, and rename the file to .env

lnurl ATM

Running the server

$ flask migrate
$ flask run

There is an environment variable called FLASK_ENV that has to be set to development if you want to run Flask in debug mode with autoreload

Tip me

If you like this project and might even use or extend it, why not send some tip love! https://paywall.link/to/f4e4e