GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
LIGHTNING-DECODE(7) lightning-decode LIGHTNING-DECODE(7)

lightning-decode - Command for decoding an invoice string (low-level)

decode string

The decode RPC command checks and parses a bolt11 or bolt12 string (optionally prefixed by lightning: or LIGHTNING:) as specified by the BOLT 11 and BOLT 12 specifications. It may decode other formats in future.

On success, an object is returned, containing:

type (string): what kind of object it decoded to (one of "bolt12 offer", "bolt12 invoice", "bolt12 invoice_request", "bolt11 invoice")
valid (boolean): if this is false, you MUST not use the result except for diagnostics!

If type is "bolt12 offer", and valid is true:

offer_id (hex): the id of this offer (merkle hash of non-signature fields) (always 64 characters)
node_id (point32): x-only public key of the offering node
description (string): the description of the purpose of the offer
signature (bip340sig, optional): BIP-340 signature of the node_id on this offer
chains (array of hexs, optional): which blockchains this offer is for (missing implies bitcoin mainnet only):
the genesis blockhash (always 64 characters)

currency (string, optional): ISO 4217 code of the currency (missing implies Bitcoin) (always 3 characters)
minor_unit (u32, optional): the number of decimal places to apply to amount (if currency known)
amount (u64, optional): the amount in the currency adjusted by minor_unit, if any
amount_msat (msat, optional): the amount in bitcoin (if specified, and no currency)
send_invoice (boolean, optional): present if this is a send_invoice offer (always true)
refund_for (hex, optional): the payment_preimage of invoice this is a refund for (always 64 characters)
vendor (string, optional): the name of the vendor for this offer
features (hex, optional): the array of feature bits for this offer
absolute_expiry (u64, optional): UNIX timestamp of when this offer expires
paths (array of objects, optional): Paths to the destination:
blinding (pubkey): blinding factor for this path
path (array of objects): an individual path:
node_id (pubkey): node_id of the hop
enctlv (hex): encrypted TLV entry for this hop

quantity_min (u64, optional): the minimum quantity
quantity_max (u64, optional): the maximum quantity
recurrence (object, optional): how often to this offer should be used:
time_unit (u32): the BOLT12 time unit
period (u32): how many time_unit per payment period
time_unit_name (string, optional): the name of time_unit (if valid)
basetime (u64, optional): period starts at this UNIX timestamp
start_any_period (u64, optional): you can start at any period (only if basetime present)
limit (u32, optional): maximum period number for recurrence
paywindow (object, optional): when within a period will payment be accepted (default is prior and during the period):
seconds_before (u32): seconds prior to period start
seconds_after (u32): seconds after to period start
proportional_amount (boolean, optional): amount should be scaled if payed after period start (always true)

the following warnings are possible:
warning_offer_unknown_currency: The currency code is unknown (so no minor_unit)

If type is "bolt12 offer", and valid is false:

the following warnings are possible:
warning_offer_missing_description: No description

If type is "bolt12 invoice", and valid is true:

node_id (point32): x-only public key of the offering node
signature (bip340sig): BIP-340 signature of the node_id on this offer
amount_msat (msat): the amount in bitcoin
description (string): the description of the purpose of the offer
created_at (u64): the UNIX timestamp of invoice creation
payment_hash (hex): the hash of the payment_preimage (always 64 characters)
relative_expiry (u32): the number of seconds after created_at when this expires
min_final_cltv_expiry (u32): the number of blocks required by destination
offer_id (hex, optional): the id of this offer (merkle hash of non-signature fields) (always 64 characters)
chain (hex, optional): which blockchain this invoice is for (missing implies bitcoin mainnet only) (always 64 characters)
send_invoice (boolean, optional): present if this offer was a send_invoice offer (always true)
refund_for (hex, optional): the payment_preimage of invoice this is a refund for (always 64 characters)
vendor (string, optional): the name of the vendor for this offer
features (hex, optional): the array of feature bits for this offer
paths (array of objects, optional): Paths to the destination:
blinding (pubkey): blinding factor for this path
path (array of objects): an individual path:
node_id (pubkey): node_id of the hop
enctlv (hex): encrypted TLV entry for this hop

