From 5986cbf5337593eb11fd984d284bd41da7719a87 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sat, 1 Aug 2026 20:28:56 -0700 Subject: Payment names: ₿you@halwallet.app via BIP-353 DNS payment instructions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Receiving: a Settings card claims a username, signed with the wallet's nostr key; the new names registrar (names/server.js, deployed at names.halwallet.app) enforces first-come ownership by that key and mirrors the claim into a DNSSEC-signed TXT record at .user._bitcoin-payment.halwallet.app whose BIP-21 URI carries the wallet's reusable ark address. The record re-registers itself if the ark address ever changes, and a collapsible hint shows the single CNAME a user adds to serve the same name from their own domain (BIP-353 supports delegation when both zones are DNSSEC-signed). Sending: a pasted name@domain resolves over DNS first — two independent DoH resolvers must agree and both report the DNSSEC AD flag (full client-side chain validation is the stated follow-up) — an ark= instruction pays natively, an on-chain path fills the send form, and a name with no DNS record falls back to the Lightning-address zap flow. Co-Authored-By: Claude Fable 5 --- src/features/index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/features/index.js') diff --git a/src/features/index.js b/src/features/index.js index 583334f..e34de3d 100644 --- a/src/features/index.js +++ b/src/features/index.js @@ -6,6 +6,7 @@ import { giftsFeature } from './gifts.js'; import { arkFeature } from './ark.js'; +import { namesFeature } from './names.js'; import { zapsFeature } from './zaps.js'; import { syncFeature } from './sync.js'; import { nwcFeature } from './nwc.js'; @@ -15,6 +16,8 @@ import { nwcFeature } from './nwc.js'; // after ark so an npub prefers an instant Ark zap and only falls through to a // Lightning zap when Ark can't serve it. nwc sits after ark because it // drives ark's headless pay/balance seam. +// names sits between ark and zaps: a pasted user@domain resolves over DNS +// (BIP-353) before the zaps feature treats it as a plain Lightning address. export function buildFeatures(ctx) { - return [giftsFeature(ctx), arkFeature(ctx), zapsFeature(ctx), nwcFeature(ctx), syncFeature(ctx)]; + return [giftsFeature(ctx), arkFeature(ctx), namesFeature(ctx), zapsFeature(ctx), nwcFeature(ctx), syncFeature(ctx)]; } -- cgit v1.2.3