Should channels be balanced?

I have been trying to find info and understand…

Should I keep my channels balanced or is it fine to have income and outgoing separately?

I mean should I have channel
Channel 1: In 1mil / out 1mil
Total channel capacity 2 mil

Or does it make any difference if I got channels (to same other node)

Channel 1: in 1mil (ch capacity 1 mil)
Channel 2: out 1 mil (ch capacity 1 mil)
Total channels capacity 2 mil.

So wondering does that make any difference and should I rebalance my channels. In many cases example for some services they ask to open channel to them and then they open channel for you.
If you would rebalance those you would just end with 2 channels with them… does that make any sense as well?

My goal is many to get effects routing node what benefits the lighting network.

  1. Running a node is more of an art because each individual channel needs its own unique care and attention. It’s kind of like having a tamagochi that needs to constantly be taken care of.

  2. Between analyzing traffic flow, fees, what channels to open and close, and rebalancing, you really have to take the time to see how traffic moves and what it costs to move.

  3. You have to dig in at the individual route then look at a more macro view overtime to set your fees and know where to put your sats. This is where the human touch comes in.

  4. Sure you can program a script to automate fees and rebalancing for you and there are some great ones out there, but I don’t think we’re at the point where it can analyze traffic patterns, overall flow, and best channels to open to to minimize costs and maximize profits.

  5. The peer is more important than the channel size.
    Most people say channel size (girth) is everything. The bigger, the better. This is true to an extent. Really channels under 2M sats don’t see any flow, but I have 2M channels that route more traffic than my 20M channels.

  6. It just depends on who they’re connected to, where that traffic is going, and what their fee structure is. A good way to analyze routes is during rebalancing.

  7. You can see who is connected to who, where things can cheaply move, or where there is room to open a channel to one of the connecting nodes to minimize fees and maximize routing potential.

  8. @alexbosworth
    ’s Balance of Satoshis (BOS) has been super helpful in seeing rebalancing routes.
    So really I guess it’s not about the size but what you do with it?

  9. Rebalancing
    I’ve heard a lot of people say rebalancing doesn’t help. I’ve heard people say you should have all balanced channels. I haven’t found either to be true.

  10. I rebalance constantly. But I rebalance to “feed the traffic.” I don’t keep a channel perfectly balanced unless traffic flows both ways. If traffic flows one way, which a lot of channels do, then I constantly push or pull sats back to feed the traffic.

  11. More feeding, more sats. If it’s not profitable to rebalance certain channels, then up your fees.

  12. How did I calculate my break even?
    I took all routing fees and subtracted: rebalancing fees, on-chain transactions (opening/closing channels fees, moving sats to my node, and any loop outs).

  13. If you don’t run a node yet, now is the time to experiment. The mempool is empty so you can open channels at 1 sat/vb, and Bitcoin is only at $30k.

  14. When lighting adoption really takes off and bitcoin 10 or 20xs, you’re going to thank yourself that you got in early and your relatively “small” channel sizes will be massive in the future.

  15. And join Plebnet (
    ) on telegram and we’ll help you get started. I’ve learned more in the last 2 months than I have in years. The learning is addicting.

  16. It’s more of an art than a science.
    I’m sure having a technical coding or software background has it’s advantages, but as someone that never used a command line prior to running a node, I don’t think it’s really needed at this stage in the game.



Okay thx. Valuable info, but don’t really answer the question… at least not directly.

Maybe combining points 5 and 9 give some answer.
Generally it says on certain size bigger is better, no matter is it balanced or not.

For sure you need to manage balances when things start to flow… but if there is nothing going… you just find to get best setup before things start to happen.
So summarizing this… get proper sized channels, but having those balanced does not really affect anything.

I btw posted this same question to Reddit:

Outcome is really that larger one balanced channel is better, but if that is not possible it is fine to have 2 separate ones as well and don’t really make much difference.

Bitcoin is at 42K+ , not 30k. :wink:

Simply a rounding error.



1 Like

My 2 sats on this. Choosing how to open channels is sort of an art as previously mentioned. Some things to note are

  • If you are only connected to one other node, that channel would only get activity if you are sending and receiving yourself. You won’t be routing for others.
  • Having channels with 50/50 balance isn’t always ideal. Some nodes drain liquidity while others provide it. You may want to have the split more skewed towards the side that needs it.
  • Channels go out of balance as you transactions go though. You need to make sure cost to rebalance is lower than the fees gained from routing if you want to profit.
  • Having multiple channels makes you more connected but gives diminishing returns
  • Having a big channel means more capacity per opening fee and larger potential transaction routing. But no point opening a massive channels if it isn’t going to be used.
  • Capacity is not all equal. eg, opening a channel to a node with no activity
  • Having channels with 50/50 balance isn’t always ideal. Some nodes drain liquidity while others provide it. You may want to have the split more skewed towards the side that needs it.

This is vital. Can you provide some examples and explanations?

  • Channels go out of balance as you transactions go though. You need to make sure cost to rebalance is lower than the fees gained from routing if you want to profit.

how do you ensure that? Cost of circular rebalance is not known upfront. feasibility of rebalance is also unclear.

An example are exchange nodes which are heavily outbound. Bitfinex LN is 1:5. It’s easy to get inbound capacity from exchanges by opening a channel sending sats over lightning then withdraw on chain, but that inbound isn’t in demand as much as outbound because there it’s so much of it.

Another example are nodes for shops or services. People only send to LOOP and having inbound from them is useless. If you were to rebalance a channel to LOOP, you would want as much outbound as possible.

Fees and rebalancing is something really hard to pin down at the moment. You need to study which of your channels have flow and in which directions. Rebalancing after routing is usually is more expensive than your fees (the payments you route would ideally have gone through the cheaper route). You can rebalance to take advantage of a cheap route. Back to LOOP as an example, if you have a 5000ppm channel that has been used, and someone opens a channel to LOOP with 1000ppm, you could rebalance through them and get 4000ppm (- other channels’ fees) as profit.

tcash…looks like you know your shit. I need some help if you have any cycles.

Immediate issue is kinda a noob thing…I’m using RTL app and have a few peers and channels open. Two peers/channels to a friend, so we worked together to get things up, balance and all that.

I’ve connected to Sphinx chat peer, the channel is all local balance, my circular rebalance attemps are failing.

I’m trying to keep my channels 50/50 local and remote for now until I become a better operator, and look into traffic flows and start optimizing the balance based on the direction of flows. Makes sense, love it.

However, where F is the button to add more liquidity? What does insufficient balance mean if the remote balance is larger than the amount your trying to rebalance? If you lower the rebalance amount it then says rebalance too low.

I feel like a lab rat. What’s the experiment here? How do you make this thing do what you want?