lnbits/README.md

90 lines
3.5 KiB
Markdown
Raw Normal View History

2020-04-27 17:01:53 +00:00
LNbits
======
2020-04-28 21:09:59 +00:00
[![github-actions-badge]][github-actions]
2020-04-27 17:01:53 +00:00
[![codecov-badge]][codecov]
[![license-badge]](LICENSE)
2019-12-16 15:07:21 +00:00
2020-04-23 20:40:51 +00:00
![Lightning network wallet](https://i.imgur.com/EHvK6Lq.png)
2020-04-27 17:01:53 +00:00
2020-04-24 12:27:28 +00:00
# LNbits v0.1 BETA, free and open-source lightning-network wallet/accounts system
2020-04-23 21:27:45 +00:00
https://lnbits.com, or run your own LNbits server!
2019-12-16 15:07:21 +00:00
2020-04-23 20:46:00 +00:00
LNbits is a very simple Python server that sits on top of any funding source, and can be used as:
2020-04-24 08:52:07 +00: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 08:52:07 +00: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 20:46:00 +00:00
![Lightning network wallet](https://i.imgur.com/w8jdGpF.png)
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 20:47:48 +00:00
![lnurl ATM](https://i.imgur.com/WfCg8wY.png)
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
![lnurl fallback](https://i.imgur.com/CPBKHIv.png)
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 21:43:30 +00: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
![lnurl ATM](https://i.imgur.com/Gi6bn3L.jpg)
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 20:51:55 +00:00
![lnurl ATM](https://i.imgur.com/xFWDnwy.png)
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
![lnurl ATM](https://i.imgur.com/ri2zOe8.png)
2019-12-18 11:02:00 +00:00
Running the server
------------------
2019-12-16 15:07:21 +00:00
2020-04-16 13:23:38 +00: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
2020-04-27 17:01:53 +00:00
2020-04-28 21:09:59 +00:00
[github-actions]: https://github.com/lnbits/lnbits/actions
[github-actions-badge]: https://github.com/lnbits/lnbits/workflows/test%20suite/badge.svg
2020-04-27 17:01:53 +00:00
[codecov]: https://codecov.io/gh/lnbits/lnbits
[codecov-badge]: https://codecov.io/gh/lnbits/lnbits/branch/master/graph/badge.svg
[license-badge]: https://img.shields.io/badge/license-MIT-blue.svg