#Amethyst v0.93.0: Blossom, Olas, Around Me feeds and Interactive Stories.
Adds support for displaying NIP-63 Interactive Stories
Adds support for Blossom media servers
Adds support for Olas' Image feeds
Adds support for Around Me feed with posts that only show up in that location
New Features:
- New Android Image/Video Picker
- Adds support for pronouns on profile
- Migrates Video uploads from NIP-94 to NIP-71 Video events
- Migrates Picture uploads from NIP-94 to NIP-68 Picture events
- Adds support for BUD-01, BUD-02, and BUD-03
- Adds support for NIP-22 Comments
- Adds nip05 field to the hidden words filtering by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Adds support for q tags with addresses
- Adds search.nos.today to bootstrapping relays for search
- Adds DM and Search default buttons to the relay screens
- Adds hidden words filter to search, hashtag and geotag feeds
- Applies hidden words even to hashtags that were not included in the content of the event.
- Adds support for saving reactions, zaps, translations user preferences on private outbox relays
UI Improvements:
- Adds animations to the zap, reaction and boost popups by @Giovanni
- Lighter chat bubbles
- Date separators on chats
- Adds unfollow to note dropdown by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Improves (Show More) presence to only when it actually makes a difference.
- Adds UI for when the location permission is rejected.
- Improves error message for the signup page when the display name is blank
- Adds extra padding for the zap setup screen
- Pre-process search to avoid showing and hiding posts after hidden words where processed by the UI.
- Rotate on full screen video if the device orientation is not locked by @KotlinGeek
BugFixes:
- Fixes account creation that follows itself
- Fixes translations of http urls
- Fixes search bug that mixed geohashes and hashtags
- Fixes issue with the order of multiple same-author events in a thread
- Fixes drafts appearing for other logged in accounts by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Fixes jumping of scroll when the thread updates
- Fixes app hanging when switching to accounts due to waiting to decrypt the blocked user list that might not exist
- Fixes initial decryption of mutelists when using amber by @greenart7c3
- Fixes crash on empty p-tags on new replies @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Fixes translations preferences changes running on the main thread by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Fixes some images being saved as videos @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Fixes missing notifications when multiple accounts tried to decrypt it
- Fixes lack of zap progress updates when there is a private zap the user cannot decrypt or when a nwc payment fails.
- Fixes saving the scrolling position when navigating between multiple threads.
- Fixes rendering cache of notes in thread view which kept replies in the wrong thread level
- Fixes reply level calculation caching
- Fixes poll's background rendering with the right percentages
- Fixes "null" strings on profile fields.
Code Quality Improvements:
- Refactors FeedStructures to prepare for custom feeds
- Updates Account architecture to operate feeds with location
- Custom Empty Feed Screen for Notifications
- Fully Deprecates note1, removing the last usages of the standard
- Removes unused encryption fields from NIP-94
- Moves the parallel processing amber calls to a utils class
- Refactors location to operate as a flow
- Unifies location Flows and geoHash Flows into one
- Make location flows react to changing location permissions on the fly
- Moves NIP-44 test model classes to a new file
- Improves GitHub actions to prepare debug apks in every commit
- Upgrades to Coil 3
- Updates AGP, kotlin, runtime, compose, camera, corektx, media3, firebase, fragment, navigation, jna, jackson, accompanist, kotlin serialization, mockk, coroutines-test and kotlin collections
Performance:
- Improves thread preloading
- Adds a cache for reply levels when viewing threads.
Updated translations:
- Czech, German, Swedish and Portuguese by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Dutch by @Bartus
- French by @Anthony 🇫🇷
- Polish by @Polak
- Chinese by @CXPLAY
- Slovenian by @StellarStoic
- Thai by @123🦈ปลาฉลามขึ้นบก
- Bengali by @npub13qtw...x23t
- Hindi by @राज
- Spanish by @⚡₿it₿y₿it⚡
- Hungarian by @npub1ww8k...nvtp and @summoner
- Persian by @L
Amethyst
amethyst@vitorpamplona.com
npub142gy...xrj0
Nostr Client for Android
#Amethyst v0.92.7: Empty mute list fix
- Fixes empty mute lists and mute words when Amethyst was unable to decrypt the list.
Download at 

Amethyst - Nostr Client for Android
Join the social network you control. The most feature-rich Nostr client for Android.
#Amethyst v0.92.6: UI updates for Android 15
- Fixes the Share target for GIF keyboards
- Fixes the update the of the share target when it's already open
- Fixes zapraiser progress bar
- Fixes poll rendering
- Reduces the font size for the translation label
- Fixes margin of poll options with translation
- Fixes array too big because strfry blocks more than 20 filters
Download at 

