{
  "$schema": "../rpc-schema-draft.json",
  "type": "object",
  "rpc": "fundchannel_complete",
  "title": "Command for completing channel establishment",
  "description": [
    "`fundchannel_complete` is a lower level RPC command. It allows a user to complete an initiated channel establishment with a connected peer.",
    "",
    "Note that the funding transaction MUST NOT be broadcast until after channel establishment has been successfully completed, as the commitment transactions for this channel are not secured until this command successfully completes. Broadcasting transaction before can lead to unrecoverable loss of funds."
  ],
  "request": {
    "required": [
      "id",
      "psbt"
    ],
    "additionalProperties": false,
    "properties": {
      "id": {
        "type": "pubkey",
        "description": [
          "Node id of the remote peer."
        ]
      },
      "psbt": {
        "type": "string",
        "description": [
          "Transaction to use for funding (does not need to be signed but must be otherwise complete)."
        ]
      },
      "withhold": {
        "type": "boolean",
        "added": "v25.12",
        "description": [
          "Mark this channel 'withheld' so we know we haven't broadcast the funding transaction.  If the channel is closed before we call `sendpsbt` on this psbt, it will simply be closed immediately."
        ]
      }
    }
  },
  "response": {
    "required": [
      "channel_id",
      "commitments_secured"
    ],
    "additionalProperties": false,
    "properties": {
      "channel_id": {
        "type": "hash",
        "description": [
          "The channel_id of the resulting channel."
        ]
      },
      "commitments_secured": {
        "type": "boolean",
        "enum": [
          true
        ],
        "description": [
          "Indication that channel is safe to use."
        ]
      }
    }
  },
  "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.",
    "- 305: Peer is not connected.",
    "- 306: Unknown peer id.",
    "- 309: PSBT does not have a unique, correct output to fund the channel."
  ],
  "author": [
    "Lisa Neigut [niftynei@gmail.com](mailto:niftynei@gmail.com) is mainly responsible."
  ],
  "see_also": [
    "lightning-connect(7)",
    "lightning-fundchannel(7)",
    "lightning-multifundchannel(7)",
    "lightning-fundchannel_start(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](https://github.com/ElementsProject/lightning)"
  ],
  "examples": [
    {
      "request": {
        "id": "example:fundchannel_complete#1",
        "method": "fundchannel_complete",
        "params": [
          "nodeid101010101010101010101010101010101010101010101010101010101010",
          "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000201000"
        ]
      },
      "response": {
        "channel_id": "channelid0910109101091010910109101091010910109101091010910109101",
        "commitments_secured": true
      }
    },
    {
      "request": {
        "id": "example:fundchannel_complete#2",
        "method": "fundchannel_complete",
        "params": {
          "id": "nodeid101010101010101010101010101010101010101010101010101010101010",
          "psbt": "cHNidP8BAgQCAAAAAQMEbwAAAAEEAQpsbt401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000401000"
        }
      },
      "response": {
        "channel_id": "channelid0910209102091020910209102091020910209102091020910209102",
        "commitments_secured": true
      }
    }
  ]
}
