Glossary / Lightning & layer 2
Force close
- Definition
- A force close ends a Lightning channel without your counterparty's help: you broadcast the latest commitment transaction, pay on-chain fees, and wait out a delay before your own balance is spendable.
Every Lightning channel keeps a signed exit ready, and a force close is that exit being used. It costs a real on-chain transaction plus one more for each payment still in flight, and anchor channels park a 330 satoshi output on each side purely so the fee can be bumped afterwards. Expect your money back in about a day, not a second.
How it works
Two ways out of a Lightning channel exist, and the expensive one is the force close, which needs no cooperation.
A cooperative close is a negotiation: both sides agree on the final split, sign one transaction, and everybody's coins are ordinary spendable outputs as soon as it confirms. A force close skips the negotiation. You publish the most recent commitment transaction you hold, and bitcoin's consensus rules do the arbitration instead of your peer. The asymmetry is deliberate and it works against whoever pushes the button: your counterparty's balance is immediately spendable, while yours is locked behind an OP_CHECKSEQUENCEVERIFY delay of to_self_delay blocks, agreed when the channel opened.
That delay is the punishment window. It exists so that if the transaction you broadcast turns out to be an old one, showing a balance you already spent, the other side has time to publish a penalty transaction and take everything. BOLT 2 stores to_self_delay as a 16 bit number, so it can be anything up to 65,535 blocks, and requires a peer to reject a value it considers unreasonably large. A bigger delay makes cheating you harder and makes your own exit slower.
Payments in flight complicate the arithmetic. Each one needs its own follow-up transaction, weighing 666 or 706 weight units in an anchor channel depending on whether it resolves by timeout or by secret, and each is broadcast separately once its condition is met. The 330 satoshi anchor outputs, sized at the dust limit for a P2WSH output, exist so either party can attach a child transaction and raise the fee on a commitment that was signed when the mempool was cheap.
Where you see it
Force closes are common, and most of them are nobody cheating.
The usual trigger is a peer that has been unreachable too long while a payment's deadline approaches, so your node closes rather than risk losing the amount. Providers prune channels that have sat idle. Wallets close automatically when they cannot reach the other side after an update. In every case you find out because a chunk of your balance is suddenly listed as pending and a stranger's transaction is sitting in the mempool with your money in it.
The rule that saves people money: never restore a Lightning wallet from a seed phrase alone and then use it. A seed recovers on-chain coins, but a channel's current state is not in it, and broadcasting a stale commitment invites the penalty. What you keep instead is a channel backup file, and what it gets you is the right to ask your peers to close, at their pace, with fees you do not control. That is the practical reason Lightning is for spending money and on-chain self-custody is for savings.
The fee environment decides the damage. A force close during a quiet mempool costs a few thousand satoshis. The same close during a fee spike can cost more than a small channel holds, and channels whose balance is below the cost of sweeping it are simply abandoned.