From 4d09a091d0aa6a63860260637feddc1e11bed708 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 3 Aug 2026 10:09:09 -0700 Subject: Onboarding: a step for migrating a legacy coinos.io account MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Between "do you have a nostr account" and claiming a username, new users are asked whether they already have an account on the original coinos. Yes hands off to coinos.io/migrate with their fresh v3 payment address and a return URL — they're already signed in there, so no password or key ever travels. That page sweeps the balance over Lightning and renames the old account, releasing the username. Coming back, coinos.io returns ?migrated=; v3 claims that name on the registrar (retrying for a minute, since the registrar's "is this a legacy user?" guard caches), and their lightning address now resolves to the v3 wallet. The legacy page ships in coinos-ui and is NOT deployed yet. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi --- src/features/names.js | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/features') diff --git a/src/features/names.js b/src/features/names.js index 788c944..edc3be1 100644 --- a/src/features/names.js +++ b/src/features/names.js @@ -385,6 +385,8 @@ export function namesFeature(ctx) { namesAddress() { const st = load(); return st.name ? `${st.name}@${st.domain || DOMAIN}` : null; }, // the onboarding wizard renders the same claim form on its username step namesClaimForm() { return claimForm(true); }, + // claim a specific name (the migration flow, after coinos.io released it) + namesClaimName(name) { return claim(String(name).toLowerCase()); }, stop() { clearTimeout(retryTimer); clearTimeout(deadline); deadline = null; }, receiveModes() { if (!available()) return []; -- cgit v1.2.3