lightning-decodepay -- Command for decoding a bolt11 string (low-level)


decodepay bolt11 [description]


The decodepay RPC command checks and parses a bolt11 string as
specified by the BOLT 11 specification.


On success, an object is returned, containing:

  • 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 (hash): the hash of the payment_preimage
  • 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 (hash, optional): the hash of the description, in place of description
  • payment_secret (hash, optional): the secret to hand to the payee node
  • features (hex, optional): the features bitmap for this invoice
  • payment_metadata (hex, optional): the payment_metadata to put in the payment
  • fallbacks (array of objects, optional): onchain addresses:
    • type (string): the address type (if known) (one of "P2PKH", "P2SH", "P2WPKH", "P2WSH", "P2TR")
    • 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 (msat): 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

Technically, the description field is optional if a
description_hash field is given, but in this case decodepay will
only succeed if the optional description field is passed and matches
the description_hash. In practice, these are currently unused.


Rusty Russell <[email protected]> is mainly responsible.


lightning-pay(7), lightning-getroute(7), lightning-sendpay(7).



Main web site: