Fiber LogoFiber Docs
Channels

Channel Lifecycle

Understand the ChannelState values used during a Fiber payment channel lifecycle

Overview

A Fiber channel undergoes several states: NegotiatingFunding, CollaboratingFundingTx, SigningCommitment, AwaitingTxSignatures, AwaitingChannelReady, ChannelReady, ShuttingDown, and Closed. RPC responses report the current state through the ChannelState enum.

The following sections show the complete Fiber channel lifecycle in its actual state order.

NegotiatingFunding

NegotiatingFunding means the peers are agreeing on the parameters required before funding, such as funding amount, fee rates, TLC limits, and related channel settings.

FlagDescription
OUR_INIT_SENTThe local node has sent its channel-opening init message.
THEIR_INIT_SENTThe remote peer has sent its channel-opening init message.
INIT_SENTBoth local and remote channel-opening init messages have been sent.
AWAITING_EXTERNAL_FUNDINGThe node is waiting for the user to sign and submit an externally funded transaction.

CollaboratingFundingTx

CollaboratingFundingTx means the peers are building the funding transaction together.

FlagDescription
AWAITING_REMOTE_TX_COLLABORATION_MSGThe node is waiting for the peer's transaction-collaboration message.
PREPARING_LOCAL_TX_COLLABORATION_MSGThe node is preparing its own transaction-collaboration message.
OUR_TX_COMPLETE_SENTThe local node has sent tx_complete.
THEIR_TX_COMPLETE_SENTThe remote peer has sent tx_complete.
COLLABORATION_COMPLETEDBoth sides have sent tx_complete.

SigningCommitment

SigningCommitment means the funding transaction structure is ready and the peers are exchanging CommitmentSigned messages.

FlagDescription
OUR_COMMITMENT_SIGNED_SENTThe local node has sent CommitmentSigned.
THEIR_COMMITMENT_SIGNED_SENTThe remote peer has sent CommitmentSigned.
COMMITMENT_SIGNED_SENTBoth sides have sent CommitmentSigned.

AwaitingTxSignatures

AwaitingTxSignatures means the peers have exchanged commitment signatures and are now collecting funding transaction signatures through TxSignatures messages.

FlagDescription
OUR_TX_SIGNATURES_SENTThe local node has sent funding transaction signatures.
THEIR_TX_SIGNATURES_SENTThe remote peer has sent funding transaction signatures.
TX_SIGNATURES_SENTBoth sides have sent funding transaction signatures.

AwaitingChannelReady

AwaitingChannelReady means the funding transaction has been signed or broadcast, and the channel is waiting for on-chain confirmation and ChannelReady messages from both peers.

FlagDescription
OUR_CHANNEL_READYThe local node has sent ChannelReady.
THEIR_CHANNEL_READYThe remote peer has sent ChannelReady.
CHANNEL_READYBoth sides have sent ChannelReady.

ChannelReady

ChannelReady means the channel is active and can send or receive payments. This state has no state_flags.

ChannelReady does not guarantee payment reliability. A payment may still fail if there is not enough liquidity on the correct side, policy limits are not met, too many TLCs are already in flight, or no route can be found.

ShuttingDown

ShuttingDown means the channel is closing.

Channels can close cooperatively, when both peers agree on the close, or uncooperatively, when one side force closes the channel. For a cooperative close, provide close_script and fee_rate. For a force close, set force to true; for example, fnn-cli channel shutdown_channel --force true. In that case, Fiber uses the default close script and fee rate from channel opening.

FlagDescription
OUR_SHUTDOWN_SENTThe local node has sent Shutdown.
THEIR_SHUTDOWN_SENTThe remote peer has sent Shutdown.
AWAITING_PENDING_TLCSBoth sides have sent Shutdown, and pending TLCs still need to clear.
DROPPING_PENDINGThe node is dropping pending updates while closing.
WAITING_COMMITMENT_CONFIRMATIONThe node is waiting for commitment confirmation during shutdown.

Closed

Closed means the channel has reached a terminal state and can no longer be used for payments.

FlagDescription
COOPERATIVEThe channel closed cooperatively.
UNCOOPERATIVE_LOCALThe local node closed the channel uncooperatively.
UNCOOPERATIVE_REMOTEThe remote peer closed the channel uncooperatively.
ABANDONEDThe channel was abandoned.
FUNDING_ABORTEDThe channel opening failed before funding completed.
WAITING_ONCHAIN_SETTLEMENTThe channel is already in Closed, but the on-chain settlement is still pending.

Checking Channel State

Using fnn-cli

fnn-cli channel list_channels

Using RPC

{
  "jsonrpc": "2.0",
  "method": "list_channels",
  "params": [{}],
  "id": 1
}