Join Nostr
2026-03-23 15:21:37 UTC

Amethyst on Nostr: #Amethyst 1.06 Polls: - Adds creating and rendering NIP-85 - Redesign of the poll and ...

#Amethyst 1.06

Polls:
- Adds creating and rendering NIP-85
- Redesign of the poll and zap poll cards
- Adds special notification card for active polls

Relay Feeds
- Adds support for rendering relay feeds
- Adds support for NIP-51 favorite relay feeds
- Shows favorite relays in the top nav filter
- Clickable wss:// links
- New user gets nostr.wine to fav relay feeds

Media Player
- Redesigned player controls
- Supports music with waveform animations
- Migrates to new Media3 content views
- Improved Picture in Picture actions
- Fix playback lifecycle issues on PiP
- Adds support for uploading audio

NWC Wallets:
- Adds support for in-app Wallets
- Adds receive and pay actions
- Adds views for balance and transactions
- Adds transaction filtering by type
- Adds pagination to transaction screen
- Adds test cases from other repos to guarantee interoperability

Calendar:
- Renders NIP-52 Calendar appointments
- Supports calendar time and date slots
- Refactored the early implementation on Quartz for easier use

Code Snippets:
- Adds support for NIP-C0 Code Snippets
- Replies using NIP-22

NIPs on Nostr
- Adds support for event kind 30817
- Replies using NIP-22

PayTo:
- Adds support for NIP-A3 Payment targets by

Blossom BUD-10:
- Adds support for "Blossom:" URIs on the post
- Supports automatic discovery of servers
- Includes support in previews
- Includes support for encryption when using it in NIP-17 DMs.

Expirations
- Adds enhanced support for custom expirations in any new post.
- Displays expirations on posts and DMs

Relay Monitors:
- Adds support for NIP-66 Relay monitor and discovery support to Quartz

