IntroductionGetting StartedUX Best Practices
Edit this page on GitHub


WebLN is a library and set of specifications for lightning apps and client providers to facilitate communication between apps and users' lightning nodes in a secure way. It provides a programmatic, permissioned interface for letting applications ask users to send payments, generate invoices to receive payments, and much more. This documentation covers both how to use WebLN in your Lightning-driven applications, but also how to implement a provider.

You may be interested in using WebLN if you...

  • Have an application that accepts or makes Lightning payments to users
  • Want to have decentralized identity and authentication in your application
  • Are working on a Lightning node wallet, and want to make it easier for your users to interact with Lightning web apps

WebLN In the Wild

Some WebLN client providers include

  • Joule - a WebLN-enabled browser extension that uses your own node
  • Alby - a versatile open-source browser extension for the Bitcoin Lightning Network
  • BlueWallet - a mobile wallet with a WebLN browser
  • kwh - A firefox/chrome extension for WebLN to your c-lightning node
  • Blixt Wallet - a non-custodial open-source Lightning Wallet with a WebLN browser

Some applications that use WebLN on the web include

  • Bitrefill - Purchase gift cards with Bitcoin
  • Lightning Spin - A roulette-style game where you can bet and win Satoshis
  • LNMarkets - LN-powered Bitcoin derivatives trading platform
  • Sparkshot - Platform for artists to monetize the release of their art.
  • Stacker News - A reddit like platform with Lightning payments for upvotes of posts

Some demos to see what you can do with WebLN

For App Developers

Jump into the Getting Started section to see how to install and use WebLN in your app.

A Quick Note About TypeScript

Code samples in this documentation will be in TypeScript, a statically-typed variant of JavaScript. WebLN is fully typed, and it's highly recommended you use TypeScript when using it for the best developer experience. Likewise, it's also recommended if you're implementing a provider, to make certain that you're compliant to the spec.