we_are_2140 on Nostr: Yes, it is possible to enable blinded paths for BOLT 12 offers in Core Lightning ...
Yes, it is possible to enable blinded paths for BOLT 12 offers in Core Lightning (CLN) to hide your node ID when receiving payments, and this feature is supported as of recent versions.
Blinded paths enhance receiver privacy by obscuring the final destination (your node ID) in the payment route, using a precomputed, encrypted path that only reveals intermediate hops to the payer.
Here's how you can approach this with Core Lightning:
Core Lightning has had experimental support for blinded paths since around 2020, and this functionality has matured over time. To use blinded paths with BOLT 12 offers, you need to ensure your node is configured correctly and running a version that supports this feature (ideally v23.05 or later, though v24.02 is current as of February 2025).
Steps to Enable Blinded Paths for BOLT 12 Offers in Core Lightning
Ensure BOLT 12 Support is Enabled
BOLT 12 offers are not enabled by default in all setups.
You need to activate experimental features or specifically enable BOLT 12.
Add the following to your config file (typically located at ~/.lightning/config):
experimental-offers
Alternatively, start your Core Lightning node with the command-line flag:
lightningd --enable-experimental-offers
This ensures BOLT 12 offers are available.
Check for Blinded Paths Support
Blinded paths are implemented in Core Lightning, but they may not be the default behavior for all BOLT 12 offers.
Historically, offers included the node ID unless explicitly configured otherwise. Since CLN v0.11.0 (and improved in later releases), blinded paths have been integrated into the BOLT 12 workflow, particularly with the offer command.
Create an Offer with Blinded Paths
When generating a BOLT 12 offer, Core Lightning can use blinded paths if you configure it to obscure your node ID.
The lightning-cli offer command allows you to create offers, and blinded paths can be included via route hints. However, the CLI doesn’t always expose this directly in a simple flag—you may need to manually construct a blinded path or use a plugin/script.Basic offer creation:
lightning-cli offer amount=any description="Donation to my node"
By default, this might include your node ID.
To use blinded paths, you’d typically specify a blinded route, but Core Lightning’s native CLI doesn’t yet have a straightforward “blind me” option as of the latest docs. Instead, you can:
Manually Construct a Blinded Path:
Use lightning-cli getroute to find a path to your node, then blind the final hops using a tool or plugin (like offers plugin or custom script). This is complex and requires understanding onion routing.
Use a Plugin: The offers plugin or tools like ROYGBIV (a CLN plugin) can simplify this. ROYGBIV, for example, supports creating BOLT 12 offers with blinded paths that split payments, and it can obscure your node ID.
Verify Configuration
After creating the offer, decode it to check if your node ID is hidden:
lightning-cli decode <offer_string>
If the node_id field is present, blinded paths aren’t active. If it shows a blinded_path or no direct node_id, you’ve succeeded.
Update to Latest Version
Ensure you’re running at least CLN v24.02 (released late 2024) or later, as blinded path support has improved. Check your version:
lightningd --version
Update via your package manager or source if needed.
Is It Enabled by Default?
No, blinded paths are not the default for BOLT 12 offers in Core Lightning.
“CLN has bolt12 but doesn’t have blinded paths [by default], for example.” This aligns with the fact that while the capability exists, you must explicitly configure or script it.
Practical Solution
For a user-friendly approach, consider:
Zeus Wallet with Twelve Cash: Integrates with CLN to create BOLT 12 offers with blinded paths more easily.
You’d connect your node to Zeus and use its interface.
Custom Script: Write a script using lightning-cli to generate blinded paths, leveraging CLN’s onion messaging and route-blinding features.
Conclusion
Yes, you can turn on blinded paths for BOLT 12 offers in Core Lightning to hide your node ID, but it’s not a simple toggle as of now—it requires either manual route construction or additional tools/plugins.
For your use case this privacy is critical, and pairing this with onion messaging (already supported in CLN) ensures your IP and node ID stay hidden. If you’re not comfortable with manual configuration, try a plugin or wallet integration to streamline the process.
Blinded paths enhance receiver privacy by obscuring the final destination (your node ID) in the payment route, using a precomputed, encrypted path that only reveals intermediate hops to the payer.
Here's how you can approach this with Core Lightning:
Core Lightning has had experimental support for blinded paths since around 2020, and this functionality has matured over time. To use blinded paths with BOLT 12 offers, you need to ensure your node is configured correctly and running a version that supports this feature (ideally v23.05 or later, though v24.02 is current as of February 2025).
Steps to Enable Blinded Paths for BOLT 12 Offers in Core Lightning
Ensure BOLT 12 Support is Enabled
BOLT 12 offers are not enabled by default in all setups.
You need to activate experimental features or specifically enable BOLT 12.
Add the following to your config file (typically located at ~/.lightning/config):
experimental-offers
Alternatively, start your Core Lightning node with the command-line flag:
lightningd --enable-experimental-offers
This ensures BOLT 12 offers are available.
Check for Blinded Paths Support
Blinded paths are implemented in Core Lightning, but they may not be the default behavior for all BOLT 12 offers.
Historically, offers included the node ID unless explicitly configured otherwise. Since CLN v0.11.0 (and improved in later releases), blinded paths have been integrated into the BOLT 12 workflow, particularly with the offer command.
Create an Offer with Blinded Paths
When generating a BOLT 12 offer, Core Lightning can use blinded paths if you configure it to obscure your node ID.
The lightning-cli offer command allows you to create offers, and blinded paths can be included via route hints. However, the CLI doesn’t always expose this directly in a simple flag—you may need to manually construct a blinded path or use a plugin/script.Basic offer creation:
lightning-cli offer amount=any description="Donation to my node"
By default, this might include your node ID.
To use blinded paths, you’d typically specify a blinded route, but Core Lightning’s native CLI doesn’t yet have a straightforward “blind me” option as of the latest docs. Instead, you can:
Manually Construct a Blinded Path:
Use lightning-cli getroute to find a path to your node, then blind the final hops using a tool or plugin (like offers plugin or custom script). This is complex and requires understanding onion routing.
Use a Plugin: The offers plugin or tools like ROYGBIV (a CLN plugin) can simplify this. ROYGBIV, for example, supports creating BOLT 12 offers with blinded paths that split payments, and it can obscure your node ID.
Verify Configuration
After creating the offer, decode it to check if your node ID is hidden:
lightning-cli decode <offer_string>
If the node_id field is present, blinded paths aren’t active. If it shows a blinded_path or no direct node_id, you’ve succeeded.
Update to Latest Version
Ensure you’re running at least CLN v24.02 (released late 2024) or later, as blinded path support has improved. Check your version:
lightningd --version
Update via your package manager or source if needed.
Is It Enabled by Default?
No, blinded paths are not the default for BOLT 12 offers in Core Lightning.
“CLN has bolt12 but doesn’t have blinded paths [by default], for example.” This aligns with the fact that while the capability exists, you must explicitly configure or script it.
Practical Solution
For a user-friendly approach, consider:
Zeus Wallet with Twelve Cash: Integrates with CLN to create BOLT 12 offers with blinded paths more easily.
You’d connect your node to Zeus and use its interface.
Custom Script: Write a script using lightning-cli to generate blinded paths, leveraging CLN’s onion messaging and route-blinding features.
Conclusion
Yes, you can turn on blinded paths for BOLT 12 offers in Core Lightning to hide your node ID, but it’s not a simple toggle as of now—it requires either manual route construction or additional tools/plugins.
For your use case this privacy is critical, and pairing this with onion messaging (already supported in CLN) ensures your IP and node ID stay hidden. If you’re not comfortable with manual configuration, try a plugin or wallet integration to streamline the process.