LIGHTNING-ASKRENE-LISTLAYERS(7)

πŸ“¦
version 26.06.9 Β· 2 versions
, in nixpkgs unstable

πŸ’… LIGHTNING-ASKRENE-LISTLAYERS(7) β€” the askrene-listlayers page, bestie edition

okay so this is the manual page for lightning-askrene-listlayers (yes the page title is long, we don't gatekeep) and honestly? it's a lil spyglass into your layers πŸ”βœ¨


πŸŽ€ NAME

askrene-listlayers β€” the command that shows you what's up with your layers, like a lil info dump πŸ’–


✨ SYNOPSIS

askrene-listlayers [layer]

🌸 DESCRIPTION

so this command was added in v24.11 (vintage, iconic) 🫢

the askrene-listlayers RPC command reports any modifications each layer β€” or, if you pass one, just the layer you specified β€” would make to the topology, like, if it were used for getroutes. it's giving "preview mode before you commit" πŸ’…

  • layer (string, optional) β€” the name of the layer you want a report on. skip it and you get the whole lineup πŸ‘‘

πŸ‘‘ RETURN VALUE

on success you get back an object containing layers β€” and layers is an array of objects, where each object has all of this:

  • layer (string) β€” the name of the layer.
  • persistent (boolean) β€” whether the layer is saved across restarts. (fr fr, this one matters 😭)
  • disabled_nodes (array of pubkeys):
    • pubkey (pubkey, optional) β€” the id of the disabled node.
  • created_channels (array of objects):
    • source (pubkey) β€” the source node id for the channel.
    • destination (pubkey) β€” the destination node id for the channel.
    • short_channel_id (short_channel_id) β€” the short channel id for the channel.
    • capacity_msat (msat) β€” the capacity (onchain size) of the channel.
  • channel_updates (array of objects):
    • short_channel_id_dir (short_channel_id_dir) β€” the short channel id and direction this update applies to.
    • enabled (boolean, optional) β€” true if this can be used, false otherwise.
    • htlc_minimum_msat (msat, optional) β€” the minimum value allowed in this direction.
    • htlc_maximum_msat (msat, optional) β€” the maximum value allowed in this direction.
    • fee_base_msat (msat, optional) β€” the base fee to apply to use the channel in this direction.
    • fee_proportional_millionths (u32, optional) β€” the proportional fee (in parts per million) to apply to use the channel in this direction.
    • cltv_expiry_delta (u16, optional) β€” the CLTV delay required for this direction.
  • constraints (array of objects):
    • short_channel_id_dir (short_channel_id_dir) β€” the short channel id and direction.
    • timestamp (u64, optional) β€” the UNIX timestamp when this constraint was created.
    • maximum_msat (msat, optional) β€” the maximum value which this channel could pass.
    • minimum_msat (msat, optional) β€” the minimum value which this channel could pass.
  • disabled_channels (array of short_channel_id_dirs, optional):
    • short_channel_id_dir (short_channel_id_dir, optional) β€” the channel and direction which is disabled.
  • biases (array of objects, optional):
    • short_channel_id_dir (short_channel_id_dir) β€” the short channel id and direction.
    • bias (integer) β€” the bias (-100 to +100).
    • timestamp (u64) β€” the UNIX timestamp when this bias was created. (added v25.12)
    • description (string, optional) β€” description/annotation for the bias.
  • node_biases (array of objects, optional) (added v25.12):
    • node (pubkey) β€” the id of the biased node. (added v25.12)
    • in_bias (integer) β€” the bias (-100 to +100) on incoming channels. (added v25.12)
    • out_bias (integer) β€” the bias (-100 to +100) on outgoing channels. (added v25.12)
    • timestamp (u64) β€” the UNIX timestamp when this bias was created or last updated. (added v25.12)
    • description (string, optional) β€” a human readable annotation. (added v25.12)
ngl the (added v25.12) tags are doing a lot of heavy lifting here β€” go off, version history 🌈

πŸ¦‹ AUTHOR

Rusty Russell rusty@rustcorp.com.au is mainly responsible. king behavior, no cap πŸ‘‘πŸ’–


🧚 SEE ALSO

lightning-getroutes(7), lightning-askrene-disable-node(7), lightning-askrene-create-channel(7), lightning-askrene-inform-channel(7), lightning-askrene-bias-channel(7), lightning-askrene-bias-node(7), lightning-askrene-age(7)

like, the whole askrene friend group, we love a linked fam 🫢✨


🌟 RESOURCES

Main web site: https://github.com/ElementsProject/lightning β€” go click it, it's giving main character energy 🌈


πŸ“ EXAMPLES

Example 1:

Request:

$ lightning-cli askrene-listlayers "test_layers"
{
  "id": "example:askrene-listlayers#1",
  "method": "askrene-listlayers",
  "params": [
    "test_layers"
  ]
}

Response:

{
  "layers": [
    {
      "layer": "test_layers",
      "persistent": false,
      "disabled_nodes": [
        "nodeid010101010101010101010101010101010101010101010101010101010101"
      ],
      "created_channels": [
        {
          "source": "nodeid010101010101010101010101010101010101010101010101010101010101",
          "destination": "nodeid030303030303030303030303030303030303030303030303030303030303",
          "short_channel_id": "0x0x1",
          "capacity_msat": 1000000000
        }
      ],
      "channel_updates": [
        {
          "short_channel_id_dir": "0x0x1/0",
          "htlc_minimum_msat": 100,
          "htlc_maximum_msat": 900000000,
          "fee_base_msat": 1,
          "fee_proportional_millionths": 2,
          "cltv_expiry_delta": 18
        }
      ],
      "constraints": [
        {
          "short_channel_id_dir": "0x0x1/1",
          "timestamp": 1738000000,
          "minimum_msat": 100000
        }
      ],
      "biases": [
        {
          "short_channel_id_dir": "109x1x1/1",
          "description": "bigger bias",
          "bias": -5
        }
      ],
      "node_biases": [
        {
          "node": "nodeid030303030303030303030303030303030303030303030303030303030303",
          "description": "this node is unreliable",
          "in_bias": 0,
          "out_bias": -5
        }
      ]
    }
  ]
}

Example 2:

Request:

$ lightning-cli askrene-listlayers
{
  "id": "example:askrene-listlayers#2",
  "method": "askrene-listlayers",
  "params": {}
}

Response:

{
  "layers": [
    {
      "layer": "test_layers",
      "persistent": false,
      "disabled_nodes": [
        "nodeid010101010101010101010101010101010101010101010101010101010101"
      ],
      "created_channels": [
        {
          "source": "nodeid010101010101010101010101010101010101010101010101010101010101",
          "destination": "nodeid030303030303030303030303030303030303030303030303030303030303",
          "short_channel_id": "0x0x1",
          "capacity_msat": 1000000000
        }
      ],
      "channel_updates": [
        {
          "short_channel_id_dir": "0x0x1/0",
          "htlc_minimum_msat": 100,
          "htlc_maximum_msat": 900000000,
          "fee_base_msat": 1,
          "fee_proportional_millionths": 2,
          "cltv_expiry_delta": 18
        }
      ],
      "constraints": [
        {
          "short_channel_id_dir": "0x0x1/1",
          "timestamp": 1738000000,
          "minimum_msat": 100000
        }
      ],
      "biases": [
        {
          "short_channel_id_dir": "109x1x1/1",
          "description": "bigger bias",
          "bias": -5
        }
      ],
      "node_biases": [
        {
          "node": "nodeid030303030303030303030303030303030303030303030303030303030303",
          "description": "this node is unreliable",
          "in_bias": 0,
          "out_bias": -5
        }
      ]
    },
    {
      "layer": "xpay",
      "persistent": true,
      "disabled_nodes": [],
      "created_channels": [],
      "channel_updates": [],
      "constraints": [],
      "biases": [],
      "node_biases": []
    }
  ]
}

see how example 2 just dumps every layer since you passed no layer? that's the whole vibe check, bestie πŸ˜ŒπŸ’…


aww and that's the page!! this lil beauty ships with Core Lightning v26.06.9 β€” tysm for reading, ily, go list some layers πŸ«ΆπŸ’–βœ¨
πŸ“¦ where this page comes from