Amethyst - Nostr Client for Android
Join the social network you control. The most feature-rich Nostr client for Android.
#Amethyst v0.92.5: Bugfixes and library updates for Android 15
Updates compose, benchmark, navigation, and activity
Fixes recreating the new post screen from intent when switching accounts
Prevent clicks outside boost popup by @Giovanni
Download at 

Amethyst - Nostr Client for Android
Join the social network you control. The most feature-rich Nostr client for Android.
#Amethyst v0.92.4: Share to.. Amethyst
- Makes Amethyst a share target for texts, images and videos
- Fixes new media post dialog for the edge to edge borders
- Fixes padding of the new new post screen
- Changes the new post screen to use the non-disappearing version of the scaffold by @Giovanni
- Fixes the write status of outbox/inbox relays on new posts
Download at 

Amethyst - Nostr Client for Android
Join the social network you control. The most feature-rich Nostr client for Android.
#Amethyst v0.92.3: Shorts fling behavior bugfix.
- Uses the same Reaction animation to also do Boosts and speeds up animation
- Reverts hack for fling behavior with misaligned end goals on the Vertical Pager
- Updates to AGP 8.7.1 and SDK 35
- Do not bring the keyboard when the search field reappears.
- Fixes Thread view when loading a reply of a thread that is not cached yet.
Download at 

Amethyst - Nostr Client for Android
Join the social network you control. The most feature-rich Nostr client for Android.
#Amethyst v0.92.2: More animations
This is the first release of our new contributor @Giovanni
Features:
- Adds animation to notification chart by @Giovanni
- Adds animation to FABs by @Giovanni
- Adds animation to zap and reaction popups by @Giovanni
- Adds new fields on vision prescriptions
- Prioritize search results that start with the search term by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
Bug Fixes:
- Fixes the ability to see muted lists in Shorts
- Use "use" blocks to close resources automatically by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Fixes the shorts feed not aligning with the padding of the screen
- Fixes the Zap Setup re-openning when going back after the setup was completed from Alby
- Prevent clicks outside reaction and zap popups by @Giovanni
- Video Rotation: actually rotate if the device orientation is not locked by @KotlinGeek
Performance
- Faster logout processing without closing the account switcher dialog.
Code Quality Improvements:
- Support for login with hex key when using amber
- Updates the API with amber from signature to result
- Adds some test cases for video compressions
- Adds Unknown media type test
- Updates AGP and compose, fragment, navigation, benchmarking and firebase libraries.
Updated translations:
- Czech, German, Swedish and Portuguese by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Dutch by @Bartus
- French by @Anthony 🇫🇷
- Polish by @Polak
- Chinese by @CXPLAY
- Slovenian by @StellarStoic
- Thai by @123🦈ปลาฉลามขึ้นบก
- Bengali by @npub13qtw...x23t
- Hindi by @राज
- Spanish by @⚡₿it₿y₿it⚡
- Hungarian by @npub1ww8k...nvtp
Download at 

Amethyst - Nostr Client for Android
Join the social network you control. The most feature-rich Nostr client for Android.
#Amethyst v0.92.1:
- Fixes Access to local Citrine when Tor is enabled
- Fixes zap splits on a first-time connection to the NWC relay.
Download at 