quantity (u64, optional): the quantity ordered
recurrence_counter (u32, optional): the 0-based counter for a recurring payment
recurrence_start (u32, optional): the optional start period for a recurring payment
recurrence_basetime (u32, optional): the UNIX timestamp of the first recurrence period start
payer_key (point32, optional): the transient key which identifies the payer
payer_info (hex, optional): the payer-provided blob to derive payer_key
fallbacks (array of objects, optional): onchain addresses:
version (u8): Segwit address version
hex (hex): Raw encoded segwit address
address (string, optional): bech32 segwit address

refund_signature (bip340sig, optional): the payer key signature to get a refund

If type is "bolt12 invoice", and valid is false:

fallbacks (array of objects, optional):
the following warnings are possible:
warning_invoice_fallbacks_version_invalid: version is > 16

the following warnings are possible:
warning_invoice_missing_amount: *amount_msat missing
warning_invoice_missing_description: No description
warning_invoice_missing_blinded_payinfo: Has paths without payinfo
warning_invoice_invalid_blinded_payinfo: Does not have exactly one payinfo for each of paths
warning_invoice_missing_recurrence_basetime: Has recurrence_counter without recurrence_basetime
warning_invoice_missing_created_at: Missing created_at
warning_invoice_missing_payment_hash: Missing payment_hash
warning_invoice_refund_signature_missing_payer_key: Missing payer_key for refund_signature
warning_invoice_refund_signature_invalid: refund_signature incorrect
warning_invoice_refund_missing_signature: No refund_signature

If type is "bolt12 invoice_request", and valid is true:

offer_id (hex): the id of the offer this is requesting (merkle hash of non-signature fields) (always 64 characters)
payer_key (point32): the transient key which identifies the payer
chain (hex, optional): which blockchain this invoice_request is for (missing implies bitcoin mainnet only) (always 64 characters)
amount_msat (msat, optional): the amount in bitcoin
features (hex, optional): the array of feature bits for this offer
quantity (u64, optional): the quantity ordered
recurrence_counter (u32, optional): the 0-based counter for a recurring payment
recurrence_start (u32, optional): the optional start period for a recurring payment
payer_info (hex, optional): the payer-provided blob to derive payer_key
recurrence_signature (bip340sig, optional): the payer key signature

If type is "bolt12 invoice_request", and valid is false:

the following warnings are possible:
warning_invoice_request_missing_offer_id: No offer_id
warning_invoice_request_missing_payer_key: No payer_key
warning_invoice_request_missing_recurrence_signature: No recurrence_signature
warning_invoice_request_invalid_recurrence_signature: recurrence_signature incorrect

If type is "bolt11 invoice", and valid is true:

currency (string): the BIP173 name for the currency
created_at (u64): the UNIX-style timestamp of the invoice
expiry (u64): the number of seconds this is valid after timestamp
payee (pubkey): the public key of the recipient
payment_hash (hex): the hash of the payment_preimage (always 64 characters)
signature (signature): signature of the payee on this invoice
min_final_cltv_expiry (u32): the minimum CLTV delay for the final node
amount_msat (msat, optional): Amount the invoice asked for
description (string, optional): the description of the purpose of the purchase
description_hash (hex, optional): the hash of the description, in place of description (always 64 characters)
payment_secret (hex, optional): the secret to hand to the payee node (always 64 characters)
features (hex, optional): the features bitmap for this invoice
fallbacks (array of objects, optional): onchain addresses:
type (string): the address type (if known) (one of "P2PKH", "P2SH", "P2WPKH", "P2WSH")
hex (hex): Raw encoded address
addr (string, optional): the address in appropriate format for type

routes (array of arrays, optional): Route hints to the payee:
hops in the route:
pubkey (pubkey): the public key of the node
short_channel_id (short_channel_id): a channel to the next peer
fee_base_msat (u32): the base fee for payments
fee_proportional_millionths (u32): the parts-per-million fee for payments
cltv_expiry_delta (u32): the CLTV delta across this hop

extra (array of objects, optional): Any extra fields we didn't know how to parse:
tag (string): The bech32 letter which identifies this field (always 1 characters)
data (string): The bech32 data for this field

Rusty Russell <rusty@rustcorp.com.au> is mainly responsible.

lightning-pay(7), lightning-offer(7), lightning-offerout(7), lightning-fetchinvoice(7), lightning-sendinvoice(7)

BOLT #11 (https://github.com/lightningnetwork/lightning-rfc/blob/master/11-payment-encoding.md).

BOLT #12 (https://github.com/lightningnetwork/lightning-rfc/blob/master/12-offer-encoding.md).

Main web site: https://github.com/ElementsProject/lightning


Search for    or go to Top of page |  Section 7 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.