A friend sent me an invoice for 500,000 Satoshis. To my surprise, I sent 502294 Satoshis.

Here's what I see from my c-lightning console:

  • "msatoshi": 500,000,000
  • "msatoshi_sent": 502,294,595

My friend received a different amount on lnd:

  • "value": "500000"
  • "amt_paid_sat": "501791"

Any reasons why I am not sending the amount requested on the invoice? Also is my understanding correct that I paid 503 satoshis in fees for this transaction? It's more than I expected on the lightning network.



1 Answer 1


In your c-lightning node you have configured your maximum fee rate which is used by the pay command to do the payment.

The BOLT04 describes how overpaying up to twice the amount to obfuscate payments in order to have better privacy is part of the protocol:

if the amount paid is more than twice the amount expected: SHOULD fail the HTLC.

SHOULD return an incorrect_or_unknown_payment_details error.

Note: this allows the origin node to reduce information leakage by altering the amount while not allowing for accidental gross overpayment.

In combination with this merged pull request c-lightning fixed this issue implementing random overpayments up to the maximum fee rate.

So generally c-lightning will randomly overpay your transaction with an amount that is lower to the maximum feerate you are willing to pay.

Not that in earlier days lnd did not accept overpayments as they seemed to not have implemented this part of the protocol.

  • Thank you Rene! Is this a way to know the fees paid by each routing node? 503 Satoshis in routing fees seems like an amount that is higher than I expected. Happy to see a fee market develop for LN though!
    – francois
    Commented Feb 27, 2019 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.