Skip to content

Multi-profile switching within one wallet #149

Description

@truthixify

Tier: M (2-4 days) | Type: feature

Context. Every wallet today derives exactly one stealth meta-address per chain, so personal, freelance, and DAO flows all merge into one activity stream. Users repeatedly ask to compartmentalize. Derive multiple profiles from the same wallet signature by domain-separating the STEALTH_SIGNING_MESSAGE per profile label, and let users flip between them in the header.

Scope.

  • Profile store: { id, label, chain, createdAt, colorTag } under src/store/profilesStore.tsx.
  • Extend StealthKeysContext to key derived keys by active profile id.
  • Header profile switcher (avatar dot + label) next to the network chip.
  • Activity, Portfolio, Send, Receive all read from the active profile.
  • New-profile flow re-signs with a domain-separated message and never re-uses the default keys.

Acceptance.

  • Switching profile swaps the meta-address on Receive without a reload
  • Activity rows are scoped to the active profile
  • Delete-profile confirmation preserves activity of remaining profiles
  • Playwright test proves two profiles produce two distinct meta-addresses from the same wallet

Files. src/context/StealthKeysContext.tsx, src/store/profilesStore.tsx (new), src/components/ProfileSwitcher.tsx (new), src/components/Header.tsx.

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programdemoAuto-created for Wave 8dripsFunded via Drips NetworkfeatureNew feature workhelp wantedExtra attention is neededstellarTouches Stellar / Soroban codestellar-waveAuto-created for Wave 8uxUser experiencewave-8Auto-created for Wave 8

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions