nostr:nprofile1qqs9df4h2deu3aae83fmet5xmrlm4w5l9gdnsy3q2n7dklem7ezmwfcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz3rhwvaz7tekd3jks6rev3ehyargv9nk66tnxe6h2dn5w43kuerk0fmnwcm4vfc8z6mgweu8j7fhdfhkjmmrxs6k66mnwg6x2cty9ehku6t0dchsz9mhwden5te0wfjkccte9ehx7um5wghxjmnxduhs5nd6j2 is there a way to turn on blinded paths for bolt12 offers for Core Lightning? so that my node id is hidden when paid, or is that not possible?

Reply to this note

Please Login to reply.

Discussion

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

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.

as I understand it your nodeID is hidden anyway

blinded paths primarily hide LN network level information,

transactional privacy isnt necessarily improved.

just dont use the same bolt12 invoice between services if you dont want them linked as you

nostr:npub1yxp7j36cfqws7yj0hkfu2mx25308u4zua6ud22zglxp98ayhh96s8c399s

no, not quite true ( correct me if im wrong). if i make an offer on my core lightning node via start9...and i go and pay 1 sat to that offer using CoinOS, it shows my lightning node alias. so it is not hiding my node by default.

yeah hmmm

guess I dont quite understand how this works yet.

is it about hiding the *last hop* only?

(hard to tell because everytime I ask STN about this he just says "routing nodes cant see anything" which is obviously not correct. /rant)

i cant get any answers on it either. but, thats ok i suppose. i assumed the payee was hidden as that is how it is pitched on that bolt12 website but thats, not true out of the box. i dont really see how bolt12 is much different than ln address as it stands. disappointing 😔

yeah I'm still trying to figure out the tradeoffs of bolt11 w/blinded paths and bolt12

i think the answer is never receive lightning payments 😂😭

i really like that Robosats has a toggle for lnproxy for receiving

if I flip some XMR or something

but I don't know how to use it to receive a random p2p payment

ya, ive used that it works.

with a start9, you can run a core lightning and lnd node on thecsame machine. by doing so, you can have one of the nodes serve as your proxy to the main node too.

oh cool...

how do you figure out the budget for the proxy?

i opened a few channels on the proxy node, then drained the outbound liquidity so it can receive a buy or two in the amount i buyvm from robisats. then, i can send sats from proxy node to my main one when it gets pretty full.

very cool 👍

so in theory theres no way to tell that a single entity controls both those nodes

we need to figure out a little more about these blinded paths....

ya, and you could also burn the proxy node every now and then, start a new one with fresh tor url, rotate the utxos with some fresh coinjoined ones if you really wanna get crazy.

really want to see blinded paths here.

especially since payments of >1M sats probably MUST pass through the top 20 nodes or so

i know lnd has blinded paths, but ive never successfully used it to receive a payment. i think you need public channels for it to work is my guess

sorry maybe you mean you want to define custom routes yourself

a la

https://lightningprivacy.com/en/blinded-trampoline#blinded-paths

ya i am kinda just wondering if there is a way to turn it on. seems like the answer is 'yes but no' at the moment. turning on blinded paths is not simply a toggle on/off feature