💡 The Plain-English Definition
The channel graph is the public map of the entire Lightning Network — a record of which nodes connect to which, and the capacity of each channel between them. Routing nodes (nodes that earn fees by forwarding payments) use this map to find paths from sender to recipient.
🤔 But Why Though?
Unlike Bitcoin’s base layer, where a transaction goes straight from any address to any address, Lightning payments travel through a web of channels, hopping from node to node until they reach the recipient. To find those paths, a payment needs to know the network’s layout. Every Lightning node broadcasts its channel announcements, and other nodes collect them to build their own local copy of the graph — a list of every channel, its capacity, and each node’s fee policy. When a payment needs routing, the sender’s node searches this graph for a workable path.
The graph reveals more than many Lightning users realise. It shows which nodes exist, which channels connect them, and each channel’s total capacity. What it doesn’t show is how the balance inside each channel is split — whether a 1 BTC channel is 0.9 on one side and 0.1 on the other stays invisible. Running a public Lightning node means your channels show up in the graph, so observers can see your node’s connections and capacity. If you want more privacy, you can use unannounced channels (private ones that don’t appear in the graph), at the cost of less routing ability.
🌍 The Real-World Analogy
The channel graph is like a road atlas of a city — showing all the roads, their widths (capacities), and the toll rates (fees) along each stretch. A delivery driver (your payment) uses the atlas to find the fastest, cheapest route from pickup to drop-off. But the atlas doesn’t show how many cars are on each road right now (the channel balance), so the driver sometimes takes a route that looked clear but turns out congested — and has to reroute.
⚡ So What?
For most Lightning users, the channel graph is invisible infrastructure — their wallet queries it automatically when sending a payment. Understanding it explains why Lightning payments sometimes fail (no path exists with enough balance across every hop) and why routing keeps improving over time (the graph grows denser as more channels open). For node operators, understanding the graph informs which nodes to open channels with to maximise routing opportunities.