Attestations:
- Adds support for rendering Attestations (https://attestr.xyz/)
- Recommendations, Requests and Attestor Declarations are also included.

Chess:
- Adds support for Chess/Jester protocol
- Full chess game implemented
- Supports for game challenges and view external games
- Running on debug only for now

DMs:
- Removes NIP-04 DMs
- Blocks sending if the receiver doesn't have NIP-17 relay lists.
- Removes force-activate NIP-17

Push Notifications:
- Adds support for inline reply
- Adds support for notification grouping
- Adds support for Async image Loading
- Removed NIP-04 notifications

Long Form:
- Adds support for writing Markdown content
- Includes support for auto-saving drafts
- Includes support for editing

Uploads:
- Adds support to upload Documents & audio
- Adds toggle to stip file metadata regardless of compression by
- Adds encrypted file upload fallback option for NIP-17 chats
- Removes support for NIP-96 and updates Blossom recommendations

Content Warning:
- Adds an description field in new post
- Displays reason on warning composables

Settings redesign:
- Consolidate settings into a single Settings hub screen
- Redesigns Zap and NWC setup screens
- Redesigns Custom zap amount screens
- Adds brand new Translation Settings screen
- Adds blockchain explorer settings page for OTS verification
- Adds reactions row settings (enable/disable, order, show/hide counters) by
- Tapping on Zap without any pre-configured amount opens the custom dialog

Content parsers:
- URL/URI parser rewrite in Kotlin multiplatform
- Fixes characters attached to URLs or nostr URLs without a space
- Massively increases parsing performance
- Treat multibyte characters as URL terminators in RichTextParser by
- Adds a parser for blossom and wss uris

UI Improvements:
- Minimizes parent thread rendering in quoted notes by
- New Material 3 UI for DropDowns by
- New Material 3 UI for feed filters by
- Draft Screen requests confirmation before deleting drafts on swipe
- Swipe to switch tabs. Main screen and messages by
- Adds support for rendering Zap events when quoted inside of posts.
- Adds a Broadcasting feedback pop-up in the Complete UI mode

Relay Management:
- Adds relay search tooltip when adding relays
- Adds the list of keys using each relay to the relay information
- Adds active subscriptions and outbox event in the queue to relay information
- Adds a complete list of event kind names to the subscription card to relay information
- Tracks and displays connection success rate on relay settings
- Adds relay settings export functionality
- Adds NIP-45 count queries to show how many events each relay has.
- Adds Relay sync utility to help users move posts between relays.

Search:
- Breaks the search filter into two subscriptions to prioritize Metadata without punishing content.
- Fixes the need to start user searches with @ in user fields
- Fixes the stability of the search feed when the user navigates away and back.
- Replaces about me for NIP-05 in the user search results
- Adds relay URL search to the search page
- Forces returning one user when searching by nip-05
- Removes outdated versions of addressables from the search results

Profiles:
- Adds support for NIP-39 External Identities with kind 10011
- Adds a profile picture upload button when the user has no picture
- Adds last seen to the user profile
- Adds nprofile and npub copy options to the profile
- Groups received zap amounts by sending the user in the profile tab
- Increases the limit of Zap downloads for profiles to 1000
- Simplifies profile edit screen layout by
- Migrates profile galleries to display a thumbnail for videos
- Fixes profile galleries' aspect ratios
- Adds support for Namecoin .bit urls to NIP-05 and choice of ElectrumX server to resolve namecoins.

Onboarding
- Adds bulk follow screens to search for a user and to copy his/her follow list

Voice message by
- Adds voice anonymization
- Change from "hold to record" to "click to start, click to stop"
- Display kind 1 voice replies as an audio waveform
- Increases max voice record duration to 600 seconds
- Switches the public message event to use quoted posts for replies

Fixes:
- Fixes "forked from" label rendering
- Avoids crashing when the `k` tag cannot be parsed to a number
- Only use Voice Reply events when replying to voice notes. Others just receive a URL.
- Fixes the lack of update in the follow count on the UserProfile page
- Fixes out of memory when downloading large videos
- Fixes Jackson deserialization for empty Filters and add regression test by
- Fixes NullPointerException when the filter contains tags
- Fixes download cancellations when screen components disappear
- Migrates to use "title" instead of "name" tags for NIP-51 lists
- Adds a longer crop for npubs so that we can see vanity keys better
- Fixes the need to have tags and kinds for inbox.nostr.wine to work
- Blocks the size of Relay Auth Status arrays from growing forever with auth messages
- Fixes crash when getting OpenGraph tags of invalid URLs
- Fixes NIP-44 key mutation in NIP-46 connect
- Location permission watcher moved outside screens to avoid recreation
- Solves the sorting contract crash on search by precaching all values before sorting users.
- Fixes lingering relay connections from loading follows outbox's settings.
- Enhance NIP-38 user status display with emoji support and metadata tags
- Fixes bug on Show More calculations for very long texts without spaces
- Fixing IO Dispatchers and coroutine scopes of choice
- Fixes anySync parallel operation that was returning the first result, not the first positive "any".
- Fixes Req onCannotConnect listeners to the relays that actually sent the req
- Fixes hanging subscriptions when exceptions happen during NostrClient utility methods

Defaults:
- Switches wss://nostr.band to wss://antiprimal.net, wss://relay.ditto.pub on app defaults
- Adds wss://nostr.wine, wss://news.utxo.one as favorite relay feeds
- Adds wss://directory.yabu.me and wss://profiles.nostr1.com as index relays
- Adds electrumx.testls.space, nmc2.bitcoins.sk, 46.229.238.187 and i665jpwsq46zlsdbnj4axgzd3s56uzey5uhotsnxzsknzbn36jaddsid.onion as ElectrumX servers

Quartz:
- Adds Relay Server implementation with NIP-45 COUNT and NIP-42 AUTH support
- Adds support for dynamic auth policies to the relay implementation.
- Migrates Quartz EventStore from Android-only to KMP
- Adds a reqUntilEoseAsFlow extension to the Nostr Client
- Adds a reqBypassingRelayLimits extension to the Nostr Client
- Adds comprehensive NIP-46 Bunker support
- Adds comprehensive support for NIP-47 non-payment methods.

Adds complete support for iOS to Quartz by
- Provide implementation for Rfc3986 on iOS, using the Swift Rfc3986UriBridge.
- Provide implementation for LargeCache, using a CacheMap
- Provide implementation for fastFindURLs()
- Provide implementation for makeAbsoluteIfRelativeUrl() in ServerInfoParser.ios.kt
- Provide implementation for UrlEncoder
- Provide implementation for UnicodeNormalizer
- Provide implementation for GZip compression/decompression. Some small fixes in URLs.ios.kt
- Provide implementation for AESCBC
- Provide implementation for AESGCM
- Provide implementation for DigestInstance
- Provide implementation for LibSodium

Amethyst Desktop by
- Adds NIP-46 Bunker Login
- Adds Support for Chess
- Adds Thread Screens
- Adds advanced search with query engine and filter panel
- Adds encrypted DMs (NIP-04/NIP-17)
- Adds proper empty states with EOSE tracking
- Adds multi-column deck layout
- Adds Full media parity — images, video, audio, encrypted DMs, upload, lightbox
- Adds advanced search with NIP-50, collapsible sections, and nav state preservation
- Clear stored credentials on logout
- Adds bunker heartbeat indicator
- Adds QR-based signer pairing
- Migrates lifecycle-viewmodel KMP dependencies to KMP/Commons
- Migrates drawReplyLevel modifier to KMP/Commons
- Migrates ThreadFilter to KMP/Commons
- Migrates Card interface and CardFeedState to KMP/Commons
- Migrates Channels (public chats, ephemeral channels, and live streams) Account modules to KMP/Commons
- Migrates private chatroom models to KMP/Commons
- Migrates reports states to KMP/Commons
- Migrates Emoji State to KMP/Commons
- Migrates lud06 to lud16 mapping to KMP/Quartz
- Migrates the new LocalCache observables to KMP/Commons
- Migrates rich text parser from JVM to KMP/Commons

Code Quality
- Migrates to AGP 9.0
- Adds Amethyst Desktop to CI/CD and Release builds
- Removes the in-app memory counter methods
- Refactors the old NIP-05 code on Quartz
- Migrates contact list management to addressable notes
- Creates new observable flows for LocalCache.
- Moves metadata methods from User to UserCache objects
- Separate Addressable vs Replaceable event class bases
- Avoid dependency on AccountSettings for NwcSignerState
- Finishes the transition to EventHint objects for building events.
- Lots of code review fixes by
- Large accessibility review by
- Moves Top Nav Filter markers from Strings to full objects.
- Removes support for feed definitions
- AccountState refactoring

AI:
- Add SKILL.md for AI agent customization
- Add settings and hooks to setup Android Development for the agent

Updated translations:
- Czech, German, Swedish, and Portuguese by
- Hungarian by
- French by
- Polish by
- Hindi by
- Slovenian by
- Bengali by
- Chinese by hypnotichemionus4
- Spanish by