Every open Lightning channel can announce itself as routable on the on-chain AereChannelRegistry. The off-chain router service indexes the registry, builds the channel graph, and computes BFS multi-hop routes, Lightning's gossip protocol + pathfinding, working on AERE Layer 1.
Announcing your channel publishes routing fee policy + endpoint hint to the on-chain registry, so other peers can route through you. Either party of an open channel can announce. Withdraw anytime.
On-chain (AERE L1) Off-chain (router service)
─────────────────── ──────────────────────────
AereLightningChannels ┌─ Polls AereChannelRegistry every 15s
└ open(counterparty) → channelId │ Reads each Announcement.party + feeBps
│ Cross-references AereLightningChannels.channels(id)
AereChannelRegistry │ Filters out withdrawn / non-OPEN
└ announce(id, feeBps, endpoint) ├─ Builds directed graph: party → counterparty
└ withdraw(id) ├─ Capacity = current balance on each side
└─ BFS for shortest path with sufficient capacity
Sender: computes route via /route?from=X&to=Y&amount=Z
then plays the multi-hop HTLC dance with each hop
(lock at each hop with shared hashlock, cascading timeouts)
Each hop: co-signs in-channel HTLC state with their counterparty
Recipient: reveals preimage; preimage propagates back unlocking each hop