I attended the Lightning Conference in Berlin last month, where I spoke with several other programmers about lnurl. I expressed my disagreement with the idea behind it - mainly that it should be implemented in the BOLT protocol layer instead. But I was convinced by the others' arguments and support of the lnurl specification and ideas. So I started this project and have since gotten it to a usable state.

What it does

It's a node.js implementation of the lnurl specification. Including:

  • encode a URL as bech32-encoded lnurl string
  • decode lnurl bech32-encoded string
  • run an HTTPS web server that supports the lnurl spec (channelRequest, withdrawRequest, auth/login)

How I built it

lnurl-node is built with node.js and depends on a few other open-source projects.

Challenges I ran into

The lnurl specification is still being developed and clarified so it's a bit of a work-in-progress. I've been in communication the past few weeks with the other programmers working on it.

Accomplishments that I'm proud of

How quickly I was able to get the project in a usable state and that other programmers are already using it.

What I learned

Listening and understanding the needs of other programmers who might use this and how to collaborate to develop/clarify a specification that others might implement.

What's next for lnurl-node

Improve testing, safety and security; continue to improve the specification and the lnurl-node project itself while developing my other projects that depend on it.

Built With

Share this project: