# Changelog ## [0.2.0] 2026-08-09 ### Added - holdinvoice methods: ``make_hold_invoice``, ``cancel_hold_invoice``, ``settle_hold_invoice`` - holdinvoice notification: ``hold_invoice_accepted`` ### Changed - there are now five default relays that will be used if ``nip47-relays`` is not set - `pay_keysend` will use the new CLN `xkeysend` command using CLN v26.06+ - Budget is updated on demand instead of by a background task - `list_transactions` is bounded (at most 500 transactions and ~128kB response) to prevent DoS - Upgrade ``nostr_sdk`` and CLN dependencies ### Removed - ``multi_pay_invoice`` and ``multi_pay_keysend``, they were removed from the spec ### Fixed - ``nip47-create`` no longer fails if the NWC fails to start, the error is only logged, since the NWC at that point is already persisted to the DB - Paying amount-less invoices with a request amount - Legacy keysend TLV byte decoding - Report the correct error when the payment route is too expensive - Notifications are sent per client, so one failing client no longer prevents the others from receiving them - Available payment methods are now determined from the node's RPC instead of it's (custom) version string - Deduplication of request events instead of filtering unreliably ## [0.1.9] 2026-04-23 ### Fixed - ``nip47-budget``: race condition where new budget settings would sometimes be ignored ## [0.1.8] 2026-04-03 ### Changed - updated cln dependencies ## [0.1.7] 2025-11-27 ### Fixed - If there were failed payment attempts before success the ``payment_sent`` notification might not have been sent ## [0.1.6] 2025-11-10 ### Added - Include pending and failed payments in ``list_transactions``, now that ``state`` exists wallets can display these more meaningfully - Include expired invoices in ``list_transactions``, now that ``state`` exists wallets can display these more meaningfully ### Changed - Upgrade ``nostr_sdk`` to ``v0.44`` and implement new fields in sync with the ``nip47`` spec, e.g. ``state`` for transactions - Only process events that were created after ``cln-nip47`` started so it does not sent duplicate responses ### Fixed - Some minor fixes around ``bolt11`` invoices with 0 amount (aka any amount) - Don't ignore `offset` parameter in ``list_transactions`` - Also add ``notifications`` to the ``info_event``'s ``content`` if enabled to be in line with the spec ## [0.1.5] 2025-07-24 ### Changed - cap `list_transactions` to under 128kB since more can lead to incompatibilities with certain wallets ## [0.1.4] 2025-07-24 ### Fixed - no longer panic on missing both bolt11 and bolt12 strings from listpays response ## [0.1.3] 2025-05-04 ### Changed - NWC's with budget at 0 and no renewing interval set (aka "receive-only" NWC) will now stop announcing pay methods when announcing itself to relays, this is for services which demand a receive-only NWC (e.g. stacker.news) ## [0.1.2] 2025-04-18 ### Added - ``nip47-create`` and ``nip47-list``: add ``clientkey_public`` and ``walletkey_public`` to output. These are useful for private relay whitelists. - ``nip47-notifications``: new option to enable/disable nip47 notifications. Usefule if you don't need them and want to use public relays that may rate limit you. ### Fixed - ``nip47-revoke``: actually stop task if no relays were ever connected ## [0.1.1] 2025-04-07 ### Changed - use `xpay` instead of `pay` if CLN version supports it, this is a workaround for a library issue but also xpay is better ### Fixed - added missing nip47-list labels ## [0.1.0] 2025-04-02 ### Added - initial release of cln-nip47