diff --git a/README.md b/README.md index 344c6f1..435a796 100644 --- a/README.md +++ b/README.md @@ -37,3 +37,9 @@ In the root of the repo run `./scripts/android.sh build|release v7|v8|x86`, wher ## License Apache License v2.0. + +## Credits + +**Goblin** — the Cash App-style, Nostr-native payments experience layered on top of this wallet (end-to-end encrypted NIP-17 payments over Tor, in-app identity, and the goblin.st identity service) — was designed and built with development assistance from **Claude** ([Anthropic](https://www.anthropic.com)). + +The underlying cross-platform grin wallet is the upstream **Grim** project. diff --git a/src/gui/views/goblin/onboarding.rs b/src/gui/views/goblin/onboarding.rs index 0f90885..2108bca 100644 --- a/src/gui/views/goblin/onboarding.rs +++ b/src/gui/views/goblin/onboarding.rs @@ -192,10 +192,10 @@ impl OnboardingContent { or addresses on its chain.", ), ( - "Pay people, not addresses", - "Payments travel as end-to-end encrypted messages over nostr \ - and Tor. Goblin handles the plumbing; relays only ever see \ - ciphertext.", + "Send like a message", + "Pay a @username or npub and it arrives as an end-to-end \ + encrypted message over nostr and Tor — no one in between can \ + see the amount or who's involved.", ), ( "Yours alone", @@ -719,8 +719,9 @@ impl OnboardingContent { ui.label( RichText::new( "A fresh key, made for payments — deliberately not part \ - of your seed, so you can replace it without touching \ - your funds. Back it up later in Settings → Identity.", + of your seed, so you can rotate it anytime to maintain \ + your privacy, without ever touching your funds. Back it \ + up in Settings → Identity.", ) .font(FontId::new(12.5, fonts::regular())) .color(t.surface_text_dim), @@ -728,9 +729,9 @@ impl OnboardingContent { ui.add_space(6.0); ui.label( RichText::new( - "Want a clean slate later? Swap in a brand-new key any \ - time from Settings — your grin stays put, and the new \ - you isn't linked to the old one. Same wallet, fresh face.", + "Want a clean slate? Swap in a brand-new key any time — \ + the new you isn't linked to the old one. Same wallet, \ + fresh face.", ) .font(FontId::new(12.5, fonts::regular())) .color(t.surface_text_dim), diff --git a/src/gui/views/goblin/widgets.rs b/src/gui/views/goblin/widgets.rs index 5e03ca6..3d743ad 100644 --- a/src/gui/views/goblin/widgets.rs +++ b/src/gui/views/goblin/widgets.rs @@ -342,16 +342,19 @@ pub fn field_well(ui: &mut Ui, content: impl FnOnce(&mut Ui)) { /// A balance hero block: kicker, big number + ツ, optional fiat line. pub fn balance_hero(ui: &mut Ui, atomic: u64, fiat: Option<&str>, size: f32) { let t = theme::tokens(); - kicker(ui, "Balance"); + // Centered to match the Pay amount and the empty-state below it. + ui.vertical_centered(|ui| kicker(ui, "Balance")); ui.add_space(6.0); - amount_text(ui, &amount_str(atomic), size); + amount_text_centered(ui, &amount_str(atomic), size); if let Some(fiat) = fiat { ui.add_space(4.0); - ui.label( - RichText::new(fiat) - .font(FontId::new(13.0, fonts::regular())) - .color(t.text_dim), - ); + ui.vertical_centered(|ui| { + ui.label( + RichText::new(fiat) + .font(FontId::new(13.0, fonts::regular())) + .color(t.text_dim), + ); + }); } }