<p>Basepoints are simply public keys from which all other public keys for a certain category (payments, revocation, htlcs, ..) are derived. They are used in order to deterministically generate fresh keys for each new pair of commitment transactions.</p>
<p>See the <a href="https://github.com/lightning/bolts/blob/master/03-transactions.md#keys" rel="nofollow noreferrer">&quot;Key Derivation&quot; section of BOLT 3</a> for details as well as for a rationale:</p>
<blockquote>
<p>Each commitment transaction uses a unique <code>localpubkey</code>, and a <code>remotepubkey</code>.
The HTLC-success and HTLC-timeout transactions use <code>local_delayedpubkey</code> and <code>revocationpubkey</code>. [...]</p>
<p>The reason for key change is so that trustless watching for revoked
transactions can be outsourced. Such a <em>watcher</em> should not be able to
determine the contents of a commitment transaction — even if the <em>watcher</em> knows
which transaction ID to watch for and can make a reasonable guess
as to which HTLCs and balances may be included. [...]</p>
<p>For efficiency, keys are generated from a series of per-commitment secrets
that are generated from a single seed, which allows the receiver to compactly
store them.</p>
</blockquote>

CC BY-SA 4.0
2024-01-24T10:42:35.487Z
2024-01-24T10:42:35.487Z
Antoine Poinsot
<p>The <a href="https://github.com/lightning/bolts/blob/master/03-transactions.md#commitment-transaction" rel="nofollow noreferrer">BOLT #3 Commitment Transaction</a> documentation talks about a <code>payment basepoint</code>, but I can't find it defined in the glossary or anywhere else. It also mentions various other basepoints like a revocation basepoint, delayed payment basepoint, local and remote basepoints and an HTLC basepoint.</p>
<p>What are these basepoints?</p>

<lightning-network><terminology><lightning-rfc><ln-commitment-transaction>
What is a payment basepoint?
Zephyrus
# What is a payment basepoint?

(Asked by: username_0 on 2024-01-23)

The [BOLT #3 Commitment Transaction](https://github.com/lightning/bolts/blob/master/03-transactions.md#commitment-transaction) documentation talks about a `payment basepoint`, but I can't find it defined in the glossary or anywhere else. It also mentions various other basepoints like a revocation basepoint, delayed payment basepoint, local and remote basepoints and an HTLC basepoint.

What are these basepoints?

**Tags:** lightning-network, terminology, lightning-rfc, ln-commitment-transaction


---

## 1 answers

### Answer by username_1 on 2024-01-24. Score: 3 | Accepted answer

Basepoints are simply public keys from which all other public keys for a certain category (payments, revocation, htlcs, ..) are derived. They are used in order to deterministically generate fresh keys for each new pair of commitment transactions.

See the ["Key Derivation" section of BOLT 3](https://github.com/lightning/bolts/blob/master/03-transactions.md#keys) for details as well as for a rationale:

> Each commitment transaction uses a unique `localpubkey`, and a `remotepubkey`.
> The HTLC-success and HTLC-timeout transactions use `local_delayedpubkey` and `revocationpubkey`. [...]
>
> The reason for key change is so that trustless watching for revoked
> transactions can be outsourced. Such a *watcher* should not be able to
> determine the contents of a commitment transaction — even if the *watcher* knows
> which transaction ID to watch for and can make a reasonable guess
> as to which HTLCs and balances may be included. [...]
>
> For efficiency, keys are generated from a series of per-commitment secrets
> that are generated from a single seed, which allows the receiver to compactly
> store them.


---

