GET /api/v1/wallet
{"X-Api-Key": "{{ wallet.adminkey }}"}{"X-Api-Key": "{{ wallet.inkey }}"}POST
+ /api/v1/payments/decode
+ {"X-Api-Key": "{{ wallet.inkey }}"}{"invoice": <string>}
+ curl -X POST {{ request.url_root }}api/v1/payments/decode -d
+ '{"data": <bolt11/lnurl, string>}' -H "X-Api-Key:
+ {{ wallet.inkey }}" -H "Content-type: application/json"
+
+ StreamerCopilot: get tips via static QR (lnurl-pay) and show an
+ animation
+
+ Created by, Ben Arc
+
POST /copilot/api/v1/copilot
+ {"X-Api-Key": <admin_key>}[<copilot_object>, ...]
+ curl -X POST {{ request.url_root }}api/v1/copilot -d '{"title":
+ <string>, "animation": <string>,
+ "show_message":<string>, "amount": <integer>,
+ "lnurl_title": <string>}' -H "Content-type: application/json"
+ -H "X-Api-Key: {{user.wallets[0].adminkey }}"
+
+ PUT
+ /copilot/api/v1/copilot/<copilot_id>
+ {"X-Api-Key": <admin_key>}[<copilot_object>, ...]
+ curl -X POST {{ request.url_root
+ }}api/v1/copilot/<copilot_id> -d '{"title": <string>,
+ "animation": <string>, "show_message":<string>,
+ "amount": <integer>, "lnurl_title": <string>}' -H
+ "Content-type: application/json" -H "X-Api-Key:
+ {{user.wallets[0].adminkey }}"
+
+ GET
+ /copilot/api/v1/copilot/<copilot_id>
+ {"X-Api-Key": <invoice_key>}[<copilot_object>, ...]
+ curl -X GET {{ request.url_root }}api/v1/copilot/<copilot_id>
+ -H "X-Api-Key: {{ user.wallets[0].inkey }}"
+
+ GET /copilot/api/v1/copilots
+ {"X-Api-Key": <invoice_key>}[<copilot_object>, ...]
+ curl -X GET {{ request.url_root }}api/v1/copilots -H "X-Api-Key: {{
+ user.wallets[0].inkey }}"
+
+ DELETE
+ /copilot/api/v1/copilot/<copilot_id>
+ {"X-Api-Key": <admin_key>}
+ curl -X DELETE {{ request.url_root
+ }}api/v1/copilot/<copilot_id> -H "X-Api-Key: {{
+ user.wallets[0].adminkey }}"
+
+ GET
+ /api/v1/copilot/ws/<copilot_id>/<comment>/<data>
+ {"X-Api-Key": <admin_key>}
+ curl -X GET {{ request.url_root }}/api/v1/copilot/ws/<string,
+ copilot_id>/<string, comment>/<string, gif name> -H
+ "X-Api-Key: {{ user.wallets[0].adminkey }}"
+
+ + Powered by LNbits/StreamerCopilot +
+
+ Events alows you to make a wave of tickets for an event, each ticket is
+ in the form of a unqiue QRcode, which the user presents at registration.
+ Events comes with a shareable ticket scanner, which can be used to
+ register attendees.
+
+ Created by, Ben Arc
+
+
You'll be redirected in a few moments...
+GET /jukebox/api/v1/jukebox
+ {"X-Api-Key": <admin_key>}[<jukebox_object>, ...]
+ curl -X GET {{ request.url_root }}api/v1/jukebox -H "X-Api-Key: {{
+ user.wallets[0].adminkey }}"
+
+ GET
+ /jukebox/api/v1/jukebox/<juke_id>
+ {"X-Api-Key": <admin_key>}<jukebox_object>
+ curl -X GET {{ request.url_root }}api/v1/jukebox/<juke_id> -H
+ "X-Api-Key: {{ user.wallets[0].adminkey }}"
+
+ POST/PUT
+ /jukebox/api/v1/jukebox/
+ {"X-Api-Key": <admin_key>}<jukbox_object>
+ curl -X POST {{ request.url_root }}api/v1/jukebox/ -d '{"user":
+ <string, user_id>, "title": <string>,
+ "wallet":<string>, "sp_user": <string,
+ spotify_user_account>, "sp_secret": <string,
+ spotify_user_secret>, "sp_access_token": <string,
+ not_required>, "sp_refresh_token": <string, not_required>,
+ "sp_device": <string, spotify_user_secret>, "sp_playlists":
+ <string, not_required>, "price": <integer, not_required>}'
+ -H "Content-type: application/json" -H "X-Api-Key:
+ {{user.wallets[0].adminkey }}"
+
+ DELETE
+ /jukebox/api/v1/jukebox/<juke_id>
+ {"X-Api-Key": <admin_key>}<jukebox_object>
+ curl -X DELETE {{ request.url_root }}api/v1/jukebox/<juke_id>
+ -H "X-Api-Key: {{ user.wallets[0].adminkey }}"
+
+
+ To use this extension you need a Spotify client ID and client secret.
+ You get these by creating an app in the Spotify developers dashboard
+ here.
+
+ In the app go to edit-settings, set the redirect URI to this link
+ Currently playing
+Pick a song
+Add a wallet / Import wallet on BlueWallet or
+ Settings / Add a new node on Zeus.
+ + LndHub is a protocol invented by + BlueWallet that allows mobile + wallets to query payments and balances, generate invoices and make + payments from accounts that exist on a server. The protocol is a + collection of HTTP endpoints exposed through the internet. +
++ For a wallet that supports it, reading a QR code that contains the URL + along with secret access credentials should enable access. Currently it + is supported by Zeus and + BlueWallet. +
+
+ Register LNURLPoS devices to recieve payments in your LNbits wallet.
+ Build your own here
+ https://github.com/arcbtc/LNURLPoS
+
+ Created by, Ben Arc
+
POST /lnurlpos/api/v1/lnurlpos
+ {"X-Api-Key": <admin_key>}[<lnurlpos_object>, ...]
+ curl -X POST {{ request.url_root }}api/v1/lnurlpos -d '{"title":
+ <string>, "message":<string>, "currency":
+ <integer>}' -H "Content-type: application/json" -H "X-Api-Key:
+ {{user.wallets[0].adminkey }}"
+
+ PUT
+ /lnurlpos/api/v1/lnurlpos/<lnurlpos_id>
+ {"X-Api-Key": <admin_key>}[<lnurlpos_object>, ...]
+ curl -X POST {{ request.url_root
+ }}api/v1/lnurlpos/<lnurlpos_id> -d ''{"title": <string>,
+ "message":<string>, "currency": <integer>} -H
+ "Content-type: application/json" -H "X-Api-Key:
+ {{user.wallets[0].adminkey }}"
+
+ GET
+ /lnurlpos/api/v1/lnurlpos/<lnurlpos_id>
+ {"X-Api-Key": <invoice_key>}[<lnurlpos_object>, ...]
+ curl -X GET {{ request.url_root
+ }}api/v1/lnurlpos/<lnurlpos_id> -H "X-Api-Key: {{
+ user.wallets[0].inkey }}"
+
+ GET /lnurlpos/api/v1/lnurlposs
+ {"X-Api-Key": <invoice_key>}[<lnurlpos_object>, ...]
+ curl -X GET {{ request.url_root }}api/v1/lnurlposs -H "X-Api-Key:
+ {{ user.wallets[0].inkey }}"
+
+ DELETE
+ /lnurlpos/api/v1/lnurlpos/<lnurlpos_id>
+ {"X-Api-Key": <admin_key>}
+ curl -X DELETE {{ request.url_root
+ }}api/v1/lnurlpos/<lnurlpos_id> -H "X-Api-Key: {{
+ user.wallets[0].adminkey }}"
+
+
+
++ Note that if you restart your device, your device will generate a + new url. If anyone is using your old one for wallets, lnurls, + etc., whatever they are doing will stop working. +
+ Created by + Supertestnet. +GET /satsdice/api/v1/links
+ {"X-Api-Key": <invoice_key>}[<satsdice_link_object>, ...]
+ curl -X GET {{ request.url_root }}api/v1/links -H "X-Api-Key: {{
+ user.wallets[0].inkey }}"
+
+ GET
+ /satsdice/api/v1/links/<satsdice_id>
+ {"X-Api-Key": <invoice_key>}{"lnurl": <string>}
+ curl -X GET {{ request.url_root }}api/v1/links/<satsdice_id> -H
+ "X-Api-Key: {{ user.wallets[0].inkey }}"
+
+ POST /satsdice/api/v1/links
+ {"X-Api-Key": <admin_key>}{"title": <string>, "min_satsdiceable": <integer>,
+ "max_satsdiceable": <integer>, "uses": <integer>,
+ "wait_time": <integer>, "is_unique": <boolean>}
+ {"lnurl": <string>}
+ curl -X POST {{ request.url_root }}api/v1/links -d '{"title":
+ <string>, "min_satsdiceable": <integer>,
+ "max_satsdiceable": <integer>, "uses": <integer>,
+ "wait_time": <integer>, "is_unique": <boolean>}' -H
+ "Content-type: application/json" -H "X-Api-Key: {{
+ user.wallets[0].adminkey }}"
+
+ PUT
+ /satsdice/api/v1/links/<satsdice_id>
+ {"X-Api-Key": <admin_key>}{"title": <string>, "min_satsdiceable": <integer>,
+ "max_satsdiceable": <integer>, "uses": <integer>,
+ "wait_time": <integer>, "is_unique": <boolean>}
+ {"lnurl": <string>}
+ curl -X PUT {{ request.url_root }}api/v1/links/<satsdice_id> -d
+ '{"title": <string>, "min_satsdiceable": <integer>,
+ "max_satsdiceable": <integer>, "uses": <integer>,
+ "wait_time": <integer>, "is_unique": <boolean>}' -H
+ "Content-type: application/json" -H "X-Api-Key: {{
+ user.wallets[0].adminkey }}"
+
+ DELETE
+ /satsdice/api/v1/links/<satsdice_id>
+ {"X-Api-Key": <admin_key>}
+ curl -X DELETE {{ request.url_root }}api/v1/links/<satsdice_id>
+ -H "X-Api-Key: {{ user.wallets[0].adminkey }}"
+
+ GET
+ /satsdice/api/v1/links/<the_hash>/<lnurl_id>
+ {"X-Api-Key": <invoice_key>}{"status": <bool>}
+ curl -X GET {{ request.url_root
+ }}api/v1/links/<the_hash>/<lnurl_id> -H "X-Api-Key: {{
+ user.wallets[0].inkey }}"
+
+ GET
+ /satsdice/img/<lnurl_id>
+ curl -X GET {{ request.url_root }}/satsdice/img/<lnurl_id>"
+
+
+ WARNING: LNURL must be used over https or TOR
+ LNURL is a range of lightning-network standards that allow us to use
+ lightning-network differently. An LNURL satsdice is the permission for
+ someone to pull a certain amount of funds from a lightning wallet. In
+ this extension time is also added - an amount can be satsdice over a
+ period of time. A typical use case for an LNURL satsdice is a faucet,
+ although it is a very powerful technology, with much further reaching
+ implications. For example, an LNURL satsdice could be minted to pay for
+ a subscription service.
+
+ Exploring LNURL and finding use cases, is really helping inform + lightning protocol development, rather than the protocol dictating how + lightning-network should be engaged with. +
+ Check + Awesome LNURL + for further information. ++ Use a LNURL compatible bitcoin wallet to play the satsdice. +
++ Use a LNURL compatible bitcoin wallet to play the satsdice. +
+
+ ID: {{ qrCodeDialog.data.id }}
+ Amount: {{ qrCodeDialog.data.amount }}
+ {{ qrCodeDialog.data.currency }} price: {{
+ fiatRates[qrCodeDialog.data.currency] ?
+ fiatRates[qrCodeDialog.data.currency] + ' sat' : 'Loading...' }}
+ Accepts comments: {{ qrCodeDialog.data.comments }}
+ Dispatches webhook to: {{ qrCodeDialog.data.webhook
+ }}
+ On success: {{ qrCodeDialog.data.success }}
+
+ SatsPayServer, create Onchain/LN charges.
WARNING: If using with the
+ WatchOnly extension, we highly reccomend using a fresh extended public Key
+ specifically for SatsPayServer!
+
+ Created by, Ben Arc
+
POST /satspay/api/v1/charge
+ {"X-Api-Key": <admin_key>}[<charge_object>, ...]
+ curl -X POST {{ request.url_root }}api/v1/charge -d
+ '{"onchainwallet": <string, watchonly_wallet_id>,
+ "description": <string>, "webhook":<string>, "time":
+ <integer>, "amount": <integer>, "lnbitswallet":
+ <string, lnbits_wallet_id>}' -H "Content-type:
+ application/json" -H "X-Api-Key: {{user.wallets[0].adminkey }}"
+
+ PUT
+ /satspay/api/v1/charge/<charge_id>
+ {"X-Api-Key": <admin_key>}[<charge_object>, ...]
+ curl -X POST {{ request.url_root }}api/v1/charge/<charge_id>
+ -d '{"onchainwallet": <string, watchonly_wallet_id>,
+ "description": <string>, "webhook":<string>, "time":
+ <integer>, "amount": <integer>, "lnbitswallet":
+ <string, lnbits_wallet_id>}' -H "Content-type:
+ application/json" -H "X-Api-Key: {{user.wallets[0].adminkey }}"
+
+ GET
+ /satspay/api/v1/charge/<charge_id>
+ {"X-Api-Key": <invoice_key>}[<charge_object>, ...]
+ curl -X GET {{ request.url_root }}api/v1/charge/<charge_id>
+ -H "X-Api-Key: {{ user.wallets[0].inkey }}"
+
+ GET /satspay/api/v1/charges
+ {"X-Api-Key": <invoice_key>}[<charge_object>, ...]
+ curl -X GET {{ request.url_root }}api/v1/charges -H "X-Api-Key: {{
+ user.wallets[0].inkey }}"
+
+ DELETE
+ /satspay/api/v1/charge/<charge_id>
+ {"X-Api-Key": <admin_key>}
+ curl -X DELETE {{ request.url_root
+ }}api/v1/charge/<charge_id> -H "X-Api-Key: {{
+ user.wallets[0].adminkey }}"
+
+ GET
+ /satspay/api/v1/charges/balance/<charge_id>
+ [<charge_object>, ...]
+ curl -X GET {{ request.url_root
+ }}api/v1/charges/balance/<charge_id> -H "X-Api-Key: {{
+ user.wallets[0].inkey }}"
+
+ + Add some wallets to the list of "Target Wallets", each with an + associated percent. After saving, every time any payment + arrives at the "Source Wallet" that payment will be split with the + target wallets according to their percent. +
+This is valid for every payment, doesn't matter how it was created.
+Target wallets can be any wallet from this same LNbits instance.
++ To remove a wallet from the targets list, just erase its fields and + save. To remove all, click "Clear" then save. +
+GET
+ /splitpayments/api/v1/targets
+ {"X-Api-Key": <admin_key>}[{"wallet": <wallet id>, "alias": <chosen name for this
+ wallet>, "percent": <number between 1 and 100>}, ...]
+ curl -X GET {{ request.url_root }}api/v1/livestream -H "X-Api-Key: {{
+ user.wallets[0].inkey }}"
+
+ PUT
+ /splitpayments/api/v1/targets
+ {"X-Api-Key": <admin_key>}curl -X PUT {{ request.url_root }}api/v1/splitpayments/targets -H
+ "X-Api-Key: {{ user.wallets[0].adminkey }}" -H 'Content-Type:
+ application/json' -d '{"targets": [{"wallet": <wallet id or invoice
+ key>, "alias": <name to identify this>, "percent": <number
+ between 1 and 100>}, ...]}'
+
+
+ To help developers use LNbits to manage their users, the User Manager
+ extension allows the creation and management of users and wallets.
+
For example, a games developer may be developing a game that needs
+ each user to have their own wallet, LNbits can be included in the
+ develpoers stack as the user and wallet manager.
+
+ Created by, Ben Arc
+
GET
+ /usermanager/api/v1/users
+ JSON list of users
+ curl -X GET {{ request.url_root }}usermanager/api/v1/users -H
+ "X-Api-Key: {{ user.wallets[0].inkey }}"
+
+ GET
+ /usermanager/api/v1/users/<user_id>
+ JSON list of users
+ curl -X GET {{ request.url_root
+ }}usermanager/api/v1/users/<user_id> -H "X-Api-Key: {{
+ user.wallets[0].inkey }}"
+
+ GET
+ /usermanager/api/v1/wallets/<user_id>
+ {"X-Api-Key": <string>}
+ JSON wallet data
+ curl -X GET {{ request.url_root
+ }}usermanager/api/v1/wallets/<user_id> -H "X-Api-Key: {{
+ user.wallets[0].inkey }}"
+
+ GET
+ /usermanager/api/v1/wallets<wallet_id>
+ {"X-Api-Key": <string>}
+ JSON a wallets transactions
+ curl -X GET {{ request.url_root
+ }}usermanager/api/v1/wallets<wallet_id> -H "X-Api-Key: {{
+ user.wallets[0].inkey }}"
+
+ POST
+ /usermanager/api/v1/users
+ {"X-Api-Key": <string>, "Content-type":
+ "application/json"}
+ {"admin_id": <string>, "user_name": <string>,
+ "wallet_name": <string>,"email": <Optional string>
+ ,"password": <Optional string>}
+ {"id": <string>, "name": <string>, "admin":
+ <string>, "email": <string>, "password":
+ <string>}
+ curl -X POST {{ request.url_root }}usermanager/api/v1/users -d
+ '{"admin_id": "{{ user.id }}", "wallet_name": <string>,
+ "user_name": <string>, "email": <Optional string>,
+ "password": < Optional string>}' -H "X-Api-Key: {{
+ user.wallets[0].inkey }}" -H "Content-type: application/json"
+
+ POST
+ /usermanager/api/v1/wallets
+ {"X-Api-Key": <string>, "Content-type":
+ "application/json"}
+ {"user_id": <string>, "wallet_name": <string>,
+ "admin_id": <string>}
+ {"id": <string>, "admin": <string>, "name":
+ <string>, "user": <string>, "adminkey": <string>,
+ "inkey": <string>}
+ curl -X POST {{ request.url_root }}usermanager/api/v1/wallets -d
+ '{"user_id": <string>, "wallet_name": <string>,
+ "admin_id": "{{ user.id }}"}' -H "X-Api-Key: {{ user.wallets[0].inkey
+ }}" -H "Content-type: application/json"
+
+ DELETE
+ /usermanager/api/v1/users/<user_id>
+ {"X-Api-Key": <string>}
+ curl -X DELETE {{ request.url_root
+ }}usermanager/api/v1/users/<user_id> -H "X-Api-Key: {{
+ user.wallets[0].inkey }}"
+
+ DELETE
+ /usermanager/api/v1/wallets/<wallet_id>
+ {"X-Api-Key": <string>}
+ curl -X DELETE {{ request.url_root
+ }}usermanager/api/v1/wallets/<wallet_id> -H "X-Api-Key: {{
+ user.wallets[0].inkey }}"
+
+ POST
+ /usermanager/api/v1/extensions
+ {"X-Api-Key": <string>}
+ curl -X POST {{ request.url_root }}usermanager/api/v1/extensions -d
+ '{"userid": <string>, "extension": <string>, "active":
+ <integer>}' -H "X-Api-Key: {{ user.wallets[0].inkey }}" -H
+ "Content-type: application/json"
+
+
+ Watch Only extension uses mempool.space
+ For use with "account Extended Public Key"
+ https://iancoleman.io/bip39/
+
+
Created by,
+ Ben Arc (using,
+ Embit)
+
GET /watchonly/api/v1/wallet
+ {"X-Api-Key": <invoice_key>}[<wallets_object>, ...]
+ curl -X GET {{ request.url_root }}api/v1/wallet -H "X-Api-Key: {{
+ user.wallets[0].inkey }}"
+
+ GET
+ /watchonly/api/v1/wallet/<wallet_id>
+ {"X-Api-Key": <invoice_key>}[<wallet_object>, ...]
+ curl -X GET {{ request.url_root }}api/v1/wallet/<wallet_id>
+ -H "X-Api-Key: {{ user.wallets[0].inkey }}"
+
+ POST /watchonly/api/v1/wallet
+ {"X-Api-Key": <admin_key>}[<wallet_object>, ...]
+ curl -X POST {{ request.url_root }}api/v1/wallet -d '{"title":
+ <string>, "masterpub": <string>}' -H "Content-type:
+ application/json" -H "X-Api-Key: {{ user.wallets[0].adminkey }}"
+
+ DELETE
+ /watchonly/api/v1/wallet/<wallet_id>
+ {"X-Api-Key": <admin_key>}
+ curl -X DELETE {{ request.url_root
+ }}api/v1/wallet/<wallet_id> -H "X-Api-Key: {{
+ user.wallets[0].adminkey }}"
+
+ GET
+ /watchonly/api/v1/addresses/<wallet_id>
+ {"X-Api-Key": <invoice_key>}[<address_object>, ...]
+ curl -X GET {{ request.url_root
+ }}api/v1/addresses/<wallet_id> -H "X-Api-Key: {{
+ user.wallets[0].inkey }}"
+
+ GET
+ /watchonly/api/v1/address/<wallet_id>
+ {"X-Api-Key": <invoice_key>}[<address_object>, ...]
+ curl -X GET {{ request.url_root }}api/v1/address/<wallet_id>
+ -H "X-Api-Key: {{ user.wallets[0].inkey }}"
+
+ GET /watchonly/api/v1/mempool
+ {"X-Api-Key": <admin_key>}[<mempool_object>, ...]
+ curl -X GET {{ request.url_root }}api/v1/mempool -H "X-Api-Key: {{
+ user.wallets[0].adminkey }}"
+
+ POST
+ /watchonly/api/v1/mempool
+ {"X-Api-Key": <admin_key>}[<mempool_object>, ...]
+ curl -X PUT {{ request.url_root }}api/v1/mempool -d '{"endpoint":
+ <string>}' -H "Content-type: application/json" -H "X-Api-Key:
+ {{ user.wallets[0].adminkey }}"
+
+
+ Current:
+ {{ currentaddress }}
+
+