Was this page helpful?
Channel Establishment
Channel Establishment Sequence
BOLT #2 - Channel Establishment
State Notation | Signer State |
---|---|
H[] C[] |
no holder commitment, no counterparty commitment |
H[0] C[0] |
holder initial commitment, counterparty initial commitment |
H[n] C[m] |
holder commitment n, counterparty commitment m |
H[n,n+1] C[m] |
holder commitment n and n+1, counterparty commitment m |
H[n]* |
holder base commitment, splice, and RBF candidates for n |
H[n,n+1]* |
holder base commitment, splice, and RBF candidates for n and n+1 |
sequenceDiagram
autonumber
participant Signer-A
participant Node-A
participant Node-B
participant Signer-B
activate Node-A
Note over Node-A: Fund New Channel
Node-A->>+Signer-A: NewChannel
Signer-A-->>-Node-A:
Node-A->>Node-B: open_channel
activate Node-B
Node-B->>+Signer-B: NewChannel
Signer-B-->>-Node-B:
Node-B->>Node-A: accept_channel
Node-A->>+Signer-A: SetupChannel
Signer-A-->>-Node-A:
Note over Signer-A: H[] C[]
Node-A->>+Signer-A: SignCounterpartyCommitment(0)
Signer-A-->>-Node-A:
Note over Signer-A: H[] C[0]
Node-A->>Node-B: funding_created
Node-B->>+Signer-B: SetupChannel
Signer-B-->>-Node-B:
Note over Signer-B: H[] C[]
Node-B->>+Signer-B: ValidateHolderCommitment(0)
Signer-B-->>-Node-B:
Note over Signer-B: H[0] C[]
Node-B->>+Signer-B: SignCounterpartyCommitment(0)
Signer-B-->>-Node-B:
Note over Signer-B: H[0] C[0]
Node-B->>Node-A: funding_signed
Node-A ->>+Signer-A : ValidateHolderCommitment(0)
Signer-A -->>-Node-A :
Note over Signer-A : H[0] C[0]
Node-A ->>+Signer-A : SignOnchainTx
Signer-A -->>-Node-A :
Node-A ->>+Signer-A : CheckOutpoint
Signer-A -->>-Node-A :
Node-A->>Node-B: channel_ready
Node-B ->>+Signer-B : CheckOutpoint
Signer-B -->>-Node-B :
Node-B ->>+Signer-B : LockOutpoint
Signer-B -->>-Node-B :
Node-B->>Node-A: channel_ready
deactivate Node-B
Node-A ->>+Signer-A : LockOutpoint
Signer-A -->>-Node-A :
deactivate Node-A
Resources
Community
© 2025 VLS Developers