Channel Capacity
Understanding channel capacity
"Moving a payment from one channel to another should work like something moving from one hand to the other."
Understanding Channel Capacity
Channel capacity is a fundamental concept in the Lightning Network that determines how much value can flow through payment channels. It defines the limits of your payment capabilities and affects your ability to send, receive, and route payments.
Channel Capacity Fundamentals
Channel capacity refers to the total amount of bitcoin that can be transferred through a Lightning channel. It's determined by the initial funding amount when the channel is opened and represents the maximum amount that can move within that channel at any point in time.
What Creates Capacity
The capacity of a Lightning channel is backed by actual bitcoin in a 2-of-2 multisignature address on the Bitcoin blockchain. This on-chain UTXO serves as the "anchor" or "settlement layer" for the Lightning channel, allowing for secure off-chain transactions to occur between the channel participants.
- Funding Transaction: Creates the capacity by locking bitcoin in a multisig address
- Fixed Total: The total capacity remains constant until a channel is closed
- On-chain Backing: Every satoshi in a channel is backed by real bitcoin on the blockchain
- Measured in Satoshis: Capacity is typically expressed in satoshis (1 BTC = 100,000,000 satoshis)
Types of Capacity
- Local Capacity: The amount of funds on your side of the channel that you can send to your channel partner
- Remote Capacity: The amount of funds on your partner's side of the channel that you can receive
- Total Capacity: The sum of local and remote capacity, established at channel opening
- Inbound Capacity: Another term for remote capacity - your ability to receive payments
- Outbound Capacity: Another term for local capacity - your ability to send payments
Channel Balance States
- Balanced: Local and remote capacity are roughly equal
- Depleted: All or most capacity is on one side
- Local-heavy: More capacity on your side (good for sending)
- Remote-heavy: More capacity on their side (good for receiving)
Technical Example: Channel State
A 1,000,000 satoshi channel might have the following state:
Type | Amount (sats) | Capability |
---|---|---|
Total Capacity | 1,000,000 | Channel Size |
Local Balance | 700,000 | Can send up to 700K |
Remote Balance | 300,000 | Can receive up to 300K |
How Channel Capacity Changes
Unlike traditional payment systems, Lightning Network channel capacity is dynamic. It shifts as payments flow through the channel, but always maintains the same total sum (minus any routing fees).
Events That Change Channel Balance
1. Sending a Payment
When you send a payment, your local balance decreases and remote balance increases by that amount.
2. Receiving a Payment
When you receive a payment, your local balance increases and remote balance decreases by that amount.
Routing Impacts on Capacity
1. Forwarding Payments
When routing a payment, you receive on one channel and send on another, shifting the capacity balance in both channels.
2. Fee Collection
When you route payments, you collect fees which slightly increase your local balance compared to the amount forwarded.
Example: Routing 100,000 sats with a 1 sat base fee + 0.01% fee rate
Fee earned: 1 + (100,000 × 0.0001) = 11 satoshis
Important Capacity Limitations
- You can only send up to your local balance amount
- You can only receive up to your remote balance amount
- The total capacity cannot increase without closing and reopening the channel
- HTLC minimums and maximums limit the smallest and largest payments
- Reserve requirements may prevent spending the very last satoshis in a channel
Capacity Management Strategies
Effective Lightning node operation requires strategic capacity management to ensure you have the right amount of inbound and outbound capacity.
Outbound Capacity Strategies
- Opening New Channels: Fund new channels with peers who provide valuable connections
- Rebalancing: Move funds from remote-heavy channels to local-heavy ones
- Circular Rebalancing: Send a payment to yourself through multiple channels
- Channel Splicing: Add more funds to existing channels (if supported)
- On-chain Refills: Close depleted channels and open new ones with fresh funds
Inbound Capacity Strategies
- Receiving Payments: Natural usage over time increases inbound capacity
- Dual-Funded Channels: Both parties contribute funds to the channel
- Channel Marketplaces: Services like Lightning Pool to purchase inbound liquidity
- Liquidity Swaps: "Loop Out" to exchange on-chain funds for inbound capacity
- Asking for Channels: Requesting well-connected nodes to open channels to you
Capacity Monitoring
Regular monitoring of your channels' capacity distribution is essential for maintaining a healthy Lightning node.
Key Metrics to Track
- Local vs. remote balance ratio for each channel
- Total inbound vs. outbound capacity
- Historical capacity utilization patterns
- Failed payment attempts due to capacity constraints
- Routing success rates and capacity bottlenecks
Monitoring Tools
- Terminal:
lncli listchannels
- RTL/Thunderhub: Graphical channel balance views
- Balance of Satoshis (BoS): Advanced capacity reports
- LNBig Tools: Capacity visualization
- Custom scripts and dashboards for larger operations