Skip to content

A trust-minimized payment inbox for Lightning Addresses

License

Notifications You must be signed in to change notification settings

Eternumkr/lightning-box

 
 

Repository files navigation

📥 Lightning Box

Lightning Box is in a very early stage, not much is finished yet.

Work In Progress, not suited for production just yet. Contributions, suggestions and ideas are appreciated. Database schema and configuration are bound to change.

Lightning Box is a payment inbox for Lightning Addresses. It's mainly suited for non-custodial Lightning wallets that might not always be online to receive payments.

Lightning Box will take the payment on behalf of the wallet and then notify the user about the payment via a communication medium (Email, Telegram, Push notification...). The user is then supposed to start their wallet to withdraw.

By utilizing the widely adopted protocols LNURL-auth and LNURL-withdraw, any supporting Lightning Wallet can use Lightning Box. Wallets that also support LNURL-withdraw's balanceCheck can keep the Lightning Box as known service inside the wallet and easily withdraw from the box without leaving the wallet.

Build

Lightning Box requires lnd as the Lightning backend right now, though the plan is to make the service implementation independent.

The master branch always expects the latest version of lnd. Lnd compiled with routerrpc is required.

  1. Run lnd, wallet must be unlocked for Lightning Box to operate correctly
  2. git clone https://github.com/hsjoberg/lightning-box && cd lightning-box
  3. Copy config/config.ts_TEMPLATE to config/config.ts and set up your configuration. See config/interface.ts for documentation over the configuration
  4. npm install
  5. npm start

Test

To do tests run npm test or npm test:coverage.

Any new code should not decerease code coverage significantly.

License

MIT

About

A trust-minimized payment inbox for Lightning Addresses

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 96.0%
  • JavaScript 4.0%