lightning-openchannel_init

lightning-openchannel_init -- Command to initiate a channel to a peer

SYNOPSIS

openchannel_init id amount initialpsbt [commitment_feerate] [funding_feerate] [announce] [close_to] [request_amt] [compact_lease] [channel_type]

DESCRIPTION

openchannel_init is a low level RPC command which initiates a channel open with a specified peer. It uses the openchannel protocol which allows for interactive transaction construction.

  • id (pubkey): Node id of the remote peer.
  • amount (sat): Satoshi value that we will contribute to the channel. This value will be _added_ to the provided PSBT in the output which is encumbered by the 2-of-2 script for this channel.
  • initialpsbt (string): Funded, incomplete PSBT that specifies the UTXOs and change output for our channel contribution. It can be updated, see openchannel_update; initialpsbt must have at least one input. Must have the Non-Witness UTXO (PSBT_IN_NON_WITNESS_UTXO) set for every input. An error (code 309) will be returned if this requirement is not met.
  • commitment_feerate (feerate, optional): Feerate for commitment transactions for non-anchor channels: see fundchannel. For anchor channels, it is ignored.
  • funding_feerate (feerate, optional): Feerate for the funding transaction. The default is 'opening' feerate.
  • announce (boolean, optional): Whether or not to announce this channel.
  • close_to (string, optional): Bitcoin address to which the channel funds should be sent on close. Only valid if both peers have negotiated option_upfront_shutdown_script.
  • request_amt (sat, optional): An amount of liquidity you'd like to lease from the peer. If peer supports option_will_fund, indicates to them to include this much liquidity into the channel. Must also pass in compact_lease.
  • compact_lease (hex, optional): A compact representation of the peer's expected channel lease terms. If the peer's terms don't match this set, we will fail to open the channel.
  • channel_type (array of u32s, optional): Each bit set in this channel_type.:
    • (u32, optional): Bit number.

RETURN VALUE

On success, an object is returned, containing:

  • channel_id (hash): The channel id of the channel.
  • psbt (string): The (incomplete) PSBT of the funding transaction.
  • channel_type (object): Channel_type as negotiated with peer. (added v24.02):
    • bits (array of u32s): Each bit set in this channel_type. (added v24.02):
      • (u32, optional): Bit number.
    • names (array of strings): Feature name for each bit set in this channel_type. Note that anchors_zero_fee_htlc_tx is a deprecated synonym for anchors. (added v24.02):
      • (string, optional) (one of "static_remotekey/even", "anchor_outputs/even", "anchors_zero_fee_htlc_tx/even", "anchors/even", "scid_alias/even", "zeroconf/even"): Name of feature bit.
  • commitments_secured (boolean) (always false): Whether the psbt is complete.
  • funding_serial (u64): The serial_id of the funding output in the psbt.
  • requires_confirmed_inputs (boolean, optional): Does peer require confirmed inputs in psbt?

If the peer does not support option_dual_fund, this command will return an error.

If you sent a request_amt and the peer supports option_will_fund and is interested in leasing you liquidity in this channel, returns their updated channel fee max (channel_fee_proportional_basis, channel_fee_base_msat), updated rate card for the lease fee (lease_fee_proportional_basis, lease_fee_base_sat) and their on-chain weight weight_charge, which will be added to the lease fee at a rate of funding_feerate * weight_charge / 1000.

ERRORS

On error the returned object will contain code and message properties, with code being one of the following:

  • -32602: If the given parameters are wrong.
  • -1: Catchall nonspecific error.
  • 300: The amount exceeded the maximum configured funding amount.
  • 301: The provided PSBT cannot afford the funding amount.
  • 304: Still syncing with bitcoin network
  • 305: Peer is not connected.
  • 306: Unknown peer id.
  • 309: PSBT missing required fields
  • 310: v2 channel open protocol not supported by peer
  • 312: Channel in an invalid state

AUTHOR

Lisa Neigut <[email protected]> is mainly responsible.

SEE ALSO

lightning-openchannel_update(7), lightning-openchannel_signed(7), lightning-openchannel_abort(7), lightning-openchannel_bump(7), lightning-fundchannel_start(7), lightning-fundchannel_complete(7), lightning-fundchannel(7), lightning-fundpsbt(7), lightning-utxopsbt(7), lightning-multifundchannel(7)

RESOURCES

Main web site: https://github.com/ElementsProject/lightning

EXAMPLES

Example 1:

Request:

lightning-cli openchannel_init -k "id"="nodeid121212121212121212121212121212121212121212121212121212121212" "amount"=1000000 "initialpsbt"="cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000"
{
  "id": "example:openchannel_init#1",
  "method": "openchannel_init",
  "params": {
    "id": "nodeid121212121212121212121212121212121212121212121212121212121212",
    "amount": 1000000,
    "initialpsbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000310000"
  }
}

Response:

{
  "channel_id": "a5be438539f73c018a98a4b9dd557d62430881c56552025b5579d180cc3887ed",
  "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000610000",
  "channel_type": {
    "bits": [
      12,
      22
    ],
    "names": [
      "static_remotekey/even",
      "anchors/even"
    ]
  },
  "commitments_secured": false,
  "funding_serial": 17725655605188010000,
  "requires_confirmed_inputs": false
}

Example 2:

Request:

lightning-cli openchannel_init "nodeid121212121212121212121212121212121212121212121212121212121212" "500000" "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000"
{
  "id": "example:openchannel_init#2",
  "method": "openchannel_init",
  "params": [
    "nodeid121212121212121212121212121212121212121212121212121212121212",
    500000,
    "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000410000"
  ]
}

Response:

{
  "channel_id": "b3b2e46371876858784cd1b87ecf406e32d8f98b7a44b7f436d1dca317ce0f1b",
  "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000710000",
  "channel_type": {
    "bits": [
      12,
      22
    ],
    "names": [
      "static_remotekey/even",
      "anchors/even"
    ]
  },
  "commitments_secured": false,
  "funding_serial": 17725655605188020000,
  "requires_confirmed_inputs": false
}

Core Lightning (previously c-lightning) is a lightweight, highly customizable and standard compliant implementation of the Lightning Network protocol.

© 2023 Core Lightning
All rights reserved.

Discussion Forum

The official Core Lightning forum is hosted at discuss.corelightning.org

BuildonL2 Community

The official BuildOnL2 community lives at community.corelightning.org. Join us and build the future of bitcoin on lightning.

Mailing List

For general discussions about CLN implementation, use [email protected]. For the Lightning Network, use [email protected]

Telegram

Community-driven telegram group where most of the node operators hang out. Go to https://t.me/lightningd to join.

Discord

Community-driven discord server where the devs flock together. Go to https://discord.gg/w27fMFESMN to join.

Internet Relay Chat

Don't hesitate to reach out to us on IRC at #lightning-dev @ libera.chat, #c-lightning @ libera.chat.