2019-12-16 15:07:21 +00:00
2020-04-23 21:40:51 +01:00

2020-04-23 22:29:07 +01:00
# LNbits, free and open-source lightning-network wallet/accounts system
2020-04-23 22:27:45 +01:00
https://lnbits.com, or run your own LNbits server!
2019-12-16 15:07:21 +00:00
2020-04-23 21:46:00 +01:00
LNbits is a very simple Python server that sits on top of any funding source, and can be used as:
2020-04-24 09:52:07 +01:00
* 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
2019-12-16 15:07:21 +00:00
* Fallback wallet for the LNURL scheme
* Instant wallet for LN demonstrations
2019-12-09 21:39:02 +00:00
2020-04-24 09:52:07 +01:00
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.
2019-12-13 14:51:40 +00:00
2019-12-16 15:07:21 +00:00
## 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..
2019-12-09 21:39:02 +00:00
2020-04-23 21:46:00 +01:00

2019-12-09 21:39:02 +00:00
2019-12-16 15:07:21 +00:00
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)
2020-04-23 21:47:48 +01:00

2019-12-13 14:08:53 +00:00
2019-12-13 14:15:28 +00:00
## LNbits as an LNURL-withdraw fallback
2019-12-16 15:07:21 +00:00
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.
2019-12-13 14:15:28 +00:00
2019-12-13 14:18:42 +00:00

2019-12-13 14:21:32 +00:00
https://github.com/btcontract/lnurl-rfc/blob/master/spec.md
2019-12-13 14:08:53 +00:00
2020-04-23 22:43:30 +01:00
Adding ** /lnurlwallet?lightning="LNURL-withdraw"** will trigger a withdraw that builds an LNbits wallet.
2019-12-16 15:07:21 +00:00
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.
2019-12-13 14:34:21 +00:00

2019-12-13 14:08:53 +00:00
2019-12-16 15:07:21 +00:00
## 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".
2020-04-23 21:51:55 +01:00

2019-12-16 15:07:21 +00:00
# Running LNbits locally
Download this repo
2019-12-18 11:02:00 +00:00
LNbits uses [Flask ](http://flask.pocoo.org/ ).
Feel free to contribute to the project.
Application dependencies
------------------------
The application uses [Pipenv][pipenv] to manage Python packages.
While in development, you will need to install all dependencies:
$ pipenv shell
$ pipenv install --dev
2019-12-31 08:32:31 +00:00
You will need to set the variables in .env.example, and rename the file to .env

2019-12-18 11:02:00 +00:00
Running the server
------------------
2019-12-16 15:07:21 +00:00
2020-04-16 15:23:38 +02:00
$ flask migrate
2019-12-18 11:02:00 +00:00
$ flask run
2019-12-16 15:07:21 +00:00
2019-12-18 11:02:00 +00:00
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
2019-12-16 15:07:21 +00:00
2019-12-18 11:02:00 +00:00
[pipenv]: https://docs.pipenv.org/#install -pipenv-today
2019-12-16 15:07:21 +00:00
2019-12-13 14:18:42 +00:00
# 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