Skip to content
buybitcoinsmart

Glossary / Lightning & layer 2

Channel announcement

What is a channel announcement?
A channel announcement is the signed gossip message that tells the Lightning network a public channel exists, proving ownership of the funding output with four signatures.

Every public Lightning channel joins the routing graph through one of these, and only one valid announcement can exist per channel. It cannot be sent until the funding transaction has six confirmations, and peers forget the channel 72 blocks after the output is spent. Announcing costs privacy, because the message publishes the on-chain output funding your channel and ties it to your node key.

How it works

A channel announcement is expensive to fake, and that is the whole point of the design.

Gossip is free to send, so a node could otherwise flood the network with imaginary channels. BOLT 7 blocks that by making every claim answerable against the blockchain. The message, type 256, names a short_channel_id that points at one specific output: three bytes of block height, three of transaction index, two of output index. A receiving node looks that output up and discards the announcement unless it is an unspent P2WSH paying to the two Bitcoin keys named.

Four signatures ride at the front. Two come from the node identity keys, and two from the funding keys that control the on-chain output, bitcoin_key_1 and bitcoin_key_2. All four sign the same double SHA256 hash, computed from byte offset 256 to the end of the message. Pairing node keys to Bitcoin keys proves the two nodes advertising the channel are the two parties who funded it, not strangers pointing at somebody else's output. node_id_1 must also be the lexicographically lesser of the two compressed keys, and a receiving node must ignore any announcement that gets that order wrong.

Announcing is opt-in, set by the announce_channel bit when the channel is opened. If it is, the peers exchange announcement_signatures (type 259) once the funding transaction is deep enough, and either side can then broadcast the result. A splice produces a fresh announcement for the new transaction, which is why nodes wait 72 blocks after a funding output is spent before forgetting the channel: the spend might be a resize rather than a close.

Where you see it

Channel announcements are what a Lightning explorer is reading when it draws the network graph.

The identifier printed beside each channel comes straight out of the message. A short_channel_id written as 539268x845x1 means output 1 of the transaction at index 845 in block 539268, so anyone can check that output on chain. The announcement carries nothing resembling a listing: no fee, no capacity, no operator name. A channel is not usable until at least one side sends a channel_update with its fees and expiry delta, and the node name arrives separately in a node_announcement.

That split explains why channels vanish from explorers while still existing. If the newest channel_update in either direction is more than two weeks old (1209600 seconds), a node may prune the channel from its view. An announcement is never refreshed on its own, so a channel stays on the map only while an operator keeps re-signing its terms.

On the wallet side, you mostly meet channel announcements by their absence. A channel needs announcing only if you want strangers to route payments through it, and a phone wallet exists to spend and receive rather than to be a hop. That is why the practical questions in our Phoenix and Muun reviews are the published fee table and the backup file, not a position in the public graph.

Channel announcement vs channel capacity

A channel announcement proves a channel exists, while channel capacity is the number of satoshis inside it, and the message states no amount at all. Its fields are four signatures, a feature vector, a chain hash, the short channel ID and four public keys. Anyone quoting a capacity figure has joined the announcement to chain data, reading the value of the output the identifier points to. That is why an unannounced channel has capacity but no public figure: nothing tells the network which output to read.

Not to be confused with

Frequently asked questions

Does announcing a Lightning channel cost you privacy?

Yes. The announcement names the funding output on chain and ties it to your node's public key, so anyone reading the gossip can see which coins back the channel and which two nodes sit on its ends. A channel does not have to be announced to work: BOLT 7 makes announcing opt-in through the announce_channel bit set when the channel is opened.

What is the difference between channel_announcement and channel_update?

The channel_announcement proves the channel exists and is signed once, while channel_update carries the terms that change, the fees and the expiry delta. A channel is not usable until at least one side has sent a channel_update, and a node may prune a channel whose newest update in either direction is more than two weeks old.

Read next

Sources

Last reviewed 2026-09-06.

Related terms

More in Lightning & layer 2