Deprecated Features

Deprecated features and timeline for old feature removals.

NameTypeFirst DeprecatedLast SupportedDescription
listpeers.features.option_anchors_zero_fee_htlc_txFieldv24.08v25.09Renamed to option_anchors in the spec: check for that in features instead
decode.blindingFieldv24.11v25.05Renamed to first_path_key in BOLT 4 (available in decode from v24.11)
onion_message_recv.blindingHook Fieldv24.11v25.05Renamed to first_path_key in BOLT 4 (available in hook from v24.11)
decodepayCommandv24.11v25.12Use decode which is more powerful (since v23.05)
close.txFieldv24.11v25.12Use txs array instead
close.txidFieldv24.11v25.12Use txids array instead
experimental-offersConfigv24.11v25.05Now the default
xpay.ignore_bolt12_mppFieldv25.05v25.12Try MPP even if the BOLT12 invoice doesn't explicitly allow it (CLN didn't until 25.02)
listpeerchannels.max_total_htlc_in_msatFieldv25.02v26.03Use our_max_total_htlc_out_msat
wait.detailsFieldv25.05v26.06Use subsystem-specific object instead
channel_state_changed.old_state.unknownNotification Fieldv25.05v26.03Value "unknown" is deprecated: field will be omitted instead
coin_movement.tagsNotification Fieldv25.09v26.09Use primary_tag (first tag) and extra_tags instead
coin_movement.utxo_txidNotification Fieldv25.09v26.09Use utxo instead of utxo_txid & vout
coin_movement.txidNotification Fieldv25.09v26.09Use spending_txid instead
channel_state_changed.null_scidNotification Fieldv25.09v26.09In channel_state_changed notification, short_channel_id will be missing instead of null
notification.payloadNotification Fieldv25.09v26.09Notifications from plugins used to have fields in payload sub-object, now they are not (just like normal notifications)
pay_notifications.raw_fieldsFieldv25.09v26.09channel_hint_update, pay_failure and pay_success notifications now wrap members in an object of the same name

Inevitably there are features which need to change: either to be generalized, or removed when they can no longer be supported.

Types of deprecation:

  • Command: an entire command is removed. Usually replaced by a more generic or better-named one.
  • Config: a commandline/configuration option is removed. Usually made the default, or replaced by generalized or better-named.
  • Field(s): a JSON field output. We cannot detect if you are using these, of course.
  • Parameter(s): a JSON RPC input.
  • Getmanifest Reply: a field in the JSON reply which plugins give to getmanifest.
  • Hook Return: a field/value in the JSON reply which plugins give to a plugin hook.
  • Notification/Hook Field: a field in the JSON notification/hook to a plugin.

For each deprecation:

  1. The deprecation is listed here, and in the CHANGELOG.md file.
  2. We try to give at least 2 versions before removal.
  3. Then one version where we issue a warning message if we detect a deprecated feature being used (not possible for deprecatred Field types).
  4. At least one version where the deprecated feature can be explicit re-enabled using i-promise-to-fix-broken-api-user=FEATURENAME.

This is designed to minimize the chance that anyone will be surprised by a change!

You can also test earlier. Deprecated features can be disabled in three ways:

  1. developer mode changes the default deprecations to disabled globally.
  2. allow-deprecated-apis= lets you disable (false) or re-enable (true) globally.
  3. The deprecations JSON API can disable/re-enable deprecations for a specific client (added in v24.02).

Core Lightning is Blockstream's open-source implementation of the Lightning Network optimised for performance. It is highly customizable through modular expandability.

© 2023 Core Lightning
All rights reserved.

X Twitter Logo Streamline Icon: https://streamlinehq.com

X

The official Core Lightning X(Twitter) handle to follow project updates and announcements.

Github Logo 2 Streamline Icon: https://streamlinehq.com

Github

Github repository for source code, issues, and contributions. Visit our project here to explore or contibute.

Telegram

Community-driven telegram group where most of the node operators hang out. Go to https://t.me/lightningd to join.

Discord

Community-driven discord server where the devs flock together. Go to https://discord.gg/V6ay9yNhBQ to join.