... I have some geriatric ramblings to transmit. As follows:

The "Graduated Wallet" for BTC, Lightning and Nostr.

Elegant concept.

Here it is:

For the first, say, 100k satoshis that a user receives... The user is on Layer #1.

On Layer #1, inbound payments are converted by an API provider like LightSpark, or Arkade, or Breez, or Boltz.... from Lightning..... to an L2 like Spark, or Ark, Liquid, or other fancy thing...... things continue on like this for a while.. but...... BUT.... at the point that the user gets above 100k satoshis...

.... the user enters Layer #2. ..... ... The user then sees a button "Switch To Your Own Channel"..and the user's balance is converted into funds in a running instance of LDK on the user's phone. This LDK instance can open and close channels, send on-chain transactions, etc. Fully self-custodial and cool.

Nice, right?

Layer #1 | Spark, Ark, something like that.

Layer #2 | LDK: Self-custodial and decentralized, without compromise.

But. Here's the problem:

Layer #1 has a dark side: Spark or Ark or (perish the thought), APIs like Breez, all involve depending on ONE trusted intermediary, to keep an API up-and-running. Also, these APIs are mutually incompatible! To support more than one would be insanely complicated! And, like, when LightSpark or Breez goes down, your user is fucked! Not cool.

... also....each Layer #1 depends on a SINGLE network endpoint. This is just dangerous in so many ways... fundamentally uncool.... and not something that bitcoiners should get involved with.

So. POTENTIAL SOLUTION:

💡 What if, instead.. instead of Spark or Ark or Breez, a wallet simply allowed users to CHOOSE ANY NWC STRING -- and switch between those NWC strings at any time?

💡 Layer #1 | Multi-NWC-string switcher. Simple React component (or other easy UI.) Allows user to quickly switch between different NWC string. Simple. Decentralized. Highly convenient. Tested in production for 3+ years by orgs like Zeus, Alby, CoinOs, Wallet Of Satoshi, Megalith, Amboss, FlashSats, Rizful, MiniBits, Yakihonne, Primal, Damus, Amethyst, Coracle, and more... Fully featured for Lightning payments, balances, invoices, etc.

Layer #2 | LDK: Self-custodial and decentralized, without compromise.

Here is the simple scenario:

At the time that the user's NWC balance reaches 100k, the user sees a simple button "Switch To Your Own Channel" -- which triggers a standards-compliant LSPS1 or LSPS2 channel opening, using a standard BOLT11 or BOLT12 invoice. The user's funds go into the channel... and at that point, the user has full control, with a full LDK instance, access to on-chain operations, etc.

So....Why would you NOT, in 2026, just go with this?

💡 Layer #1 | Multi-NWC-string switcher.

💡 Layer #2 | LDK

It's simple, it's tested, and it's decentralized.

Reply to this note

Please Login to reply.

Discussion

I’m all for self custody solutions but for small sub 100k sat amounts why not fedimint? No single operator, privacy, onchain and lightning features. Then bug them to graduate to their own channel as they grow to an amount where owning a utxo is easily feasible?

Problem is, to interact with Lightning, Fediment operators need to run Lightning nodes. So I don't see how they are better than existing services which offer NWC codes.

Better privacy and harder to rug? Plus it’s easier for them to claim they aren’t money transmitters

Interesting proposition from nostr:nprofile1qyt8wumn8ghj7cnfw33k76twv4ezuum0vd5kzmqpp4mhxue69uhkummn9ekx7mqqyztlsj9de3xxyangtljggfk72c2gsly22xk6q35va3clh2fcyu53zn2se56 to create a graduated wallet based on NWC

nostr:nevent1qvzqqqqqqypzp9lcfzkucnrzwe59leyyym09v9yg0j99rtdqg6xwcu0m4yuzw2g3qqs24drah02454g5av5ryyzkgmk94ka7ke3rzhpgywpkq2wgd4t2prggctqmq

I don't fully get it.

The NWC layer means user just connect other wallets for redundancy when one wallet is offline?

But that makes them hold different amounts on different wallets, no?

This would cause lots of problems, users need to onboard to other wallets first, difficulties in UX in displaying balances (or one balance), problems with payments where your one NWC string has not enough bitcoin to pay something, even though you total balance shows you should, etc

But I am not sure If I understand your solution well

Another thing to mitigate those centralised APIs for nodeless wallets is for them is to just use Nostr 😉

Yes: " redundancy when one wallet is offline" -- that is a big rationale for this proposal.

Yes: "But that makes them hold different amounts on different wallets, no?" -- not 100% ideal, but, for example, look at Yakihonne's "wallet switcher" interface.. works pretty well and is understandable...

Yes: "users need to onboard to other wallets first" -- biggest stumbling block. But if you look at, for example, Damus' integration with CoinOs, or Jumble.Social's integration with Rizful.com -- these show that it's quite simple to direct user to the signup flow....

Btw have you seen this 😃

https://deposits.ynniv.com/

Yes, and I've been in contact with the author extensively. I'm not personally smart enough to find the security flaws in this, but I'd very much like some Lightning folks who are smarter than me to get behind this. We'd love to run infrastructure for this or something like it.

Where would users get their NWC string from though when they start out? They would choose from different providers, who all natively offer NWC connections? (e.g. Spark, Ark,) Is that the idea?

With Layer 2: (LDK on phone)

Don't you think overall it's a problem not being able to receive while being offline? (lightning addresses, but literally any remote NWC function call)

"Where would users get their NWC string from though when they start out? " -- look at the current NWC onboarding flow that Damus uses with CoinOs, or Jumble.social uses with Rizful.com -- very, very fast and easy for users.....

Layer 2: Regarding offline payments I would defer to the LDK team.... the most bulletproof solution is similar to Alby Cloud or Greenlight, where the node "runs in the cloud" but has a separate secure signer....

Hmm, if I imagine cashu for layer 1 -- the Mutiny wallet did something just like that. Cashu is custodial but private (blinded), and can be easily transitioned to lightning.

I don't quite get the NWC part -- would I need to have another NWC wallet to start with?