aboutsummaryrefslogtreecommitdiffstats
path: root/src/features
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-08-01 23:31:24 -0700
committerAdam Soltys <[email protected]>2026-08-01 23:31:24 -0700
commite978ae682f71ce87c14fb8bea886f90ddd4bf1c3 (patch)
tree6635b6661ff7a5bc43f118b22b0c20ccea405b18 /src/features
parent3dab66c5d3d63f19444e7fe14017fdfeb9a8e27d (diff)
downloadcoinosv3-e978ae682f71ce87c14fb8bea886f90ddd4bf1c3.tar.gz
coinosv3-e978ae682f71ce87c14fb8bea886f90ddd4bf1c3.zip
Payment addresses accept Lightning from LNURL-only wallets
An address only worked for wallets that speak DNS payment instructions or BOLT 12; everything else looks for /.well-known/lnurlp/<name>. The registrar now serves LUD-06/16 (with NIP-57 zap support), preferring the path that touches no funds: if the recipient's wallet published a CLINK offer key, we ask IT for the invoice over nostr and hand the result straight back — the payment never passes through us. Only when nobody answers does our node mint the invoice, and the existing settle forwarder pushes the money on to their address, signing a zap receipt when the payment was a zap. Co-Authored-By: Claude Fable 5 <[email protected]>
Diffstat (limited to 'src/features')
-rw-r--r--src/features/names.js3
-rw-r--r--src/features/nwc.js1
2 files changed, 4 insertions, 0 deletions
diff --git a/src/features/names.js b/src/features/names.js
index 4e4f704..4c0ffaf 100644
--- a/src/features/names.js
+++ b/src/features/names.js
@@ -66,6 +66,9 @@ export function namesFeature(ctx) {
if (!uri) throw new Error(t('namesNeedArk'));
const j = await post('/register', 'POST', {
name, uri, domain: DOMAIN,
+ // lets the address take Lightning payments from LNURL-only wallets:
+ // the registrar asks this key for an invoice before minting its own
+ ...(hook('nwcOfferPubkey') ? { offerPk: hook('nwcOfferPubkey') } : {}),
// when the login identity claims its own npub name, it nominates the
// wallet key to keep the record updated afterwards
...(manager ? { manager } : {}),
diff --git a/src/features/nwc.js b/src/features/nwc.js
index 5c49273..e7511c1 100644
--- a/src/features/nwc.js
+++ b/src/features/nwc.js
@@ -762,6 +762,7 @@ export function nwcFeature(ctx) {
return {
id: 'nwc',
+ nwcOfferPubkey() { return (hook('arkReady') && !wallet.watchOnly) ? offerKeys().pk : null; },
nwcOfferString() { return hook('arkReady') && !wallet.watchOnly ? offerString() : null; },
init() { listen(); startWatchdog(); refreshRegistration(); reconcileBg(); },
stop() { stop(); if (watchdog) { clearInterval(watchdog); watchdog = null; } },