These are all obviously much better, but unless all wallets seamlessly support onchain, the various flavors of lightning, and cashu, you're always going to have friction when sending/receiving.
"scan what?"
"receive what?"
"what kind of qr code is this?"
"oh, my phone doesn't support NFC"
"my wallet doesn't do onchain, can you send me a lightning invoice?"
"it's saying something about liquidity"
"what's a 'mint'?"
"what is a 'melt'?"
"what is a 'submarine swap'?"
"why do I need to 'topup', can't I just transfer funds from my bank?"
None of these problems are impossible to solve individually, but solving all of them across a network of apps created by people with different ideas is combinatorially difficult.
In nostr we say "don't overload kinds". I think this is the problem — we've overloaded the term "pay with bitcoin". It means:
- P2PKH
- P2SH
- Native SegWit
- Taproot
- Bolt11 invoice
- LNURL
- Lightning address
- Bolt12 invoice
- Keysend
- Cashu eCash
- Fedimint eCash
- Spark
- Ark
I'm not saying each of these doesn't have its use case, or that innovation isn't good, but this complexity comes at a cost, which either the wallet developer or the user has to bear.
