LIGHTNING-FUNDCHANNEL_START(7)

NAME

lightning-fundchannel_start -- Command for initiating channel establishment for a lightning channel

SYNOPSIS

fundchannel_start id amount [feerate announce close_to push_msat channel_type] mindepth reserve]

DESCRIPTION

fundchannel_start is a lower level RPC command. It allows a user to initiate channel establishment with a connected peer.

id is the node id of the remote peer.

amount is the satoshi value that the channel will be funded at. This value MUST be accurate, otherwise the negotiated commitment transactions will not encompass the correct channel value.

feerate is an optional field. Sets the feerate for subsequent commitment transactions: see fundchannel. Note that this is ignored for channels with option_anchors_zero_fee_htlc_tx (we always use a low commitment fee for these).

announce whether or not to announce this channel.

close_to is a Bitcoin address to which the channel funds should be sent to on close. Only valid if both peers have negotiated option_upfront_shutdown_script. Returns close_to set to closing script iff is negotiated.

push_msat is the amount of millisatoshis to push to the channel peer at open. Note that this is a gift to the peer -- these satoshis are added to the initial balance of the peer at channel start and are largely unrecoverable once pushed.

channel_type (added v24.02) is an array of bit numbers, representing the explicit channel type to request. BOLT 2 defines the following value types:

    The currently defined basic types are:
      - no features (no bits set) `[]`
      - `option_static_remotekey` (`[12]`)
      - `option_anchor_outputs` and `option_static_remotekey` (`[20, 12]`)
      - `option_anchors_zero_fee_htlc_tx` and `option_static_remotekey` ([22, 12])
    Each basic type has the following variations allowed:
      - `option_scid_alias` ([46])
      - `option_zeroconf` ([50])

mindepth is the number of confirmations before we accept the channel as active.

reserve is the amount we want the peer to maintain on its side of the channel. Default is 1% of the funding amount. It can be a whole number, a whole number ending in sat, a whole number ending in 000msat, or a number with 1 to 8 decimal places ending in btc.

Note that the funding transaction MUST NOT be broadcast until after channel establishment has been successfully completed by running fundchannel_complete, as the commitment transactions for this channel are not secured until the complete command succeeds. Broadcasting transaction before that can lead to unrecoverable loss of funds.

RETURN VALUE

On success, an object is returned, containing:

•   funding_address (string): The address to send funding to for the channel. DO NOT SEND COINS TO THIS ADDRESS YET.

•   scriptpubkey (hex): The raw scriptPubkey for the address

•   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):

    •   Bit number

    •   names (array of strings): Feature name for each bit set in this channel_type (added v24.02):

    •   Name of feature bit (one of "static_remotekey/even", "anchor_outputs/even", "anchors_zero_fee_htlc_tx/even", "scid_alias/even", "zeroconf/even")

•   close_to (hex, optional): The raw scriptPubkey which mutual close will go to; only present if close_to parameter was specified and peer supports option_upfront_shutdown_script

The following warnings may also be returned:

•   warning_usage: A warning not to prematurely broadcast the funding transaction (always present!)

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 push_msat is greater than the provided amount.

•   304: Still syncing with bitcoin network

•   305: Peer is not connected.

•   306: Unknown peer id

•   312: Peer negotiated option_dual_fund, must use openchannel_init not fundchannel_start. (Only if `experimental-dual-fund is enabled)

AUTHOR

Lisa Neigut <niftynei@gmail.com> is mainly responsible.

SEE ALSO

lightning-connect(7), lightning-fundchannel(7), lightning-multifundchannel(7), lightning-fundchannel_complete(7), lightning-fundchannel_cancel(7) lightning-openchannel_init(7), lightning-openchannel_update(7), lightning-openchannel_signed(7), lightning-openchannel_bump(7), lightning-openchannel_abort(7)

RESOURCES

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