From abf96d89ceb6070bb490cbce2cf374bcc21a9daf Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 17 Aug 2026 23:44:31 -0700 Subject: Staging LNURL declines what it cannot deliver: only the recipient wallet mints for @staging names — our mainnet node will not take real sats it can only strand MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz --- names/server.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/names/server.js b/names/server.js index c6b092b..df823f9 100644 --- a/names/server.js +++ b/names/server.js @@ -816,6 +816,11 @@ Bun.serve({ const pr = await requestInvoiceFromWallet(rec.offerPk, { amountSat: sat, description: comment, zap }); if (pr) { log(`lnurl ${key}: recipient minted ${sat} sat`); return json({ pr, routes: [] }); } } + // Staging names are mutinynet wallets: only their own wallet can mint a + // right-network invoice. Minting on our mainnet node would take real + // sats for play money and strand them (the forwarder can't deliver to + // a testnet ark address). + if (domain === 'staging.coinos.io') return json({ status: 'ERROR', reason: 'recipient is offline' }, 503); // 2. our node, forwarded on settle if (!ln || !fwd) return json({ status: 'ERROR', reason: 'recipient is offline' }, 503); try { -- cgit v1.2.3