HtlcModifier is a bidirectional streaming RPC that allows a client to
intercept and modify the HTLCs that attempt to settle the given invoice. The
server will send HTLCs of invoices to the client and the client can modify
some aspects of the HTLC in order to pass the invoice acceptance tests.
The modified amount in milli-satoshi that the exit HTLC is paying. This value can be different from the actual on-chain HTLC amount, in case the HTLC carries other valuable items, as can be the case with custom channel types.
uint64
string
body
cancel_set
This flag indicates whether the HTLCs associated with the invoices should be cancelled. The interceptor client may set this field if some unexpected behavior is encountered. Setting this will ignore the amt_paid field.
The invoice the intercepted HTLC is attempting to settle. The HTLCs in the invoice are only HTLCs that have already been accepted or settled, not including the current intercepted HTLC.
The minimum number of real hops to include in a blinded path. This doesn't include our node, so if the minimum is 1, then the path will contain at minimum our node along with an introduction node hop. If it is zero then the shortest path will use our node as an introduction node.
uint32
integer
num_hops
The number of hops to include in a blinded path. This doesn't include our node, so if it is 1, then the path will contain our node along with an introduction node or dummy node hop. If paths shorter than NumHops is found, then they will be padded using dummy hops.
uint32
integer
max_num_paths
The maximum number of blinded paths to select and add to an invoice.
uint32
integer
node_omission_list
A list of node IDs of nodes that should not be used in any of our generated blinded paths.
An optional memo to attach along with the invoice. Used for record keeping purposes for the invoice's creator, and will also be set in the description field of the encoded payment request if the description_hash field is not being used.
string
string
r_preimage
The hex-encoded preimage (32 byte) which will allow settling an incoming HTLC payable to this preimage. When using REST, this field must be encoded as base64.
bytes
string
r_hash
The hash of the preimage. When using REST, this field must be encoded as base64. Note: Output only, don't specify for creating an invoice.
bytes
string
value
The value of this invoice in satoshis The fields value and value_msat are mutually exclusive.
int64
string
value_msat
The value of this invoice in millisatoshis The fields value and value_msat are mutually exclusive.
int64
string
settleddeprecated
Whether this invoice has been fulfilled. The field is deprecated. Use the state field instead (compare to SETTLED).
bool
boolean
creation_date
When this invoice was created. Measured in seconds since the unix epoch. Note: Output only, don't specify for creating an invoice.
int64
string
settle_date
When this invoice was settled. Measured in seconds since the unix epoch. Note: Output only, don't specify for creating an invoice.
int64
string
payment_request
A bare-bones invoice for a payment within the Lightning Network. With the details of the invoice, the sender has all the data necessary to send a payment to the recipient. Note: Output only, don't specify for creating an invoice.
string
string
description_hash
Hash (SHA-256) of a description of the payment. Used if the description of payment (memo) is too long to naturally fit within the description field of an encoded payment request. When using REST, this field must be encoded as base64.
bytes
string
expiry
Payment request expiry time in seconds. Default is 86400 (24 hours).
int64
string
fallback_addr
Fallback on-chain address.
string
string
cltv_expiry
Delta to use for the time-lock of the CLTV extended to the final hop.
uint64
string
route_hints
Route hints that can each be individually used to assist in reaching the invoice's destination.
Whether this invoice should include routing hints for private channels. Note: When enabled, if value and value_msat are zero, a large number of hints with these channels can be included, which might not be desirable.
bool
boolean
add_index
The "add" index of this invoice. Each newly created invoice will increment this index making it monotonically increasing. Callers to the SubscribeInvoices call can use this to instantly get notified of all added invoices with an add_index greater than this one. Note: Output only, don't specify for creating an invoice.
uint64
string
settle_index
The "settle" index of this invoice. Each newly settled invoice will increment this index making it monotonically increasing. Callers to the SubscribeInvoices call can use this to instantly get notified of all settled invoices with an settle_index greater than this one. Note: Output only, don't specify for creating an invoice.
uint64
string
amt_paiddeprecated
Deprecated, use amt_paid_sat or amt_paid_msat.
int64
string
amt_paid_sat
The amount that was accepted for this invoice, in satoshis. This will ONLY be set if this invoice has been settled or accepted. We provide this field as if the invoice was created with a zero value, then we need to record what amount was ultimately accepted. Additionally, it's possible that the sender paid MORE that was specified in the original invoice. So we'll record that here as well. Note: Output only, don't specify for creating an invoice.
int64
string
amt_paid_msat
The amount that was accepted for this invoice, in millisatoshis. This will ONLY be set if this invoice has been settled or accepted. We provide this field as if the invoice was created with a zero value, then we need to record what amount was ultimately accepted. Additionally, it's possible that the sender paid MORE that was specified in the original invoice. So we'll record that here as well. Note: Output only, don't specify for creating an invoice.
int64
string
state
The state the invoice is in. Note: Output only, don't specify for creating an invoice.
Indicates if this invoice was a spontaneous payment that arrived via keysend [EXPERIMENTAL]. Note: Output only, don't specify for creating an invoice.
bool
boolean
payment_addr
The payment address of this invoice. This is also called payment secret in specifications (e.g. BOLT 11). This value will be used in MPP payments, and also for newer invoices that always require the MPP payload for added end-to-end security. Note: Output only, don't specify for creating an invoice.
bytes
string
is_amp
Signals whether or not this is an AMP invoice.
bool
boolean
amp_invoice_state
[EXPERIMENTAL]: Maps a 32-byte hex-encoded set ID to the sub-invoice AMP state for the given set ID. This field is always populated for AMP invoices, and can be used along side LookupInvoice to obtain the HTLC information related to a given sub-invoice. Note: Output only, don't specify for creating an invoice.
Signals that the invoice should include blinded paths to hide the true identity of the recipient.
bool
boolean
blinded_path_config
Config values to use when creating blinded paths for this invoice. These can be used to override the defaults config values provided in by the global config. This field is only used if is_blinded is true.