Onboarding
Summary. First run walks you from nothing to a funded, named wallet: create or restore a wallet, confirm your recovery phrase, and optionally claim a username, with a prominent skip so you can stay anonymous. Goblin connects to a Grin node automatically, so there’s no node setup to wade through.
Motivation
Goblin’s audience isn’t only Grin veterans. The first-run flow has to teach just enough (a recovery phrase is your money; a username is optional and public) without burying a newcomer in node configuration or nostr jargon. It reuses GRIM’s proven mnemonic machinery so the security-critical parts are the upstream-tested ones.
How it works
The flow (OnboardingContent) steps through:
- Intro: what Goblin is (private, pay-by-username). Goblin connects to a default Grin node automatically, so there’s no node step to wade through; you can change the node later in Settings → Advanced.
- Wallet setup: name + password, or choose restore.
- Recovery phrase: generate (12–24 words) or import. Import supports paste and a SeedQR scan. This step uses GRIM’s
MnemonicSetupword grid and validation. - Confirm words: verify the phrase by re-entering it.
- Identity: optionally claim a
username(reusing the name-authority claim flow) or import an existing identity (nsec/ backup). A prominent Skip keeps you anonymous.
On completion the new wallet is opened and its NostrService starts. Restoring from seed gives you a fresh random nostr identity by default; you bring your old one back via Import.
Reference
In goblin/src/gui/views/goblin/onboarding.rs:
OnboardingContent+Stepenum. The live flow is Intro → WalletSetup → Words → ConfirmWords → Identity; the legacyNodestep is retired (#[allow(dead_code)]) and the wallet auto-connects to a default public node, with node management in Settings → Advanced.OnbImport: optional identity import (nsec / backup, with password when sealed), async worker result.- Reuses GRIM
MnemonicSetup.word_list_ui(madepub(crate)), with SeedQR scan. - Hosted in
goblin/src/gui/views/wallets/content.rs(replaces only the empty-state branch; the stock GRIM wallet-creation path stays for later wallets).
References
- The identity it sets up: Identity.
- The username it can claim: Name authority.