What problem does it solve?
Amethyst's client state is spread across a singleton LocalCache event store and roughly 50 per-account state objects, making it hard for developers to know where to read user state, how relay events cascade into UI, and how to add a new account-scoped setting correctly.
Core Features & Use Cases
- State Architecture Map: Explains the flow from relay frames through LocalCache insertion to Account StateFlows and Compose rendering.
- State Object Catalog: Documents each Account property (kind3FollowList, nip65RelayList, muteList, bookmarkState, and more) with its backing Nostr kind and package location.
- New Setting Recipe: Provides a step-by-step pattern for adding a new account-scoped NIP-based setting with pinned addressable notes, decryption caches, and signed mutation helpers.
- Use Case: When adding a new NIP-51 list feature, follow the recipe to create an XState class modeled on MuteListState, wire it into Account.kt, and expose a StateFlow the UI collects.
Quick Start
Ask the assistant to explain how to add a new account-scoped encrypted list setting to Amethyst using the account-state patterns.