Invoiceless Lightning Payments with Circular Route

Zoltán Gálli
May 24, 2019 · 3 min read

Lightning Network payments require the payee first issue an invoice, which the payer uses to send money to it. While in commercial usage this is a useful property, in some other cases this can be cumbersome. There are some ongoing developments toward Invoiceless payments — for example Sphinx send — I’d like to present another approach.

The basic idea is simple: take the money to the target node, overpay the necessary forwarding fee, and bring small change back. So the receiver does not need to bother with invoice issuing. And this method works with all current Lightning Node implementation, no update required on the receiving side.

By saying Invoiceless I mean the recipient does not need to issue an invoice. Instead, the sender generates one and technically pays to itself, inserting the payee in the payment route for the fees. The invoice generation is an automatic step on the sender side. And the focus is shifting from paying an invoice to paying a forwarding fee to the target node.

Rene Pickhardt explains this method in his video

This method is a dirty hack with a number of downsides:

  • The route is twice as long because of the circular routing. A small amount of the payment is going on the way back, which will slightly increase fees and failure probability.
  • The payee receives the money as a routing fee: hard to associate with anything, distinguish from the usual fees.
  • This payment type requires the sending and receiving parts both to be a well-connected node with proper liquidity for the route back and forth.
  • This approach also has a security issue: if the payment is going on a circular route A-B-C-D-A to pay C and the same malicious entity controls B and D, the money can be stolen by skipping C.

I’ve implemented this feature as a c-lightning plugin. After the plugin activated, someone can easily send Invoiceless payments by typing:

lightning-cli sendinvoiceless <nodeid> <msatoshi>

And thanks to Michael Schmoock’s excellent work, it is also possible to check the received Invoiceless payments:

lightning-cli receivedinvoiceless

You can find more information about the sendinvoiceless plugin in the GitHub repository.

Thanks for reading! If you liked it, follow me on Medium or Twitter, or open a channel to my Lightning Network Node! Feedback, comments, and suggestions are welcome!

Get Best Software Deals Directly In Your Inbox

Coinmonks

Coinmonks is a non-profit Crypto educational publication.

Sign up for Coinmonks

By Coinmonks

A newsletter that brings you week's best crypto and blockchain stories and trending news directly in your inbox, by CoinCodeCap.com Take a look.

By signing up, you will create a Medium account if you don’t already have one. Review our Privacy Policy for more information about our privacy practices.

Check your inbox
Medium sent you an email at to complete your subscription.

Zoltán Gálli

Written by

Roman Catholic | Husband | Father | Geek | https://zoltan.xyz/ PGP Fingerprint: 116D 19B0 5C58 5B6D

Coinmonks

Coinmonks

Coinmonks is a non-profit Crypto educational publication. Follow us on Twitter @coinmonks Our other project — https://coincodecap.com

Zoltán Gálli

Written by

Roman Catholic | Husband | Father | Geek | https://zoltan.xyz/ PGP Fingerprint: 116D 19B0 5C58 5B6D

Coinmonks

Coinmonks

Coinmonks is a non-profit Crypto educational publication. Follow us on Twitter @coinmonks Our other project — https://coincodecap.com

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store