/lnurl-toolbox

A web interface with tools for testing and integrating LNURL

Primary LanguageJavaScriptMIT LicenseMIT

lnurl-toolbox

A web interface with tools for testing and integrating LNURL.

Features

  • Supports all LNURL subprotocols (channelRequest, login, payRequest, withdrawRequest)
  • Tweak parameters used for each subprotocol
  • Requests and relevant events are displayed as they happen
  • Inspect request/event details (HTTP headers, query string, URL, etc)
  • Doesn't require a Lightning Network node (everything is mocked)

Live Demo

An instance of this project is currently running here. So if you just want to quickly test your own app's LNURL integration, please feel free to use it. If you would like run your own instance, you can follow the instructions in the rest of this document.

Running Your Own Instance

Requirements

Setup

Clone this repository:

git clone git@github.com:chill117/lnurl-toolbox.git \
	&& cd lnurl-toolbox

Install dependencies:

npm install

Run the toolbox services:

npm start

To run the server while printing debug info:

DEBUG=lnurl* npm start

The server runs with default configurations when none have been provided. To customize your server configuration, create a .env file in the root of the project directory. You can start by copying the example.env file:

cp example.env .env

Please refer to Configuration Options for details about how to configure your server.

Configuration Options

Below is a list of configuration options:

  • LNURL_TOOLBOX_HOST - The host on which the LNURL HTTP server listener will be bound.
  • LNURL_TOOLBOX_PORT - The port on which the LNURL HTTP server will listen.
  • LNURL_TOOLBOX_URL - The publicly accessible URL of the LNURL server. This should not include the endpoint. Example - https://your-domain.com
  • LNURL_TOOLBOX_ENDPOINT - The path of the LNURL route. The default is /u.
  • LNURL_TOOLBOX_WEB_HOST - The host on which the web HTTP server listener will be bound.
  • LNURL_TOOLBOX_WEB_PORT - The port on which the web HTTP server will listen.
  • LNURL_TOOLBOX_WEB_URL - The publicly accessible URL of the web server. This should not include the endpoint. Example - https://your-domain.com
  • LNURL_TOOLBOX_WEB_SESSION - Options that are passed when creating an instance of express-session middleware.
  • LNURL_TOOLBOX_URI_SCHEMA_PREFIX - The URI schema prefix that is pre-prended to encoded LNURLs. E.g. "lightning:", "LIGHTNING:", or "" (empty-string).
  • LNURL_TOOLBOX_MOCK_CLIGHTNING_HOST - The host on which the mock c-lightning TCP socket server will be bound.
  • LNURL_TOOLBOX_MOCK_CLIGHTNING_PORT - The port which the mock c-lightning TCP socket server will listen.
  • LNURL_TOOLBOX_MOCK_CLIGHTNING_HOSTNAME - The hostname used as part of the mock c-lightning's node URI.

Changelog

See CHANGELOG.md

License

This software is MIT licensed:

A short, permissive software license. Basically, you can do whatever you want as long as you include the original copyright and license notice in any copy of the software/source. There are many variations of this license in use.

Funding

This project is free and open-source. If you would like to show your appreciation by helping to fund the project's continued development and maintenance, you can find available options here.