syntax = "proto3"; package cln; // This file was automatically derived from the JSON-RPC schemas in // `doc/schemas`. Do not edit this file manually as it would get // overwritten. import "primitives.proto"; service Node { rpc Getinfo(GetinfoRequest) returns (GetinfoResponse) {} rpc ListPeers(ListpeersRequest) returns (ListpeersResponse) {} rpc ListFunds(ListfundsRequest) returns (ListfundsResponse) {} rpc SendPay(SendpayRequest) returns (SendpayResponse) {} rpc ListChannels(ListchannelsRequest) returns (ListchannelsResponse) {} rpc AddGossip(AddgossipRequest) returns (AddgossipResponse) {} rpc AutoCleanInvoice(AutocleaninvoiceRequest) returns (AutocleaninvoiceResponse) {} rpc CheckMessage(CheckmessageRequest) returns (CheckmessageResponse) {} rpc Close(CloseRequest) returns (CloseResponse) {} rpc ConnectPeer(ConnectRequest) returns (ConnectResponse) {} rpc CreateInvoice(CreateinvoiceRequest) returns (CreateinvoiceResponse) {} rpc Datastore(DatastoreRequest) returns (DatastoreResponse) {} rpc CreateOnion(CreateonionRequest) returns (CreateonionResponse) {} rpc DelDatastore(DeldatastoreRequest) returns (DeldatastoreResponse) {} rpc DelExpiredInvoice(DelexpiredinvoiceRequest) returns (DelexpiredinvoiceResponse) {} rpc DelInvoice(DelinvoiceRequest) returns (DelinvoiceResponse) {} rpc Invoice(InvoiceRequest) returns (InvoiceResponse) {} rpc ListDatastore(ListdatastoreRequest) returns (ListdatastoreResponse) {} rpc ListInvoices(ListinvoicesRequest) returns (ListinvoicesResponse) {} rpc SendOnion(SendonionRequest) returns (SendonionResponse) {} rpc ListSendPays(ListsendpaysRequest) returns (ListsendpaysResponse) {} rpc ListTransactions(ListtransactionsRequest) returns (ListtransactionsResponse) {} rpc Pay(PayRequest) returns (PayResponse) {} rpc ListNodes(ListnodesRequest) returns (ListnodesResponse) {} rpc WaitAnyInvoice(WaitanyinvoiceRequest) returns (WaitanyinvoiceResponse) {} rpc WaitInvoice(WaitinvoiceRequest) returns (WaitinvoiceResponse) {} rpc WaitSendPay(WaitsendpayRequest) returns (WaitsendpayResponse) {} rpc NewAddr(NewaddrRequest) returns (NewaddrResponse) {} rpc Withdraw(WithdrawRequest) returns (WithdrawResponse) {} rpc KeySend(KeysendRequest) returns (KeysendResponse) {} rpc FundPsbt(FundpsbtRequest) returns (FundpsbtResponse) {} rpc SendPsbt(SendpsbtRequest) returns (SendpsbtResponse) {} rpc SignPsbt(SignpsbtRequest) returns (SignpsbtResponse) {} rpc UtxoPsbt(UtxopsbtRequest) returns (UtxopsbtResponse) {} rpc TxDiscard(TxdiscardRequest) returns (TxdiscardResponse) {} rpc TxPrepare(TxprepareRequest) returns (TxprepareResponse) {} rpc TxSend(TxsendRequest) returns (TxsendResponse) {} rpc Disconnect(DisconnectRequest) returns (DisconnectResponse) {} rpc Feerates(FeeratesRequest) returns (FeeratesResponse) {} rpc GetRoute(GetrouteRequest) returns (GetrouteResponse) {} rpc ListForwards(ListforwardsRequest) returns (ListforwardsResponse) {} rpc ListPays(ListpaysRequest) returns (ListpaysResponse) {} rpc Ping(PingRequest) returns (PingResponse) {} rpc SignMessage(SignmessageRequest) returns (SignmessageResponse) {} } message GetinfoRequest { } message GetinfoResponse { bytes id = 1; string alias = 2; bytes color = 3; uint32 num_peers = 4; uint32 num_pending_channels = 5; uint32 num_active_channels = 6; uint32 num_inactive_channels = 7; string version = 8; string lightning_dir = 9; uint32 blockheight = 11; string network = 12; Amount fees_collected_msat = 13; repeated GetinfoAddress address = 14; repeated GetinfoBinding binding = 15; optional string warning_bitcoind_sync = 16; optional string warning_lightningd_sync = 17; } message GetinfoOur_features { bytes init = 1; bytes node = 2; bytes channel = 3; bytes invoice = 4; } message GetinfoAddress { // Getinfo.address[].type enum GetinfoAddressType { DNS = 0; IPV4 = 1; IPV6 = 2; TORV2 = 3; TORV3 = 4; WEBSOCKET = 5; } GetinfoAddressType item_type = 1; uint32 port = 2; optional string address = 3; } message GetinfoBinding { // Getinfo.binding[].type enum GetinfoBindingType { LOCAL_SOCKET = 0; IPV4 = 1; IPV6 = 2; TORV2 = 3; TORV3 = 4; } GetinfoBindingType item_type = 1; optional string address = 2; optional uint32 port = 3; optional string socket = 4; } message ListpeersRequest { optional bytes id = 1; optional string level = 2; } message ListpeersResponse { repeated ListpeersPeers peers = 1; } message ListpeersPeers { bytes id = 1; bool connected = 2; repeated ListpeersPeersLog log = 3; repeated ListpeersPeersChannels channels = 4; repeated string netaddr = 5; optional string remote_addr = 7; optional bytes features = 6; } message ListpeersPeersLog { // ListPeers.peers[].log[].type enum ListpeersPeersLogType { SKIPPED = 0; BROKEN = 1; UNUSUAL = 2; INFO = 3; DEBUG = 4; IO_IN = 5; IO_OUT = 6; } ListpeersPeersLogType item_type = 1; optional uint32 num_skipped = 2; optional string time = 3; optional string source = 4; optional string log = 5; optional bytes node_id = 6; optional bytes data = 7; } message ListpeersPeersChannels { // ListPeers.peers[].channels[].state enum ListpeersPeersChannelsState { OPENINGD = 0; CHANNELD_AWAITING_LOCKIN = 1; CHANNELD_NORMAL = 2; CHANNELD_SHUTTING_DOWN = 3; CLOSINGD_SIGEXCHANGE = 4; CLOSINGD_COMPLETE = 5; AWAITING_UNILATERAL = 6; FUNDING_SPEND_SEEN = 7; ONCHAIN = 8; DUALOPEND_OPEN_INIT = 9; DUALOPEND_AWAITING_LOCKIN = 10; } ListpeersPeersChannelsState state = 1; optional bytes scratch_txid = 2; optional string owner = 4; optional string short_channel_id = 5; optional bytes channel_id = 6; optional bytes funding_txid = 7; optional uint32 funding_outnum = 8; optional string initial_feerate = 9; optional string last_feerate = 10; optional string next_feerate = 11; optional uint32 next_fee_step = 12; repeated ListpeersPeersChannelsInflight inflight = 13; optional bytes close_to = 14; optional bool private = 15; ChannelSide opener = 16; optional ChannelSide closer = 17; repeated string features = 18; optional Amount to_us_msat = 20; optional Amount min_to_us_msat = 21; optional Amount max_to_us_msat = 22; optional Amount total_msat = 23; optional Amount fee_base_msat = 24; optional uint32 fee_proportional_millionths = 25; optional Amount dust_limit_msat = 26; optional Amount max_total_htlc_in_msat = 27; optional Amount their_reserve_msat = 28; optional Amount our_reserve_msat = 29; optional Amount spendable_msat = 30; optional Amount receivable_msat = 31; optional Amount minimum_htlc_in_msat = 32; optional Amount minimum_htlc_out_msat = 48; optional Amount maximum_htlc_out_msat = 49; optional uint32 their_to_self_delay = 33; optional uint32 our_to_self_delay = 34; optional uint32 max_accepted_htlcs = 35; repeated string status = 37; optional uint64 in_payments_offered = 38; optional Amount in_offered_msat = 39; optional uint64 in_payments_fulfilled = 40; optional Amount in_fulfilled_msat = 41; optional uint64 out_payments_offered = 42; optional Amount out_offered_msat = 43; optional uint64 out_payments_fulfilled = 44; optional Amount out_fulfilled_msat = 45; repeated ListpeersPeersChannelsHtlcs htlcs = 46; optional string close_to_addr = 47; } message ListpeersPeersChannelsFeerate { uint32 perkw = 1; uint32 perkb = 2; } message ListpeersPeersChannelsInflight { bytes funding_txid = 1; uint32 funding_outnum = 2; string feerate = 3; Amount total_funding_msat = 4; Amount our_funding_msat = 5; bytes scratch_txid = 6; } message ListpeersPeersChannelsFunding { Amount local_msat = 1; Amount remote_msat = 2; Amount pushed_msat = 3; } message ListpeersPeersChannelsAlias { optional string local = 1; optional string remote = 2; } message ListpeersPeersChannelsHtlcs { // ListPeers.peers[].channels[].htlcs[].direction enum ListpeersPeersChannelsHtlcsDirection { IN = 0; OUT = 1; } ListpeersPeersChannelsHtlcsDirection direction = 1; uint64 id = 2; Amount amount_msat = 3; uint32 expiry = 4; bytes payment_hash = 5; optional bool local_trimmed = 6; optional string status = 7; } message ListfundsRequest { optional bool spent = 1; } message ListfundsResponse { repeated ListfundsOutputs outputs = 1; repeated ListfundsChannels channels = 2; } message ListfundsOutputs { // ListFunds.outputs[].status enum ListfundsOutputsStatus { UNCONFIRMED = 0; CONFIRMED = 1; SPENT = 2; } bytes txid = 1; uint32 output = 2; Amount amount_msat = 3; bytes scriptpubkey = 4; optional string address = 5; optional bytes redeemscript = 6; ListfundsOutputsStatus status = 7; bool reserved = 9; optional uint32 blockheight = 8; } message ListfundsChannels { bytes peer_id = 1; Amount our_amount_msat = 2; Amount amount_msat = 3; bytes funding_txid = 4; uint32 funding_output = 5; bool connected = 6; ChannelState state = 7; optional string short_channel_id = 8; } message SendpayRequest { repeated SendpayRoute route = 1; bytes payment_hash = 2; optional string label = 3; optional Amount amount_msat = 10; optional string bolt11 = 5; optional bytes payment_secret = 6; optional uint32 partid = 7; optional bytes localofferid = 8; optional uint64 groupid = 9; } message SendpayResponse { // SendPay.status enum SendpayStatus { PENDING = 0; COMPLETE = 1; } uint64 id = 1; optional uint64 groupid = 2; bytes payment_hash = 3; SendpayStatus status = 4; optional Amount amount_msat = 5; optional bytes destination = 6; uint64 created_at = 7; Amount amount_sent_msat = 8; optional string label = 9; optional uint64 partid = 10; optional string bolt11 = 11; optional string bolt12 = 12; optional bytes payment_preimage = 13; optional string message = 14; } message SendpayRoute { Amount amount_msat = 5; bytes id = 2; uint32 delay = 3; string channel = 4; } message ListchannelsRequest { optional string short_channel_id = 1; optional bytes source = 2; optional bytes destination = 3; } message ListchannelsResponse { repeated ListchannelsChannels channels = 1; } message ListchannelsChannels { bytes source = 1; bytes destination = 2; string short_channel_id = 3; bool public = 4; Amount amount_msat = 5; uint32 message_flags = 6; uint32 channel_flags = 7; bool active = 8; uint32 last_update = 9; uint32 base_fee_millisatoshi = 10; uint32 fee_per_millionth = 11; uint32 delay = 12; Amount htlc_minimum_msat = 13; optional Amount htlc_maximum_msat = 14; bytes features = 15; } message AddgossipRequest { bytes message = 1; } message AddgossipResponse { } message AutocleaninvoiceRequest { optional uint64 expired_by = 1; optional uint64 cycle_seconds = 2; } message AutocleaninvoiceResponse { bool enabled = 1; optional uint64 expired_by = 2; optional uint64 cycle_seconds = 3; } message CheckmessageRequest { string message = 1; string zbase = 2; optional bytes pubkey = 3; } message CheckmessageResponse { bool verified = 1; optional bytes pubkey = 2; } message CloseRequest { string id = 1; optional uint32 unilateraltimeout = 2; optional string destination = 3; optional string fee_negotiation_step = 4; optional bytes wrong_funding = 5; optional bool force_lease_closed = 6; repeated Feerate feerange = 7; } message CloseResponse { // Close.type enum CloseType { MUTUAL = 0; UNILATERAL = 1; UNOPENED = 2; } CloseType item_type = 1; optional bytes tx = 2; optional bytes txid = 3; } message ConnectRequest { string id = 1; optional string host = 2; optional uint32 port = 3; } message ConnectResponse { // Connect.direction enum ConnectDirection { IN = 0; OUT = 1; } bytes id = 1; bytes features = 2; ConnectDirection direction = 3; } message ConnectAddress { // Connect.address.type enum ConnectAddressType { LOCAL_SOCKET = 0; IPV4 = 1; IPV6 = 2; TORV2 = 3; TORV3 = 4; } ConnectAddressType item_type = 1; optional string socket = 2; optional string address = 3; optional uint32 port = 4; } message CreateinvoiceRequest { string invstring = 1; string label = 2; bytes preimage = 3; } message CreateinvoiceResponse { // CreateInvoice.status enum CreateinvoiceStatus { PAID = 0; EXPIRED = 1; UNPAID = 2; } string label = 1; optional string bolt11 = 2; optional string bolt12 = 3; bytes payment_hash = 4; optional Amount amount_msat = 5; CreateinvoiceStatus status = 6; string description = 7; uint64 expires_at = 8; optional uint64 pay_index = 9; optional Amount amount_received_msat = 10; optional uint64 paid_at = 11; optional bytes payment_preimage = 12; optional bytes local_offer_id = 13; optional string payer_note = 14; } message DatastoreRequest { // Datastore.mode enum DatastoreMode { MUST_CREATE = 0; MUST_REPLACE = 1; CREATE_OR_REPLACE = 2; MUST_APPEND = 3; CREATE_OR_APPEND = 4; } repeated string key = 5; optional string string = 6; optional bytes hex = 2; optional DatastoreMode mode = 3; optional uint64 generation = 4; } message DatastoreResponse { repeated string key = 5; optional uint64 generation = 2; optional bytes hex = 3; optional string string = 4; } message CreateonionRequest { repeated CreateonionHops hops = 1; bytes assocdata = 2; optional bytes session_key = 3; optional uint32 onion_size = 4; } message CreateonionResponse { bytes onion = 1; repeated bytes shared_secrets = 2; } message CreateonionHops { bytes pubkey = 1; bytes payload = 2; } message DeldatastoreRequest { repeated string key = 3; optional uint64 generation = 2; } message DeldatastoreResponse { repeated string key = 5; optional uint64 generation = 2; optional bytes hex = 3; optional string string = 4; } message DelexpiredinvoiceRequest { optional uint64 maxexpirytime = 1; } message DelexpiredinvoiceResponse { } message DelinvoiceRequest { // DelInvoice.status enum DelinvoiceStatus { PAID = 0; EXPIRED = 1; UNPAID = 2; } string label = 1; DelinvoiceStatus status = 2; optional bool desconly = 3; } message DelinvoiceResponse { // DelInvoice.status enum DelinvoiceStatus { PAID = 0; EXPIRED = 1; UNPAID = 2; } string label = 1; optional string bolt11 = 2; optional string bolt12 = 3; optional Amount amount_msat = 4; optional string description = 5; bytes payment_hash = 6; DelinvoiceStatus status = 7; uint64 expires_at = 8; optional bytes local_offer_id = 9; optional string payer_note = 10; } message InvoiceRequest { AmountOrAny amount_msat = 10; string description = 2; string label = 3; optional uint64 expiry = 7; repeated string fallbacks = 4; optional bytes preimage = 5; optional bool exposeprivatechannels = 8; optional uint32 cltv = 6; optional bool deschashonly = 9; } message InvoiceResponse { string bolt11 = 1; bytes payment_hash = 2; bytes payment_secret = 3; uint64 expires_at = 4; optional string warning_capacity = 5; optional string warning_offline = 6; optional string warning_deadends = 7; optional string warning_private_unused = 8; optional string warning_mpp = 9; } message ListdatastoreRequest { repeated string key = 2; } message ListdatastoreResponse { repeated ListdatastoreDatastore datastore = 1; } message ListdatastoreDatastore { repeated string key = 1; optional uint64 generation = 2; optional bytes hex = 3; optional string string = 4; } message ListinvoicesRequest { optional string label = 1; optional string invstring = 2; optional bytes payment_hash = 3; optional string offer_id = 4; } message ListinvoicesResponse { repeated ListinvoicesInvoices invoices = 1; } message ListinvoicesInvoices { // ListInvoices.invoices[].status enum ListinvoicesInvoicesStatus { UNPAID = 0; PAID = 1; EXPIRED = 2; } string label = 1; optional string description = 2; bytes payment_hash = 3; ListinvoicesInvoicesStatus status = 4; uint64 expires_at = 5; optional Amount amount_msat = 6; optional string bolt11 = 7; optional string bolt12 = 8; optional bytes local_offer_id = 9; optional string payer_note = 10; optional uint64 pay_index = 11; optional Amount amount_received_msat = 12; optional uint64 paid_at = 13; optional bytes payment_preimage = 14; } message SendonionRequest { bytes onion = 1; bytes payment_hash = 3; optional string label = 4; repeated bytes shared_secrets = 5; optional uint32 partid = 6; optional string bolt11 = 7; optional Amount amount_msat = 12; optional bytes destination = 9; optional bytes localofferid = 10; optional uint64 groupid = 11; } message SendonionResponse { // SendOnion.status enum SendonionStatus { PENDING = 0; COMPLETE = 1; } uint64 id = 1; bytes payment_hash = 2; SendonionStatus status = 3; optional Amount amount_msat = 4; optional bytes destination = 5; uint64 created_at = 6; Amount amount_sent_msat = 7; optional string label = 8; optional string bolt11 = 9; optional string bolt12 = 10; optional uint64 partid = 13; optional bytes payment_preimage = 11; optional string message = 12; } message SendonionFirst_hop { bytes id = 1; Amount amount_msat = 2; uint32 delay = 3; } message ListsendpaysRequest { // ListSendPays.status enum ListsendpaysStatus { PENDING = 0; COMPLETE = 1; FAILED = 2; } optional string bolt11 = 1; optional bytes payment_hash = 2; optional ListsendpaysStatus status = 3; } message ListsendpaysResponse { repeated ListsendpaysPayments payments = 1; } message ListsendpaysPayments { // ListSendPays.payments[].status enum ListsendpaysPaymentsStatus { PENDING = 0; FAILED = 1; COMPLETE = 2; } uint64 id = 1; optional uint64 groupid = 2; bytes payment_hash = 3; ListsendpaysPaymentsStatus status = 4; optional Amount amount_msat = 5; optional bytes destination = 6; uint64 created_at = 7; Amount amount_sent_msat = 8; optional string label = 9; optional string bolt11 = 10; optional string description = 14; optional string bolt12 = 11; optional bytes payment_preimage = 12; optional bytes erroronion = 13; } message ListtransactionsRequest { } message ListtransactionsResponse { repeated ListtransactionsTransactions transactions = 1; } message ListtransactionsTransactions { bytes hash = 1; bytes rawtx = 2; uint32 blockheight = 3; uint32 txindex = 4; optional string channel = 6; uint32 locktime = 7; uint32 version = 8; repeated ListtransactionsTransactionsInputs inputs = 9; repeated ListtransactionsTransactionsOutputs outputs = 10; } message ListtransactionsTransactionsInputs { // ListTransactions.transactions[].inputs[].type enum ListtransactionsTransactionsInputsType { THEIRS = 0; DEPOSIT = 1; WITHDRAW = 2; CHANNEL_FUNDING = 3; CHANNEL_MUTUAL_CLOSE = 4; CHANNEL_UNILATERAL_CLOSE = 5; CHANNEL_SWEEP = 6; CHANNEL_HTLC_SUCCESS = 7; CHANNEL_HTLC_TIMEOUT = 8; CHANNEL_PENALTY = 9; CHANNEL_UNILATERAL_CHEAT = 10; } bytes txid = 1; uint32 index = 2; uint32 sequence = 3; optional ListtransactionsTransactionsInputsType item_type = 4; optional string channel = 5; } message ListtransactionsTransactionsOutputs { // ListTransactions.transactions[].outputs[].type enum ListtransactionsTransactionsOutputsType { THEIRS = 0; DEPOSIT = 1; WITHDRAW = 2; CHANNEL_FUNDING = 3; CHANNEL_MUTUAL_CLOSE = 4; CHANNEL_UNILATERAL_CLOSE = 5; CHANNEL_SWEEP = 6; CHANNEL_HTLC_SUCCESS = 7; CHANNEL_HTLC_TIMEOUT = 8; CHANNEL_PENALTY = 9; CHANNEL_UNILATERAL_CHEAT = 10; } uint32 index = 1; Amount amount_msat = 6; bytes scriptPubKey = 3; optional ListtransactionsTransactionsOutputsType item_type = 4; optional string channel = 5; } message PayRequest { string bolt11 = 1; optional Amount amount_msat = 13; optional string label = 3; optional double riskfactor = 8; optional double maxfeepercent = 4; optional uint32 retry_for = 5; optional uint32 maxdelay = 6; optional Amount exemptfee = 7; optional bytes localofferid = 9; repeated string exclude = 10; optional Amount maxfee = 11; optional string description = 12; } message PayResponse { // Pay.status enum PayStatus { COMPLETE = 0; PENDING = 1; FAILED = 2; } bytes payment_preimage = 1; optional bytes destination = 2; bytes payment_hash = 3; double created_at = 4; uint32 parts = 5; Amount amount_msat = 6; Amount amount_sent_msat = 7; optional string warning_partial_completion = 8; PayStatus status = 9; } message ListnodesRequest { optional bytes id = 1; } message ListnodesResponse { repeated ListnodesNodes nodes = 1; } message ListnodesNodes { bytes nodeid = 1; optional uint32 last_timestamp = 2; optional string alias = 3; optional bytes color = 4; optional bytes features = 5; repeated ListnodesNodesAddresses addresses = 6; } message ListnodesNodesAddresses { // ListNodes.nodes[].addresses[].type enum ListnodesNodesAddressesType { DNS = 0; IPV4 = 1; IPV6 = 2; TORV2 = 3; TORV3 = 4; WEBSOCKET = 5; } ListnodesNodesAddressesType item_type = 1; uint32 port = 2; optional string address = 3; } message WaitanyinvoiceRequest { optional uint64 lastpay_index = 1; optional uint64 timeout = 2; } message WaitanyinvoiceResponse { // WaitAnyInvoice.status enum WaitanyinvoiceStatus { PAID = 0; EXPIRED = 1; } string label = 1; string description = 2; bytes payment_hash = 3; WaitanyinvoiceStatus status = 4; uint64 expires_at = 5; optional Amount amount_msat = 6; optional string bolt11 = 7; optional string bolt12 = 8; optional uint64 pay_index = 9; optional Amount amount_received_msat = 10; optional uint64 paid_at = 11; optional bytes payment_preimage = 12; } message WaitinvoiceRequest { string label = 1; } message WaitinvoiceResponse { // WaitInvoice.status enum WaitinvoiceStatus { PAID = 0; EXPIRED = 1; } string label = 1; string description = 2; bytes payment_hash = 3; WaitinvoiceStatus status = 4; uint64 expires_at = 5; optional Amount amount_msat = 6; optional string bolt11 = 7; optional string bolt12 = 8; optional uint64 pay_index = 9; optional Amount amount_received_msat = 10; optional uint64 paid_at = 11; optional bytes payment_preimage = 12; } message WaitsendpayRequest { bytes payment_hash = 1; optional uint32 timeout = 3; optional uint64 partid = 2; optional uint64 groupid = 4; } message WaitsendpayResponse { // WaitSendPay.status enum WaitsendpayStatus { COMPLETE = 0; } uint64 id = 1; optional uint64 groupid = 2; bytes payment_hash = 3; WaitsendpayStatus status = 4; optional Amount amount_msat = 5; optional bytes destination = 6; uint64 created_at = 7; Amount amount_sent_msat = 8; optional string label = 9; optional uint64 partid = 10; optional string bolt11 = 11; optional string bolt12 = 12; optional bytes payment_preimage = 13; } message NewaddrRequest { // NewAddr.addresstype enum NewaddrAddresstype { BECH32 = 0; P2SH_SEGWIT = 1; ALL = 2; } optional NewaddrAddresstype addresstype = 1; } message NewaddrResponse { optional string bech32 = 1; optional string p2sh_segwit = 2; } message WithdrawRequest { string destination = 1; optional AmountOrAll satoshi = 2; optional Feerate feerate = 5; optional uint32 minconf = 3; repeated Outpoint utxos = 4; } message WithdrawResponse { bytes tx = 1; bytes txid = 2; string psbt = 3; } message KeysendRequest { bytes destination = 1; Amount amount_msat = 10; optional string label = 3; optional double maxfeepercent = 4; optional uint32 retry_for = 5; optional uint32 maxdelay = 6; optional Amount exemptfee = 7; optional RoutehintList routehints = 8; } message KeysendResponse { // KeySend.status enum KeysendStatus { COMPLETE = 0; } bytes payment_preimage = 1; optional bytes destination = 2; bytes payment_hash = 3; double created_at = 4; uint32 parts = 5; Amount amount_msat = 6; Amount amount_sent_msat = 7; optional string warning_partial_completion = 8; KeysendStatus status = 9; } message KeysendExtratlvs { } message FundpsbtRequest { Amount satoshi = 1; Feerate feerate = 2; uint32 startweight = 3; optional uint32 minconf = 4; optional uint32 reserve = 5; optional uint32 locktime = 6; optional uint32 min_witness_weight = 7; optional bool excess_as_change = 8; } message FundpsbtResponse { string psbt = 1; uint32 feerate_per_kw = 2; uint32 estimated_final_weight = 3; Amount excess_msat = 4; optional uint32 change_outnum = 5; repeated FundpsbtReservations reservations = 6; } message FundpsbtReservations { bytes txid = 1; uint32 vout = 2; bool was_reserved = 3; bool reserved = 4; uint32 reserved_to_block = 5; } message SendpsbtRequest { string psbt = 1; optional bool reserve = 2; } message SendpsbtResponse { bytes tx = 1; bytes txid = 2; } message SignpsbtRequest { string psbt = 1; repeated uint32 signonly = 2; } message SignpsbtResponse { string signed_psbt = 1; } message UtxopsbtRequest { Amount satoshi = 1; Feerate feerate = 2; uint32 startweight = 3; repeated Outpoint utxos = 4; optional uint32 reserve = 5; optional bool reservedok = 8; optional uint32 locktime = 6; optional uint32 min_witness_weight = 7; optional bool excess_as_change = 9; } message UtxopsbtResponse { string psbt = 1; uint32 feerate_per_kw = 2; uint32 estimated_final_weight = 3; Amount excess_msat = 4; optional uint32 change_outnum = 5; repeated UtxopsbtReservations reservations = 6; } message UtxopsbtReservations { bytes txid = 1; uint32 vout = 2; bool was_reserved = 3; bool reserved = 4; uint32 reserved_to_block = 5; } message TxdiscardRequest { bytes txid = 1; } message TxdiscardResponse { bytes unsigned_tx = 1; bytes txid = 2; } message TxprepareRequest { repeated OutputDesc outputs = 5; optional Feerate feerate = 2; optional uint32 minconf = 3; repeated Outpoint utxos = 4; } message TxprepareResponse { string psbt = 1; bytes unsigned_tx = 2; bytes txid = 3; } message TxsendRequest { bytes txid = 1; } message TxsendResponse { string psbt = 1; bytes tx = 2; bytes txid = 3; } message DisconnectRequest { bytes id = 1; optional bool force = 2; } message DisconnectResponse { } message FeeratesRequest { // Feerates.style enum FeeratesStyle { PERKB = 0; PERKW = 1; } FeeratesStyle style = 1; } message FeeratesResponse { optional string warning_missing_feerates = 1; } message FeeratesPerkb { uint32 min_acceptable = 1; uint32 max_acceptable = 2; optional uint32 opening = 3; optional uint32 mutual_close = 4; optional uint32 unilateral_close = 5; optional uint32 delayed_to_us = 6; optional uint32 htlc_resolution = 7; optional uint32 penalty = 8; } message FeeratesPerkw { uint32 min_acceptable = 1; uint32 max_acceptable = 2; optional uint32 opening = 3; optional uint32 mutual_close = 4; optional uint32 unilateral_close = 5; optional uint32 delayed_to_us = 6; optional uint32 htlc_resolution = 7; optional uint32 penalty = 8; } message FeeratesOnchain_fee_estimates { uint64 opening_channel_satoshis = 1; uint64 mutual_close_satoshis = 2; uint64 unilateral_close_satoshis = 3; uint64 htlc_timeout_satoshis = 4; uint64 htlc_success_satoshis = 5; } message GetrouteRequest { bytes id = 1; Amount amount_msat = 9; uint64 riskfactor = 3; optional double cltv = 4; optional bytes fromid = 5; optional uint32 fuzzpercent = 6; repeated string exclude = 7; optional uint32 maxhops = 8; } message GetrouteResponse { repeated GetrouteRoute route = 1; } message GetrouteRoute { // GetRoute.route[].style enum GetrouteRouteStyle { TLV = 0; } bytes id = 1; string channel = 2; uint32 direction = 3; Amount amount_msat = 4; uint32 delay = 5; GetrouteRouteStyle style = 6; } message ListforwardsRequest { // ListForwards.status enum ListforwardsStatus { OFFERED = 0; SETTLED = 1; LOCAL_FAILED = 2; FAILED = 3; } optional ListforwardsStatus status = 1; optional string in_channel = 2; optional string out_channel = 3; } message ListforwardsResponse { repeated ListforwardsForwards forwards = 1; } message ListforwardsForwards { // ListForwards.forwards[].status enum ListforwardsForwardsStatus { OFFERED = 0; SETTLED = 1; LOCAL_FAILED = 2; FAILED = 3; } // ListForwards.forwards[].style enum ListforwardsForwardsStyle { LEGACY = 0; TLV = 1; } string in_channel = 1; Amount in_msat = 2; ListforwardsForwardsStatus status = 3; double received_time = 4; optional string out_channel = 5; optional bytes payment_hash = 6; optional ListforwardsForwardsStyle style = 9; optional Amount fee_msat = 7; optional Amount out_msat = 8; } message ListpaysRequest { // ListPays.status enum ListpaysStatus { PENDING = 0; COMPLETE = 1; FAILED = 2; } optional string bolt11 = 1; optional bytes payment_hash = 2; optional ListpaysStatus status = 3; } message ListpaysResponse { repeated ListpaysPays pays = 1; } message ListpaysPays { // ListPays.pays[].status enum ListpaysPaysStatus { PENDING = 0; FAILED = 1; COMPLETE = 2; } bytes payment_hash = 1; ListpaysPaysStatus status = 2; optional bytes destination = 3; uint64 created_at = 4; optional string label = 5; optional string bolt11 = 6; optional string description = 11; optional string bolt12 = 7; optional Amount amount_msat = 8; optional Amount amount_sent_msat = 9; optional bytes erroronion = 10; } message PingRequest { bytes id = 1; optional double len = 2; optional double pongbytes = 3; } message PingResponse { uint32 totlen = 1; } message SignmessageRequest { string message = 1; } message SignmessageResponse { bytes signature = 1; bytes recid = 2; string zbase = 3; }