During channel establishment v2, peers use interactive transaction construction to build the funding transaction.
tx_add_input Requirements:
- If the receiver set
require_confirmed_inputs in any negotiation message (open_channel2, accept_channel2, tx_init_rbf, or tx_ack_rbf), the sender MUST NOT send a tx_add_input containing an unconfirmed input.
tx_add_output Requirements:
- The opener MUST send at least one
tx_add_output containing the channel's funding output.
tx_complete Requirements:
Upon receipt of consecutive tx_complete messages, the receiving node must follow these rules:
- If the receiver is the accepter:
- MUST fail if no funding output was received.
- MUST fail if the funding output value $\neq$ (
open_channel2.funding_satoshis + accept_channel2.funding_satoshis). - MUST fail if the funding output value is less than the
dust_limit. - If this is an RBF attempt: MUST fail if the transaction's total fees are less than the last successfully negotiated transaction's fees, or if it doesn't share at least one input with each previous funding transaction.
- If
require_confirmed_inputs was set: MUST fail if any input added by the other peer is unconfirmed.
Note on Channel Reserve:
The channel reserve is fixed at 1% of the total channel balance (open_channel2.funding_satoshis + accept_channel2.funding_satoshis) rounded down to the nearest whole satoshi or the dust_limit_satoshis, whichever is greater.