3

My node has a bunch of channels. If I want to make payment, then by definition it will find a route that goes through one or more of my own channels. Are the current lightning implementations smart enough not to charge a fee for that?

In a sense it doesn't matter because the fee goes to the node operator, which is me. But from a bookkeeping point of view it does matter if you're keeping track of transactions including fees.

Conversely it matters if you're trying to find out how much you made from routing (for others).

Finally, I assume it makes a slight difference in the maximum payment you can make.

E.g. in CLN's listpays result there's amount_msat, the invoice amount, and amount_sent_msat, the amount sent. It's documentation doesn't mention if this includes fees in our own channels.

1 Answer 1

0

Lightning nodes charge a fee when they forward a multi-hop payment based on the fee announcement of the outbound channel.

E.g. if you are originating the payment, and your route is via Alice and Bob to the recipient S ⇒ A ⇒ B ⇒ R, Alice will collect a fee for sending to Bob based on the announced fees for her channel with Bob, and Bob will collect a fee for sending to the recipient based on the announced fees for the Bob-Recipient channel.

If you send a multipath payment, the same principle holds true: your own node does not charge a fee for the first hops. As the recipient does not forward the payment, your node also does not charge a fee when you receive a payment.

So, the only scenario in which your own node would charge a fee would be if you operate multiple nodes and a multi-hop payment from one of your nodes is routed through the other.

3
  • That makes sense. Is this mentioned in the spec? Or just a convention? A the level of transactions that are created, there's no difference between S => A and A => B? Or is there? Mar 9 at 16:15
  • At the level of the transactions there is no difference, otherwise the first hop would be able to tell that the sender is the sender. But the payment is sender-routed and the sender knows that it’s their own payment, so why should it charge a fee of itself?
    – Murch
    Mar 10 at 0:57
  • 1
    Just checked with Core Lightning v24.02.1 - when paying an invoice with a destination that I have a direct channel with, the amount_msat and amount_sent_msat fields are the same. When the payments goes via another node first, the amounts are different. The channel has a fee-per-satoshi value set. I haven't tested if other clients do this too, though it seems plausible. Mar 17 at 14:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.