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 ListPeerChannels(ListpeerchannelsRequest) returns (ListpeerchannelsResponse) {} rpc ListClosedChannels(ListclosedchannelsRequest) returns (ListclosedchannelsResponse) {} rpc DecodePay(DecodepayRequest) returns (DecodepayResponse) {} rpc Decode(DecodeRequest) returns (DecodeResponse) {} rpc Disconnect(DisconnectRequest) returns (DisconnectResponse) {} rpc Feerates(FeeratesRequest) returns (FeeratesResponse) {} rpc FundChannel(FundchannelRequest) returns (FundchannelResponse) {} rpc GetRoute(GetrouteRequest) returns (GetrouteResponse) {} rpc ListForwards(ListforwardsRequest) returns (ListforwardsResponse) {} rpc ListPays(ListpaysRequest) returns (ListpaysResponse) {} rpc Ping(PingRequest) returns (PingResponse) {} rpc SendCustomMsg(SendcustommsgRequest) returns (SendcustommsgResponse) {} rpc SetChannel(SetchannelRequest) returns (SetchannelResponse) {} rpc SignInvoice(SigninvoiceRequest) returns (SigninvoiceResponse) {} rpc SignMessage(SignmessageRequest) returns (SignmessageResponse) {} rpc Stop(StopRequest) returns (StopResponse) {} rpc PreApproveKeysend(PreapprovekeysendRequest) returns (PreapprovekeysendResponse) {} rpc PreApproveInvoice(PreapproveinvoiceRequest) returns (PreapproveinvoiceResponse) {} } message GetinfoRequest { } message GetinfoResponse { bytes id = 1; optional 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; optional GetinfoOur_features our_features = 10; 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; } GetinfoAddressType item_type = 1; uint32 port = 2; optional string address = 3; } message GetinfoBinding { // Getinfo.binding[].type enum GetinfoBindingType { LOCAL_SOCKET = 0; WEBSOCKET = 5; 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; optional uint32 num_channels = 8; 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 ListpeersPeersChannelsFeerate feerate = 3; 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 ListpeersPeersChannelsFunding funding = 19; 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; optional ListpeersPeersChannelsAlias alias = 50; 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 { optional Amount pushed_msat = 3; Amount local_funds_msat = 4; Amount remote_funds_msat = 7; optional Amount fee_paid_msat = 5; optional Amount fee_rcvd_msat = 6; } 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; HtlcState state = 8; } 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; IMMATURE = 3; } 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 bytes channel_id = 9; 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 localinvreqid = 11; 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; optional uint64 completed_at = 15; 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; uint32 direction = 16; 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; bytes pubkey = 2; } message CloseRequest { string id = 1; optional uint32 unilateraltimeout = 2; optional string destination = 3; optional string fee_negotiation_step = 4; optional Outpoint 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; ConnectAddress address = 4; } 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 invreq_payer_note = 15; } 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 invreq_payer_note = 11; } 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 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 invreq_payer_note = 15; 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; SendonionFirst_hop first_hop = 2; 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 localinvreqid = 13; 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; uint64 groupid = 2; optional uint64 partid = 15; 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; uint32 locktime = 7; uint32 version = 8; repeated ListtransactionsTransactionsInputs inputs = 9; repeated ListtransactionsTransactionsOutputs outputs = 10; } message ListtransactionsTransactionsInputs { bytes txid = 1; uint32 index = 2; uint32 sequence = 3; } message ListtransactionsTransactionsOutputs { uint32 index = 1; Amount amount_msat = 6; bytes scriptPubKey = 3; } 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 localinvreqid = 14; 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; } 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; optional double completed_at = 14; 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; 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; optional TlvStream extratlvs = 9; } 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 FundpsbtRequest { AmountOrAll 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; optional bool nonwrapped = 9; optional bool opening_anchor_channel = 10; } 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; optional bool opening_anchor_channel = 10; } 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 ListpeerchannelsRequest { optional bytes id = 1; } message ListpeerchannelsResponse { repeated ListpeerchannelsChannels channels = 1; } message ListpeerchannelsChannels { // ListPeerChannels.channels[].state enum ListpeerchannelsChannelsState { 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; } optional bytes peer_id = 1; optional bool peer_connected = 2; optional ListpeerchannelsChannelsState state = 3; optional bytes scratch_txid = 4; optional ListpeerchannelsChannelsFeerate feerate = 6; optional string owner = 7; optional string short_channel_id = 8; optional bytes channel_id = 9; optional bytes funding_txid = 10; optional uint32 funding_outnum = 11; optional string initial_feerate = 12; optional string last_feerate = 13; optional string next_feerate = 14; optional uint32 next_fee_step = 15; repeated ListpeerchannelsChannelsInflight inflight = 16; optional bytes close_to = 17; optional bool private = 18; optional ChannelSide opener = 19; optional ChannelSide closer = 20; optional ListpeerchannelsChannelsFunding funding = 22; optional Amount to_us_msat = 23; optional Amount min_to_us_msat = 24; optional Amount max_to_us_msat = 25; optional Amount total_msat = 26; optional Amount fee_base_msat = 27; optional uint32 fee_proportional_millionths = 28; optional Amount dust_limit_msat = 29; optional Amount max_total_htlc_in_msat = 30; optional Amount their_reserve_msat = 31; optional Amount our_reserve_msat = 32; optional Amount spendable_msat = 33; optional Amount receivable_msat = 34; optional Amount minimum_htlc_in_msat = 35; optional Amount minimum_htlc_out_msat = 36; optional Amount maximum_htlc_out_msat = 37; optional uint32 their_to_self_delay = 38; optional uint32 our_to_self_delay = 39; optional uint32 max_accepted_htlcs = 40; optional ListpeerchannelsChannelsAlias alias = 41; repeated string status = 43; optional uint64 in_payments_offered = 44; optional Amount in_offered_msat = 45; optional uint64 in_payments_fulfilled = 46; optional Amount in_fulfilled_msat = 47; optional uint64 out_payments_offered = 48; optional Amount out_offered_msat = 49; optional uint64 out_payments_fulfilled = 50; optional Amount out_fulfilled_msat = 51; repeated ListpeerchannelsChannelsHtlcs htlcs = 52; optional string close_to_addr = 53; } message ListpeerchannelsChannelsFeerate { optional uint32 perkw = 1; optional uint32 perkb = 2; } message ListpeerchannelsChannelsInflight { optional bytes funding_txid = 1; optional uint32 funding_outnum = 2; optional string feerate = 3; optional Amount total_funding_msat = 4; optional Amount our_funding_msat = 5; optional bytes scratch_txid = 6; } message ListpeerchannelsChannelsFunding { optional Amount pushed_msat = 1; optional Amount local_funds_msat = 2; optional Amount remote_funds_msat = 3; optional Amount fee_paid_msat = 4; optional Amount fee_rcvd_msat = 5; } message ListpeerchannelsChannelsAlias { optional string local = 1; optional string remote = 2; } message ListpeerchannelsChannelsHtlcs { // ListPeerChannels.channels[].htlcs[].direction enum ListpeerchannelsChannelsHtlcsDirection { IN = 0; OUT = 1; } optional ListpeerchannelsChannelsHtlcsDirection direction = 1; optional uint64 id = 2; optional Amount amount_msat = 3; optional uint32 expiry = 4; optional bytes payment_hash = 5; optional bool local_trimmed = 6; optional string status = 7; optional HtlcState state = 8; } message ListclosedchannelsRequest { optional bytes id = 1; } message ListclosedchannelsResponse { repeated ListclosedchannelsClosedchannels closedchannels = 1; } message ListclosedchannelsClosedchannels { // ListClosedChannels.closedchannels[].close_cause enum ListclosedchannelsClosedchannelsClose_cause { UNKNOWN = 0; LOCAL = 1; USER = 2; REMOTE = 3; PROTOCOL = 4; ONCHAIN = 5; } optional bytes peer_id = 1; bytes channel_id = 2; optional string short_channel_id = 3; optional ListclosedchannelsClosedchannelsAlias alias = 4; ChannelSide opener = 5; optional ChannelSide closer = 6; bool private = 7; uint64 total_local_commitments = 9; uint64 total_remote_commitments = 10; uint64 total_htlcs_sent = 11; bytes funding_txid = 12; uint32 funding_outnum = 13; bool leased = 14; optional Amount funding_fee_paid_msat = 15; optional Amount funding_fee_rcvd_msat = 16; optional Amount funding_pushed_msat = 17; Amount total_msat = 18; Amount final_to_us_msat = 19; Amount min_to_us_msat = 20; Amount max_to_us_msat = 21; optional bytes last_commitment_txid = 22; optional Amount last_commitment_fee_msat = 23; ListclosedchannelsClosedchannelsClose_cause close_cause = 24; } message ListclosedchannelsClosedchannelsAlias { optional string local = 1; optional string remote = 2; } message DecodepayRequest { string bolt11 = 1; optional string description = 2; } message DecodepayResponse { string currency = 1; uint64 created_at = 2; uint64 expiry = 3; bytes payee = 4; optional Amount amount_msat = 5; bytes payment_hash = 6; string signature = 7; optional string description = 8; optional bytes description_hash = 9; uint32 min_final_cltv_expiry = 10; optional bytes payment_secret = 11; optional bytes features = 12; optional bytes payment_metadata = 13; repeated DecodepayFallbacks fallbacks = 14; repeated DecodepayExtra extra = 16; } message DecodepayFallbacks { // DecodePay.fallbacks[].type enum DecodepayFallbacksType { P2PKH = 0; P2SH = 1; P2WPKH = 2; P2WSH = 3; } DecodepayFallbacksType item_type = 1; optional string addr = 2; bytes hex = 3; } message DecodepayExtra { string tag = 1; string data = 2; } message DecodeRequest { string string = 1; } message DecodeResponse { // Decode.type enum DecodeType { BOLT12_OFFER = 0; BOLT12_INVOICE = 1; BOLT12_INVOICE_REQUEST = 2; BOLT11_INVOICE = 3; RUNE = 4; } DecodeType item_type = 1; bool valid = 2; optional bytes offer_id = 3; repeated bytes offer_chains = 4; optional bytes offer_metadata = 5; optional string offer_currency = 6; optional string warning_unknown_offer_currency = 7; optional uint32 currency_minor_unit = 8; optional uint64 offer_amount = 9; optional Amount offer_amount_msat = 10; optional string offer_description = 11; optional string offer_issuer = 12; optional bytes offer_features = 13; optional uint64 offer_absolute_expiry = 14; optional uint64 offer_quantity_max = 15; repeated DecodeOffer_paths offer_paths = 16; optional bytes offer_node_id = 17; optional string warning_missing_offer_node_id = 20; optional string warning_invalid_offer_description = 21; optional string warning_missing_offer_description = 22; optional string warning_invalid_offer_currency = 23; optional string warning_invalid_offer_issuer = 24; optional bytes invreq_metadata = 25; optional bytes invreq_payer_id = 26; optional bytes invreq_chain = 27; optional Amount invreq_amount_msat = 28; optional bytes invreq_features = 29; optional uint64 invreq_quantity = 30; optional string invreq_payer_note = 31; optional uint32 invreq_recurrence_counter = 32; optional uint32 invreq_recurrence_start = 33; optional string warning_missing_invreq_metadata = 35; optional string warning_missing_invreq_payer_id = 36; optional string warning_invalid_invreq_payer_note = 37; optional string warning_missing_invoice_request_signature = 38; optional string warning_invalid_invoice_request_signature = 39; optional uint64 invoice_created_at = 41; optional uint32 invoice_relative_expiry = 42; optional bytes invoice_payment_hash = 43; optional Amount invoice_amount_msat = 44; repeated DecodeInvoice_fallbacks invoice_fallbacks = 45; optional bytes invoice_features = 46; optional bytes invoice_node_id = 47; optional uint64 invoice_recurrence_basetime = 48; optional string warning_missing_invoice_paths = 50; optional string warning_missing_invoice_blindedpay = 51; optional string warning_missing_invoice_created_at = 52; optional string warning_missing_invoice_payment_hash = 53; optional string warning_missing_invoice_amount = 54; optional string warning_missing_invoice_recurrence_basetime = 55; optional string warning_missing_invoice_node_id = 56; optional string warning_missing_invoice_signature = 57; optional string warning_invalid_invoice_signature = 58; repeated DecodeFallbacks fallbacks = 59; optional uint64 created_at = 60; optional uint64 expiry = 61; optional bytes payee = 62; optional bytes payment_hash = 63; optional bytes description_hash = 64; optional uint32 min_final_cltv_expiry = 65; optional bytes payment_secret = 66; optional bytes payment_metadata = 67; repeated DecodeExtra extra = 69; optional string unique_id = 70; optional string version = 71; optional string string = 72; repeated DecodeRestrictions restrictions = 73; optional string warning_rune_invalid_utf8 = 74; optional bytes hex = 75; } message DecodeOffer_paths { bytes first_node_id = 1; bytes blinding = 2; } message DecodeOffer_recurrencePaywindow { uint32 seconds_before = 1; uint32 seconds_after = 2; optional bool proportional_amount = 3; } message DecodeInvoice_pathsPath { bytes blinded_node_id = 1; bytes encrypted_recipient_data = 2; } message DecodeInvoice_fallbacks { uint32 version = 1; bytes hex = 2; optional string address = 3; } message DecodeFallbacks { optional string warning_invoice_fallbacks_version_invalid = 1; } message DecodeExtra { string tag = 1; string data = 2; } message DecodeRestrictions { repeated string alternatives = 1; string summary = 2; } 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; optional FeeratesPerkb perkb = 2; optional FeeratesPerkw perkw = 3; optional FeeratesOnchain_fee_estimates onchain_fee_estimates = 4; } message FeeratesPerkb { uint32 min_acceptable = 1; uint32 max_acceptable = 2; optional uint32 floor = 10; repeated FeeratesPerkbEstimates estimates = 9; optional uint32 opening = 3; optional uint32 mutual_close = 4; optional uint32 unilateral_close = 5; optional uint32 unilateral_anchor_close = 11; optional uint32 delayed_to_us = 6; optional uint32 htlc_resolution = 7; optional uint32 penalty = 8; } message FeeratesPerkbEstimates { optional uint32 blockcount = 1; optional uint32 feerate = 2; optional uint32 smoothed_feerate = 3; } message FeeratesPerkw { uint32 min_acceptable = 1; uint32 max_acceptable = 2; optional uint32 floor = 10; repeated FeeratesPerkwEstimates estimates = 9; optional uint32 opening = 3; optional uint32 mutual_close = 4; optional uint32 unilateral_close = 5; optional uint32 unilateral_anchor_close = 11; optional uint32 delayed_to_us = 6; optional uint32 htlc_resolution = 7; optional uint32 penalty = 8; } message FeeratesPerkwEstimates { optional uint32 blockcount = 1; optional uint32 feerate = 2; optional uint32 smoothed_feerate = 3; } message FeeratesOnchain_fee_estimates { uint64 opening_channel_satoshis = 1; uint64 mutual_close_satoshis = 2; uint64 unilateral_close_satoshis = 3; optional uint64 unilateral_close_nonanchor_satoshis = 6; uint64 htlc_timeout_satoshis = 4; uint64 htlc_success_satoshis = 5; } message FundchannelRequest { bytes id = 9; AmountOrAll amount = 1; optional Feerate feerate = 2; optional bool announce = 3; optional uint32 minconf = 10; optional Amount push_msat = 5; optional string close_to = 6; optional Amount request_amt = 7; optional string compact_lease = 8; repeated Outpoint utxos = 11; optional uint32 mindepth = 12; optional Amount reserve = 13; } message FundchannelResponse { bytes tx = 1; bytes txid = 2; uint32 outnum = 3; bytes channel_id = 4; optional bytes close_to = 5; optional uint32 mindepth = 6; } 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; optional uint64 in_htlc_id = 10; Amount in_msat = 2; ListforwardsForwardsStatus status = 3; double received_time = 4; optional string out_channel = 5; optional uint64 out_htlc_id = 11; 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 uint64 completed_at = 12; optional string label = 5; optional string bolt11 = 6; optional string description = 11; optional string bolt12 = 7; optional bytes preimage = 13; optional uint64 number_of_parts = 14; optional bytes erroronion = 10; } message PingRequest { bytes id = 1; optional uint32 len = 2; optional uint32 pongbytes = 3; } message PingResponse { uint32 totlen = 1; } message SendcustommsgRequest { bytes node_id = 1; bytes msg = 2; } message SendcustommsgResponse { string status = 1; } message SetchannelRequest { string id = 1; optional Amount feebase = 2; optional uint32 feeppm = 3; optional Amount htlcmin = 4; optional Amount htlcmax = 5; optional uint32 enforcedelay = 6; } message SetchannelResponse { repeated SetchannelChannels channels = 1; } message SetchannelChannels { bytes peer_id = 1; bytes channel_id = 2; optional string short_channel_id = 3; Amount fee_base_msat = 4; uint32 fee_proportional_millionths = 5; Amount minimum_htlc_out_msat = 6; optional string warning_htlcmin_too_low = 7; Amount maximum_htlc_out_msat = 8; optional string warning_htlcmax_too_high = 9; } message SigninvoiceRequest { string invstring = 1; } message SigninvoiceResponse { string bolt11 = 1; } message SignmessageRequest { string message = 1; } message SignmessageResponse { bytes signature = 1; bytes recid = 2; string zbase = 3; } message StopRequest { } message StopResponse { } message PreapprovekeysendRequest { optional bytes destination = 1; optional bytes payment_hash = 2; optional Amount amount_msat = 3; } message PreapprovekeysendResponse { } message PreapproveinvoiceRequest { optional string bolt11 = 1; } message PreapproveinvoiceResponse { }