Amethyst - Nostr Client for Android
Join the social network you control. The most feature-rich Nostr client for Android.
#Amethyst v0.92.0: Tor and NFC-hosted transient accounts
This version ships with a Tor service enabled by default to access .onion urls and untrusted relays from the Outbox model. It also offers NFC-hosted transient accounts: accounts that log off as soon as the app goes to the background, deleting all traces of the account from the phone.
Write your ncryptsec to an NFC tag and hide it in your clothing. When you need to use Amethyst, tap the tag, insert your password and login. Lock the screen to delete everything. If you are an activist and if your phone is confiscated, they will never find anything on the phone. Not even your public key. Ncryptsec is a NIP-49-based password-encrypted nsec. If you need, you can destroy and dispose the NFC tag.
Features:
- Adds tor node
- Adds multiple settings for the use of Tor
- Adds privacy presets to simplify Tor choices
- Adds support for NFC-hosted transient accounts
- Adds button to take and add pictures from camera by @greenart7c3
- Adds Uncompressed option when uploading media by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Adds support for Bloom filters
- Adds zapstore yaml setup
- Adds mempool api to verify OTS via Tor
Bug Fixes
- Fixes the zap options available for the Zap the Devs button
- Fixes edit draft not working when using the quick action menu by @greenart7c3
- Fixes opengraph url preview tags from substack by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Fixes the parsing of d-tags with colons in them
- Fixes back button not working after opening a nostr link from the web
- Fixes push notifications when using amber by @greenart7c3
- Fixes NIP-47 implementation to force relay for the NWC connection.
- Fixes OTS web calls via Tor using mempool's api
- Fixes the loading of localhost urls using Tor
- Fixes .onion urls not using tor even if available
- Fixes show buffering animation when loading videos
- Fixes folowing icon position on chat user pictures
Performance
- Starts to build all OkHttp clients from a main root client to keep the same thread pool
- Caches OTS web calls to avoid pinging the server repeatedly for the same event.
Code Quality Improvements:
- Updates navigation compose, lifecycle, fragment, activity, composeBoms and AGP to 8.6.1
- Improves OTS Verification error messages
Updated translations:
- Czech, German, Swedish and Portuguese by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Dutch by @Bartus
- French by @Anthony 🇫🇷
- Polish by @Polak
- Chinese by @CXPLAY
- Slovenian by @StellarStoic
- Thai by @123🦈ปลาฉลามขึ้นบก
- Bengali by @npub13qtw...x23t
- Hindi by @राज
- Spanish by @⚡₿it₿y₿it⚡
- Hungarian by @npub1ww8k...nvtp
Download via 

Amethyst - Nostr Client for Android
Join the social network you control. The most feature-rich Nostr client for Android.
Meet Amy, our new mascot. 

