From 8e2ff4976db3d7586d7b9c993a94cf9bea071a12 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 6 Jul 2026 00:08:34 -0700 Subject: Ark zaps PoC — a NIP-61-shaped zap protocol over arkoor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lightning zaps are welded to LNURL+bolt11; nutzaps (NIP-61) proved the alternative shape, and ark fits it better than Cashu because delivery already exists (the mailbox). Draft protocol, kinds provisional: kind 10037 (replaceable) announces the wallet's ark address+network; the zap itself is a plain instant arkoor send; kind 9737 is the sender-signed receipt tagging recipient, amount, comment, and the delivered vtxo id — so the receipt is checkable against the actual payment, unlike a bare attestation. UX: paste an npub into Send and hal offers the zap (needs both the ark and sync features; npub decoding is inline bech32 so ark-only builds stay lean). The nostr layer gains generic publishEvent/fetchEvents, exposed through the sync seam as wallet.nostrPublish/nostrFetch. Proven on regtest against a mini NIP-01 relay: announce, resolve, zap 1,000 sats with a comment, instant receipt+delivery, vtxo match. Co-Authored-By: Claude Fable 5 --- src/i18n.js | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/i18n.js') diff --git a/src/i18n.js b/src/i18n.js index e45d662..cfaf187 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -408,6 +408,13 @@ const STR = { arkExitClaimingStatus: 'Exiting {n} sats — almost done, awaiting confirmation', arkExitRetrying: 'hit a snag — retrying automatically', arkExitCancel: 'Cancel this exit', + arkZapTitle: 'Zap over Ark', + arkZapLookup: 'Looking up their Ark address…', + arkZapNoArk: 'This nostr user hasn’t published an Ark address.', + arkZapHint: 'Instant and free — delivered to their Ark wallet, with a zap receipt on nostr.', + arkZapCommentPh: 'Comment (optional)', + arkZapBtn: 'Zap', + arkZapSentTitle: 'Zapped!', arkOpsBoard: '{n} deposit(s) confirming', arkOpsSend: '{n} send(s) finishing up', arkOpsRefresh: '{n} refresh(es) waiting for the next round', -- cgit v1.2.3