diff options
| author | Adam Soltys <[email protected]> | 2026-08-01 20:28:56 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-08-01 20:28:56 -0700 |
| commit | 5986cbf5337593eb11fd984d284bd41da7719a87 (patch) | |
| tree | 4ea35eb279b7213f5ebe9ec77118710612f35b6d /src/features/ark.js | |
| parent | 348a57004f94dd0f58c4e70769e65ca7ea3f7619 (diff) | |
| download | coinosv3-5986cbf5337593eb11fd984d284bd41da7719a87.tar.gz coinosv3-5986cbf5337593eb11fd984d284bd41da7719a87.zip | |
Payment names: ₿[email protected] via BIP-353 DNS payment instructions
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
<name>.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 <[email protected]>
Diffstat (limited to 'src/features/ark.js')
| -rw-r--r-- | src/features/ark.js | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/features/ark.js b/src/features/ark.js index f84857d..c8a6b23 100644 --- a/src/features/ark.js +++ b/src/features/ark.js @@ -1567,6 +1567,11 @@ export function arkFeature(ctx) { return { invoice: a.invoice, paymentHash: a.paymentHash, amountSat }; }, arkMovements() { const s = arkStateNow(); return s ? (s.movements || []) : []; }, + // The wallet's reusable ark receive address (BIP-353 names publish it). + async arkStaticAddress() { + const mgr = await connectArk(); + return mgr.address(); + }, // Whether background answering can mirror right now. arkBgReady() { return !!(ark && ark.info && ark.state); }, // nwc.js calls this (with its connections) whenever the mirror should |