#Amethyst v0.91.0: Edge to edge feeds
Hidden words now filter by the user's fields as well. You can hide by name, profile picture, banner, lightning and nip-05 addresses and about me fields.
Features:
- Finishes Edge to Edge transition for Android 15
- Adds compression settings to the media uploading screen by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Adds sliding animations in all inner screens
- Adds copy stack to clipboard for error messages that have an exception
- Enables the use of hidden words for all visible properties of the user
Bug Fixes
- Fixes blank alt field when no alt text is provided on NIP-96
- Fixes missing Private Home/Outbox relay list after loading from backup
- Fixes keyboard padding issues when using physical keyboards on the message screens.
- Fixes token sanitization when using gcompatup with unified push by @greenart7c3
- Fixes moving top buttons on the full screen dialog for images and videos.
- Fixes weird padding of the key backup screen
- Fixes using npub instead of pubkey in hex when communicating with Amber
- Fixes blinking on crossfades when the system's light/dark theme is different than the app's theme
- Fixes a mix of languages after changing language in Settings
- Fixes disables saving m3u8 files locally (streaming can't be saved)
- Fixes Community tab not loading up with Global filter
- Fixes size of default banner when the profile is not loaded yet.
Code Quality Improvements:
- Inverts Layouts to place Navigation on top of Scaffold and allow custom scaffolds per route
- Refactors navigation to improve clarity
- Restructures screens into their own packages
- Restructures navigation functions as a single object
- Refactors all TopBars to use default material 3 ones
- Simplifies the "and 2 more" translations for the relay recommendation user lists
- Removes unnecessary observers from the transition in the bottom nav layouts.
- Normalizes cache directories in the Application class
- Fixes text field recompositions because of new keyboard actions
- Moves the profile zap to threads
- Updates to AGP 8.6.0
- Updates zoomable and kotlin serialization
Updated translations:
- Czech, German, Swedish and Portuguese by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Thai by @123🦈ปลาฉลามขึ้นบก
- Dutch by @Bartus
- Hungarian by @npub1ww8k...nvtp
- Bengali by @npub13qtw...x23t
- Polish by @Polak
- Hungarian by @npub1ww8k...nvtp
- Chinese by @CXPLAY
Download via [Obtainium](http://amethyst.social) or [Zap.Store](https://zap.store/)
#Amethyst v0.90.6: Profile Zap Amount fix
- Fixes the sat amount when zapping users directly in the profile by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Adds long press to copy relay url in the relay icons and relay row by @greenart7c3
Updated translations:
- Thai by @123🦈ปลาฉลามขึ้นบก
- Dutch by @Bartus
- Hungarian by @npub1ww8k...nvtp
Download via [Obtainium](http://amethyst.social) or [Zap.Store](https://zap.store/)
#Amethyst v0.90.0: Torrents and Outbox restructuring
This version adds support for NIP-35 Torrent files (dtan.xyz), adds significant memory pruning for encrypted payloads and large events (DMs, Notifications, Zaps, etc), and completely restructures the way most of our caching works to facilitate immediate subscription updates using the outbox model on custom feeds by NIP-51 lists. This version also offers new defaults for NIP-65 and DM relay lists for new users and fixes several bugs and inconsistencies.
Features:
- Adds support for NIP-35 torrents and their comments
- Adds a simplified sync Signer to the Quartz library
- Adds Default lists for NIP-65 inbox and outbox relays
- Adds Default lists for Search relays
- Adds local backup for UserMetadata objects
- Adds local backup for Mute lists
- Adds local backup for NIP-65 relays
- Adds local backup for DM Relays
- Adds local backup for private home relays
- Improves caching of encrypted DMs
- Updates Twitter verification to X
- Improves the rendering of QR Codes
- Adds support to Delete All Drafts
Code Quality Improvements:
- Separates Account actions from Account state in two objects
- Changes Startup procedures to start with Account state and not the full account object
- Moves scope for flows in Account from an Application-wide scope to ViewModel scope
- Removes all LiveData objects from Account in favor of flows from the state object
- Migrates settings saving logic to flows
- Migrates PushNotification services to work without Account and only Account Settings.
- Migrates the spam filter from LiveData to Flows
- Rewrites state flows initializers to avoid inconsistent startups
- Finishes the migration of the service manager to the Application class
- Moves to hold the all feeds in stateflows
- Updates benchmark, composeBOM and firebaseBOM to the latest versions
- Moves the default zap type to a state flow and avoids passing on to the screen when using the default value
- Removing unecessary livedata objects for translation services
- Moves lastread routes to mutableStateFlow
- Migrating livedata to flow for contact list updates of the user.
- Adds a destroy method to FollowList state for consistency
- Moves follow list states to the AccountViewModel
- Migrates Notification Summary to the new state model
- Moves the notification screen to the new state model instead of viewModels
- Refactoring Moving feed status from ViewModel to State objects
Interface Improvements:
- Show only 3 users in the recommended relays section
- Creates links to njump when events can't be found on Amethyst
- Adds support for MOD reports
- Displays commitment PoW if present
- Changes relay set kind to be NIP-51 consistent.
- Adds more information to when error messages are not available in the relay stats.
- Adds context to highlight events
- Adds previews to test markdown rendering
- Improves the look of inlinde code in markdown
- Improves badge display
Performance Improvements:
- Adds pruning for giftwrapped messages
- Fixes clearing of flows and live data object pools before removing notes from the local cache
- Improves stability of composables
- Migrates caching of decrypted value outside of the Event class
- Removes encrypted parts of NIP-17 from the cache
- Removes old NIP-04 messages from the cache
- Avoids deleting new NIP-17 plain text chats from memory
- Avoids bottom nav recompositions
- Simplifies nav bar selected calculations
- Avoids remembering edit lists that will never exist.
- Improves speed of chatlist rendering
Bug Fixes:
- Fixes lingering cache and threads still active after killing the app
- Fixes crash when opening the Relay screen with empty urls as relays.
- Fixes horizontal padding of the chat messages
- Fixes the download of 1000s of NIP-65 relay lists because some relays consider empty lists as null and return everything.
- Fixes fdroid push registration to re-register even if the saved distributor was already selected.
- Fixes crash when the relay url of a user is duplicated.
- Fixes padding of short quotes
- Fixes slow down when the last message on chat is a base64 image.
- Fixes the centralization of the "and more" part of relay recommendations
- Fixes miscaching flows of the relay lists from follows.
- Fixes miscache of hashtag following button
- Fixes heading sizes on markdown
- Changes Delete all events to use maximum chunks of 200 elements to avoid the 65KB stringified JSON limit of many relays.
Updated translations:
- Czech, German, Swedish and Portuguese by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Polish by @Polak
- French by @Anthony 🇫🇷
- Arabic, Bengali by @npub13qtw...x23t
- Thai by @123🦈ปลาฉลามขึ้นบก and @siamstr.com
- Hindi by @राज
- Spanish by @⚡₿it₿y₿it⚡
- Dutch by @Bartus
- Chinese by @CXPLAY and @rasputin
- Hungarian by @npub1ww8k...nvtp
Download via [Obtainium](http://amethyst.social) or [Zap.Store](https://zap.store/)
This version adds support for NIP-35 Torrent files (dtan.xyz), adds significant memory pruning for encrypted payloads and large events (DMs, Notifications, Zaps, etc), and completely restructures the way most of our caching works to facilitate immediate subscription updates using the outbox model on custom feeds by NIP-51 lists. This version also offers new defaults for NIP-65 and DM relay lists for new users and fixes several bugs and inconsistencies.
Features:
- Adds support for NIP-35 torrents and their comments
- Adds a simplified sync Signer to the Quartz library
- Adds Default lists for NIP-65 inbox and outbox relays
- Adds Default lists for Search relays
- Adds local backup for UserMetadata objects
- Adds local backup for Mute lists
- Adds local backup for NIP-65 relays
- Adds local backup for DM Relays
- Adds local backup for private home relays
- Improves caching of encrypted DMs
- Updates Twitter verification to X
- Improves the rendering of QR Codes
- Adds support to Delete All Drafts
Code Quality Improvements:
- Separates Account actions from Account state in two objects
- Changes Startup procedures to start with Account state and not the full account object
- Moves scope for flows in Account from an Application-wide scope to ViewModel scope
- Removes all LiveData objects from Account in favor of flows from the state object
- Migrates settings saving logic to flows
- Migrates PushNotification services to work without Account and only Account Settings.
- Migrates the spam filter from LiveData to Flows
- Rewrites state flows initializers to avoid inconsistent startups
- Finishes the migration of the service manager to the Application class
- Moves to hold the all feeds in stateflows
- Updates benchmark, composeBOM and firebaseBOM to the latest versions
- Moves the default zap type to a state flow and avoids passing on to the screen when using the default value
- Removing unecessary livedata objects for translation services
- Moves lastread routes to mutableStateFlow
- Migrating livedata to flow for contact list updates of the user.
- Adds a destroy method to FollowList state for consistency
- Moves follow list states to the AccountViewModel
- Migrates Notification Summary to the new state model
- Moves the notification screen to the new state model instead of viewModels
- Refactoring Moving feed status from ViewModel to State objects
Interface Improvements:
- Show only 3 users in the recommended relays section
- Creates links to njump when events can't be found on Amethyst
- Adds support for MOD reports
- Displays commitment PoW if present
- Changes relay set kind to be NIP-51 consistent.
- Adds more information to when error messages are not available in the relay stats.
- Adds context to highlight events
- Adds previews to test markdown rendering
- Improves the look of inlinde code in markdown
- Improves badge display
Performance Improvements:
- Adds pruning for giftwrapped messages
- Fixes clearing of flows and live data object pools before removing notes from the local cache
- Improves stability of composables
- Migrates caching of decrypted value outside of the Event class
- Removes encrypted parts of NIP-17 from the cache
- Removes old NIP-04 messages from the cache
- Avoids deleting new NIP-17 plain text chats from memory
- Avoids bottom nav recompositions
- Simplifies nav bar selected calculations
- Avoids remembering edit lists that will never exist.
- Improves speed of chatlist rendering
Bug Fixes:
- Fixes lingering cache and threads still active after killing the app
- Fixes crash when opening the Relay screen with empty urls as relays.
- Fixes horizontal padding of the chat messages
- Fixes the download of 1000s of NIP-65 relay lists because some relays consider empty lists as null and return everything.
- Fixes fdroid push registration to re-register even if the saved distributor was already selected.
- Fixes crash when the relay url of a user is duplicated.
- Fixes padding of short quotes
- Fixes slow down when the last message on chat is a base64 image.
- Fixes the centralization of the "and more" part of relay recommendations
- Fixes miscaching flows of the relay lists from follows.
- Fixes miscache of hashtag following button
- Fixes heading sizes on markdown
- Changes Delete all events to use maximum chunks of 200 elements to avoid the 65KB stringified JSON limit of many relays.
Updated translations:
- Czech, German, Swedish and Portuguese by @⚡ Dee Kay ⚡🇸🇪🇬🇧🇨🇿🇧🇷🇦🇹
- Polish by @Polak
- French by @Anthony 🇫🇷
- Arabic, Bengali by @npub13qtw...x23t
- Thai by @123🦈ปลาฉลามขึ้นบก and @siamstr.com
- Hindi by @राज
- Spanish by @⚡₿it₿y₿it⚡
- Dutch by @Bartus
- Chinese by @CXPLAY and @rasputin
- Hungarian by @npub1ww8k...nvtp
Download via [Obtainium](http://amethyst.social) or [Zap.Store](https://zap.store/)