{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "additionalProperties": false,
  "added": "v23.05",
  "required": [
    "closedchannels"
  ],
  "properties": {
    "closedchannels": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "channel_id",
          "opener",
          "private",
          "total_msat",
          "total_local_commitments",
          "total_remote_commitments",
          "total_htlcs_sent",
          "funding_txid",
          "funding_outnum",
          "leased",
          "final_to_us_msat",
          "min_to_us_msat",
          "max_to_us_msat",
          "close_cause"
        ],
        "properties": {
          "peer_id": {
            "type": "pubkey",
            "description": "Peer public key (can be missing with pre-v23.05 closes!)"
          },
          "channel_id": {
            "type": "hash",
            "description": "The full channel_id (funding txid Xored with output number)"
          },
          "short_channel_id": {
            "type": "short_channel_id",
            "description": "The short_channel_id"
          },
          "alias": {
            "type": "object",
            "required": [],
            "properties": {
              "local": {
                "type": "short_channel_id",
                "description": "An alias assigned by this node to this channel, used for outgoing payments"
              },
              "remote": {
                "type": "short_channel_id",
                "description": "An alias assigned by the remote node to this channel, usable in routehints and invoices"
              }
            }
          },
          "opener": {
            "type": "string",
            "enum": [
              "local",
              "remote"
            ],
            "description": "Who initiated the channel"
          },
          "closer": {
            "type": "string",
            "enum": [
              "local",
              "remote"
            ],
            "description": "Who initiated the channel close (only present if closing)"
          },
          "private": {
            "type": "boolean",
            "description": "if False, we will not announce this channel"
          },
          "channel_type": {
            "type": "object",
            "description": "channel_type as negotiated with peer",
            "additionalProperties": false,
            "required": [
              "bits",
              "names"
            ],
            "properties": {
              "bits": {
                "type": "array",
                "description": "Each bit set in this channel_type",
                "items": {
                  "type": "u32",
                  "description": "Bit number"
                }
              },
              "names": {
                "type": "array",
                "description": "Feature name for each bit set in this channel_type",
                "items": {
                  "type": "string",
                  "enum": [
                    "static_remotekey/even",
                    "anchor_outputs/even",
                    "anchors_zero_fee_htlc_tx/even",
                    "scid_alias/even",
                    "zeroconf/even"
                  ],
                  "description": "Name of feature bit"
                }
              }
            }
          },
          "total_local_commitments": {
            "type": "u64",
            "description": "Number of commitment transaction we made"
          },
          "total_remote_commitments": {
            "type": "u64",
            "description": "Number of commitment transaction they made"
          },
          "total_htlcs_sent": {
            "type": "u64",
            "description": "Number of HTLCs we ever sent"
          },
          "funding_txid": {
            "type": "txid",
            "description": "ID of the funding transaction"
          },
          "funding_outnum": {
            "type": "u32",
            "description": "The 0-based output number of the funding transaction which opens the channel"
          },
          "leased": {
            "type": "boolean",
            "description": "Whether this channel was leased from `opener`"
          },
          "funding_fee_paid_msat": {
            "type": "msat",
            "description": "How much we paid to lease the channel (iff `leased` is true and `opener` is local)"
          },
          "funding_fee_rcvd_msat": {
            "type": "msat",
            "description": "How much they paid to lease the channel (iff `leased` is true and `opener` is remote)"
          },
          "funding_pushed_msat": {
            "type": "msat",
            "description": "How much `opener` pushed immediate (if non-zero)"
          },
          "total_msat": {
            "type": "msat",
            "description": "total amount in the channel"
          },
          "final_to_us_msat": {
            "type": "msat",
            "description": "Our balance in final commitment transaction"
          },
          "min_to_us_msat": {
            "type": "msat",
            "description": "Least amount owed to us ever.  If the peer were to succesfully steal from us, this is the amount we would still retain."
          },
          "max_to_us_msat": {
            "type": "msat",
            "description": "Most amount owed to us ever.  If we were to successfully steal from the peer, this is the amount we could potentially get."
          },
          "last_commitment_txid": {
            "type": "hash",
            "description": "The final commitment tx's txid (or mutual close, if we accepted it).  Not present for some very old, small channels pre-0.7.0."
          },
          "last_commitment_fee_msat": {
            "type": "msat",
            "description": "The fee on `last_commitment_txid`"
          },
          "close_cause": {
            "type": "string",
            "enum": [
              "unknown",
              "local",
              "user",
              "remote",
              "protocol",
              "onchain"
            ],
            "description": "What caused the channel to close"
          }
        }
      }
    }
  }
}
