#Amethyst 1.06

aa9047325603dacd...

npub142gywvjkq0dv6nupggyn2euhx4nduwc7yz5f24ah9rpmunr2s39se3xrj0

hex

0b6af7660b44215b0edf9c39a1c9c0b4aafba7aba1ae28665ffcecb1a9717195

nevent

nevent1qqsqk6hhvc95gg2mpm0ecwdpe8qtf2hm5746rt3gve0lem9349chr9gprpmhxue69uhhyetvv9ujuem4d36kwatvw5hx6mm9qgs24yz8xftq8kkdf7q5yzf4v7tn2ek78v0zp2y427mj3sa7f34ggjcm0qg5y

Kind-1 (TextNote)

2026-03-23T15:21:37Z

#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 nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk

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 nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx
  • 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 nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk
  • 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 nostr:nprofile1qqst8ep73nr7dhlj8geajgf686gjmz2mrslyy5pypcxfnkl0uvrgkhcpzfmhxue69uhhstntda4xjunp9e5k7tcpzamhxue69uhhxetpwf3kstnwdaejuar0v3shjtcprdmhxue69uhkuun9d3shjtnr94ehgetvd3shytnwv46z7snrts5
  • Adds a parser for blossom and wss uris

UI Improvements:

  • Minimizes parent thread rendering in quoted notes by nostr:nprofile1qqswum4p82uluhz2dr40nvdrflspffntgqghc58w9fs57nx6jkdkuaqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ec8y6tdv9kzumn9wshszymhwden5te0wp6hyurvv4cxzeewv4ej7rk83yd
  • New Material 3 UI for DropDowns by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx
  • New Material 3 UI for feed filters by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx
  • Draft Screen requests confirmation before deleting drafts on swipe
  • Swipe to switch tabs. Main screen and messages by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx
  • 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 nostr:nprofile1qqswum4p82uluhz2dr40nvdrflspffntgqghc58w9fs57nx6jkdkuaqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ec8y6tdv9kzumn9wshszymhwden5te0wp6hyurvv4cxzeewv4ej7rk83yd
  • 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 nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx

  • 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 nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk
  • 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 nostr:nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v

  • 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 nostr:nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4sppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7ma4uad

  • 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 nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx
  • Large accessibility review by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx
  • 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 nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx
  • Hungarian by nostr:nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l
  • French by nostr:nprofile1qqs8av5uzf4nv2q80chrmp3mj9a9dd6zjw4fmz56hsn2gzar72rxhtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcuvd26f
  • Polish by nostr:nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpr9mhxue69uhkummnw3ezumnpv3sk5mnfdvhx7un89uq3zamnwvaz7tmwdaehgu3wvfhkuep0qy8hwumn8ghj7cm6v9ejuar0wqhsscy248
  • Hindi by nostr:nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7x03hlx
  • Slovenian by nostr:nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9nhwden5te0wfjkccte9ejxjar5duh8qatz9uq36amnwvaz7tmwdaehgu3dxqezu7tpdd5ksmmwdejjucm0d5hs2kgtzl
  • Bengali by nostr:nprofile1qqsgs9hgjw87vz36jf2r83m5zree2q87zvs8s7kty9jljdz7wprytyspremhxue69uhkummnw3ezu6m0de5kueedv3jkwunpv9nzumnv9uq3kamnwvaz7tm5d4cz6un9d3shjtnrv4ekxtn5wfskgef0qy28wumn8ghj7mn0wd68yt3k8quzummjvuhsg63aw2
  • Chinese by hypnotichemionus4
  • Spanish by nostr:nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq

Raw JSON

{
  "kind": 1,
  "id": "0b6af7660b44215b0edf9c39a1c9c0b4aafba7aba1ae28665ffcecb1a9717195",
  "pubkey": "aa9047325603dacd4f8142093567973566de3b1e20a89557b728c3be4c6a844b",
  "created_at": 1774279297,
  "tags": [
    [
      "alt",
      "A short note: #Amethyst 1.06\n\nPolls:\n- Adds creating and renderi..."
    ],
    [
      "p",
      "7579076d9aff0a4cfdefa7e2045f2486c7e5d8bc63bfc6b45397233e1bbfcb19",
      "wss://nos.lol/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "b3e43e8cc7e6dff23a33d9213a3e912d895b1c3e4250240e0c99dbefe3068b5f",
      "wss://x.kojira.io/"
    ],
    [
      "p",
      "ee6ea13ab9fe5c4a68eaf9b1a34fe014a66b40117c50ee2a614f4cda959b6e74",
      "wss://relay.damus.io/"
    ],
    [
      "p",
      "ec5663bb035f8e585bfa423c303a557648f95239cc07516bb06d6f59386dd2a4",
      "wss://nostr.bitcoiner.social/"
    ],
    [
      "p",
      "56132cea7f54f860ff004b2e8f7e4b3953b0c9f37a5aaa88d0e5a5da036576d6",
      "wss://nos.lol/"
    ],
    [
      "p",
      "6cd90f81ec60e076e9f187096c56fd1b0b5223f833a7d2c3ea370e81ad5d4ee2",
      "wss://relay.nostr.band/"
    ],
    [
      "p",
      "7eb29c126b3628077e2e3d863b917a56b74293aa9d8a9abc26a40ba3f2866baf",
      "wss://nos.lol/"
    ],
    [
      "p",
      "d2244fcb9b7da031ed4710999911a83393bf1a1929c4ec56ff400f909b3c4239",
      "wss://nostr.nadajnik.org/"
    ],
    [
      "p",
      "73b57e3b913133a1be93882d2c834a73614081f283afff73142ff17c3e6f9c2b",
      "wss://relay.damus.io/"
    ],
    [
      "p",
      "000000005e9dda01479c76c5f4fccbaebe4e7856e02f8e85adba05ad62ad6927",
      "wss://relay.damus.io/"
    ],
    [
      "p",
      "8816e8938fe60a3a925433c77410f39500fe1320787acb2165f9345e70464592",
      "wss://nostr.koning-degraaf.nl/"
    ],
    [
      "p",
      "ff2e412319f01788687a63de3248c2e9fac3f2ad15e3d621e2b42275cacb9ecd",
      "ws://dbtksyiddypgaplsmbrjfhioxgpykk7gzplas4cz22jdgcuaoyubdrqd.onion/"
    ],
    [
      "p",
      "7579076d9aff0a4cfdefa7e2045f2486c7e5d8bc63bfc6b45397233e1bbfcb19",
      "wss://nos.lol/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "7579076d9aff0a4cfdefa7e2045f2486c7e5d8bc63bfc6b45397233e1bbfcb19",
      "wss://nos.lol/"
    ],
    [
      "p",
      "b3e43e8cc7e6dff23a33d9213a3e912d895b1c3e4250240e0c99dbefe3068b5f",
      "wss://x.kojira.io/"
    ],
    [
      "p",
      "ee6ea13ab9fe5c4a68eaf9b1a34fe014a66b40117c50ee2a614f4cda959b6e74",
      "wss://relay.damus.io/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "ee6ea13ab9fe5c4a68eaf9b1a34fe014a66b40117c50ee2a614f4cda959b6e74",
      "wss://relay.damus.io/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "7579076d9aff0a4cfdefa7e2045f2486c7e5d8bc63bfc6b45397233e1bbfcb19",
      "wss://nos.lol/"
    ],
    [
      "p",
      "ec5663bb035f8e585bfa423c303a557648f95239cc07516bb06d6f59386dd2a4",
      "wss://nostr.bitcoiner.social/"
    ],
    [
      "p",
      "56132cea7f54f860ff004b2e8f7e4b3953b0c9f37a5aaa88d0e5a5da036576d6",
      "wss://nos.lol/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "6cd90f81ec60e076e9f187096c56fd1b0b5223f833a7d2c3ea370e81ad5d4ee2",
      "wss://relay.nostr.band/"
    ],
    [
      "p",
      "7eb29c126b3628077e2e3d863b917a56b74293aa9d8a9abc26a40ba3f2866baf",
      "wss://nos.lol/"
    ],
    [
      "p",
      "d2244fcb9b7da031ed4710999911a83393bf1a1929c4ec56ff400f909b3c4239",
      "wss://nostr.nadajnik.org/"
    ],
    [
      "p",
      "73b57e3b913133a1be93882d2c834a73614081f283afff73142ff17c3e6f9c2b",
      "wss://relay.damus.io/"
    ],
    [
      "p",
      "000000005e9dda01479c76c5f4fccbaebe4e7856e02f8e85adba05ad62ad6927",
      "wss://relay.damus.io/"
    ],
    [
      "p",
      "8816e8938fe60a3a925433c77410f39500fe1320787acb2165f9345e70464592",
      "wss://nostr.koning-degraaf.nl/"
    ],
    [
      "p",
      "ff2e412319f01788687a63de3248c2e9fac3f2ad15e3d621e2b42275cacb9ecd",
      "ws://dbtksyiddypgaplsmbrjfhioxgpykk7gzplas4cz22jdgcuaoyubdrqd.onion/"
    ],
    [
      "p",
      "7579076d9aff0a4cfdefa7e2045f2486c7e5d8bc63bfc6b45397233e1bbfcb19",
      "wss://nos.lol/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "7579076d9aff0a4cfdefa7e2045f2486c7e5d8bc63bfc6b45397233e1bbfcb19",
      "wss://nos.lol/"
    ],
    [
      "p",
      "b3e43e8cc7e6dff23a33d9213a3e912d895b1c3e4250240e0c99dbefe3068b5f",
      "wss://x.kojira.io/"
    ],
    [
      "p",
      "ee6ea13ab9fe5c4a68eaf9b1a34fe014a66b40117c50ee2a614f4cda959b6e74",
      "wss://relay.damus.io/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "ee6ea13ab9fe5c4a68eaf9b1a34fe014a66b40117c50ee2a614f4cda959b6e74",
      "wss://relay.damus.io/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "7579076d9aff0a4cfdefa7e2045f2486c7e5d8bc63bfc6b45397233e1bbfcb19",
      "wss://nos.lol/"
    ],
    [
      "p",
      "ec5663bb035f8e585bfa423c303a557648f95239cc07516bb06d6f59386dd2a4",
      "wss://nostr.bitcoiner.social/"
    ],
    [
      "p",
      "56132cea7f54f860ff004b2e8f7e4b3953b0c9f37a5aaa88d0e5a5da036576d6",
      "wss://nos.lol/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/"
    ],
    [
      "p",
      "6cd90f81ec60e076e9f187096c56fd1b0b5223f833a7d2c3ea370e81ad5d4ee2",
      "wss://relay.nostr.band/"
    ],
    [
      "p",
      "7eb29c126b3628077e2e3d863b917a56b74293aa9d8a9abc26a40ba3f2866baf",
      "wss://nos.lol/"
    ],
    [
      "p",
      "d2244fcb9b7da031ed4710999911a83393bf1a1929c4ec56ff400f909b3c4239",
      "wss://nostr.nadajnik.org/"
    ],
    [
      "p",
      "73b57e3b913133a1be93882d2c834a73614081f283afff73142ff17c3e6f9c2b",
      "wss://relay.damus.io/"
    ],
    [
      "p",
      "000000005e9dda01479c76c5f4fccbaebe4e7856e02f8e85adba05ad62ad6927",
      "wss://relay.damus.io/"
    ],
    [
      "p",
      "8816e8938fe60a3a925433c77410f39500fe1320787acb2165f9345e70464592",
      "wss://nostr.koning-degraaf.nl/"
    ],
    [
      "p",
      "ff2e412319f01788687a63de3248c2e9fac3f2ad15e3d621e2b42275cacb9ecd",
      "ws://dbtksyiddypgaplsmbrjfhioxgpykk7gzplas4cz22jdgcuaoyubdrqd.onion/"
    ],
    [
      "t",
      "Amethyst"
    ],
    [
      "t",
      "amethyst"
    ],
    [
      "r",
      "https://electrumx.testls.space/"
    ],
    [
      "r",
      "https://nostr:nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7x03hlx"
    ],
    [
      "r",
      "https://nmc2.bitcoins.sk/"
    ],
    [
      "r",
      "https://nostr:nprofile1qqs8av5uzf4nv2q80chrmp3mj9a9dd6zjw4fmz56hsn2gzar72rxhtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcuvd26f"
    ],
    [
      "r",
      "http://i665jpwsq46zlsdbnj4axgzd3s56uzey5uhotsnxzsknzbn36jaddsid.onion/"
    ],
    [
      "r",
      "https://nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk"
    ],
    [
      "r",
      "https://nostr.wine/"
    ],
    [
      "r",
      "https://wss//antiprimal.net"
    ],
    [
      "r",
      "https://wss//relay.ditto.pub"
    ],
    [
      "r",
      "https://inbox.nostr.wine/"
    ],
    [
      "r",
      "https://wss//nostr.wine"
    ],
    [
      "r",
      "https://wss//directory.yabu.me"
    ],
    [
      "r",
      "https://wss//profiles.nostr1.com"
    ],
    [
      "r",
      "https://46.229.238.187/"
    ],
    [
      "r",
      "https://nostr:nprofile1qqsgs9hgjw87vz36jf2r83m5zree2q87zvs8s7kty9jljdz7wprytyspremhxue69uhkummnw3ezu6m0de5kueedv3jkwunpv9nzumnv9uq3kamnwvaz7tm5d4cz6un9d3shjtnrv4ekxtn5wfskgef0qy28wumn8ghj7mn0wd68yt3k8quzummjvuhsg63aw2"
    ],
    [
      "r",
      "https://serverinfoparser.ios.kt/"
    ],
    [
      "r",
      "https://urls.ios.kt/"
    ],
    [
      "r",
      "https://attestr.xyz/"
    ],
    [
      "r",
      "https://nostr:nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpr9mhxue69uhkummnw3ezumnpv3sk5mnfdvhx7un89uq3zamnwvaz7tmwdaehgu3wvfhkuep0qy8hwumn8ghj7cm6v9ejuar0wqhsscy248"
    ],
    [
      "r",
      "https://nostr:nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v"
    ],
    [
      "r",
      "https://nostr:nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l"
    ],
    [
      "r",
      "https://wss//news.utxo.one"
    ],
    [
      "r",
      "https://skill.md/"
    ],
    [
      "r",
      "https://wss//nostr.band"
    ],
    [
      "r",
      "https://nostr:nprofile1qqst8ep73nr7dhlj8geajgf686gjmz2mrslyy5pypcxfnkl0uvrgkhcpzfmhxue69uhhstntda4xjunp9e5k7tcpzamhxue69uhhxetpwf3kstnwdaejuar0v3shjtcprdmhxue69uhkuun9d3shjtnr94ehgetvd3shytnwv46z7snrts5"
    ],
    [
      "r",
      "https://nostr:nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4sppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7ma4uad"
    ],
    [
      "r",
      "https://nostr:nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9nhwden5te0wfjkccte9ejxjar5duh8qatz9uq36amnwvaz7tmwdaehgu3dxqezu7tpdd5ksmmwdejjucm0d5hs2kgtzl"
    ],
    [
      "r",
      "https://nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx"
    ],
    [
      "r",
      "https://nostr:nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq"
    ],
    [
      "r",
      "https://nostr:nprofile1qqswum4p82uluhz2dr40nvdrflspffntgqghc58w9fs57nx6jkdkuaqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ec8y6tdv9kzumn9wshszymhwden5te0wp6hyurvv4cxzeewv4ej7rk83yd"
    ],
    [
      "zapraiser",
      "1000000"
    ],
    [
      "zap",
      "460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c",
      "wss://nostr.wine/",
      "0.3"
    ],
    [
      "zap",
      "7579076d9aff0a4cfdefa7e2045f2486c7e5d8bc63bfc6b45397233e1bbfcb19",
      "wss://nos.lol/",
      "0.07"
    ],
    [
      "zap",
      "ca89cb11f1c75d5b6622268ff43d2288ea8b2cb5b9aa996ff9ff704fc904b78b",
      "wss://nostr.mom/",
      "0.2"
    ],
    [
      "zap",
      "b3e43e8cc7e6dff23a33d9213a3e912d895b1c3e4250240e0c99dbefe3068b5f",
      "wss://x.kojira.io/",
      "0.03"
    ],
    [
      "zap",
      "ee6ea13ab9fe5c4a68eaf9b1a34fe014a66b40117c50ee2a614f4cda959b6e74",
      "wss://relay.damus.io/",
      "0.03"
    ],
    [
      "zap",
      "ec5663bb035f8e585bfa423c303a557648f95239cc07516bb06d6f59386dd2a4",
      "wss://nostr.bitcoiner.social/",
      "0.1"
    ],
    [
      "zap",
      "56132cea7f54f860ff004b2e8f7e4b3953b0c9f37a5aaa88d0e5a5da036576d6",
      "wss://nos.lol/",
      "0.15"
    ],
    [
      "zap",
      "6cd90f81ec60e076e9f187096c56fd1b0b5223f833a7d2c3ea370e81ad5d4ee2",
      "wss://relay.nostr.band/",
      "0.02"
    ],
    [
      "zap",
      "7eb29c126b3628077e2e3d863b917a56b74293aa9d8a9abc26a40ba3f2866baf",
      "wss://nos.lol/",
      "0.02"
    ],
    [
      "zap",
      "d2244fcb9b7da031ed4710999911a83393bf1a1929c4ec56ff400f909b3c4239",
      "wss://nostr.nadajnik.org/",
      "0.02"
    ],
    [
      "zap",
      "000000005e9dda01479c76c5f4fccbaebe4e7856e02f8e85adba05ad62ad6927",
      "wss://relay.damus.io/",
      "0.01"
    ],
    [
      "zap",
      "8816e8938fe60a3a925433c77410f39500fe1320787acb2165f9345e70464592",
      "wss://nostr.koning-degraaf.nl/",
      "0.02"
    ],
    [
      "zap",
      "ff2e412319f01788687a63de3248c2e9fac3f2ad15e3d621e2b42275cacb9ecd",
      "ws://dbtksyiddypgaplsmbrjfhioxgpykk7gzplas4cz22jdgcuaoyubdrqd.onion/",
      "0.02"
    ]
  ],
  "content": "#Amethyst 1.06\n\nPolls:\n- Adds creating and rendering NIP-85\n- Redesign of the poll and zap poll cards\n- Adds special notification card for active polls\n\nRelay Feeds\n- Adds support for rendering relay feeds\n- Adds support for NIP-51 favorite relay feeds\n- Shows favorite relays in the top nav filter\n- Clickable wss:// links \n- New user gets nostr.wine to fav relay feeds\n\nMedia Player\n- Redesigned player controls \n- Supports music with waveform animations\n- Migrates to new Media3 content views\n- Improved Picture in Picture actions\n- Fix playback lifecycle issues on PiP\n- Adds support for uploading audio\n\nNWC Wallets:\n- Adds support for in-app Wallets\n- Adds receive and pay actions\n- Adds views for balance and transactions\n- Adds transaction filtering by type\n- Adds pagination to transaction screen\n- Adds test cases from other repos to guarantee interoperability\n\nCalendar:\n- Renders NIP-52 Calendar appointments\n- Supports calendar time and date slots \n- Refactored the early implementation on Quartz for easier use\n\nCode Snippets:\n- Adds support for NIP-C0 Code Snippets\n- Replies using NIP-22\n\nNIPs on Nostr\n- Adds support for event kind 30817\n- Replies using NIP-22\n\nPayTo:\n- Adds support for NIP-A3 Payment targets by nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk\n\nBlossom BUD-10:\n- Adds support for \"Blossom:\" URIs on the post\n- Supports automatic discovery of servers\n- Includes support in previews\n- Includes support for encryption when using it in NIP-17 DMs.\n\nExpirations\n- Adds enhanced support for custom expirations in any new post.\n- Displays expirations on posts and DMs\n\nRelay Monitors:\n- Adds support for NIP-66 Relay monitor and discovery support to Quartz\n\nAttestations:\n- Adds support for rendering Attestations (https://attestr.xyz/)\n- Recommendations, Requests and Attestor Declarations are also included.\n\nChess:\n- Adds support for Chess/Jester protocol\n- Full chess game implemented\n- Supports for game challenges and view external games\n- Running on debug only for now\n\nDMs:\n- Removes NIP-04 DMs\n- Blocks sending if the receiver doesn't have NIP-17 relay lists.\n- Removes force-activate NIP-17\n\nPush Notifications:\n- Adds support for inline reply\n- Adds support for notification grouping\n- Adds support for Async image Loading\n- Removed NIP-04 notifications\n\nLong Form:\n- Adds support for writing Markdown content\n- Includes support for auto-saving drafts\n- Includes support for editing\n\nUploads:\n- Adds support to upload Documents \u0026 audio\n- Adds toggle to stip file metadata regardless of compression by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx\n- Adds encrypted file upload fallback option for NIP-17 chats\n- Removes support for NIP-96 and updates Blossom recommendations\n\nContent Warning:\n- Adds an description field in new post\n- Displays reason on warning composables\n\nSettings redesign:\n- Consolidate settings into a single Settings hub screen\n- Redesigns Zap and NWC setup screens\n- Redesigns Custom zap amount screens\n- Adds brand new Translation Settings screen\n- Adds blockchain explorer settings page for OTS verification\n- Adds reactions row settings (enable/disable, order, show/hide counters) by nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk\n- Tapping on Zap without any pre-configured amount opens the custom dialog\n\nContent parsers:\n- URL/URI parser rewrite in Kotlin multiplatform\n- Fixes characters attached to URLs or nostr URLs without a space\n- Massively increases parsing performance\n- Treat multibyte characters as URL terminators in RichTextParser by nostr:nprofile1qqst8ep73nr7dhlj8geajgf686gjmz2mrslyy5pypcxfnkl0uvrgkhcpzfmhxue69uhhstntda4xjunp9e5k7tcpzamhxue69uhhxetpwf3kstnwdaejuar0v3shjtcprdmhxue69uhkuun9d3shjtnr94ehgetvd3shytnwv46z7snrts5\n- Adds a parser for blossom and wss uris\n\nUI Improvements:\n- Minimizes parent thread rendering in quoted notes by nostr:nprofile1qqswum4p82uluhz2dr40nvdrflspffntgqghc58w9fs57nx6jkdkuaqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ec8y6tdv9kzumn9wshszymhwden5te0wp6hyurvv4cxzeewv4ej7rk83yd\n- New Material 3 UI for DropDowns by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx\n- New Material 3 UI for feed filters by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx\n- Draft Screen requests confirmation before deleting drafts on swipe\n- Swipe to switch tabs. Main screen and messages by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx\n- Adds support for rendering Zap events when quoted inside of posts.\n- Adds a Broadcasting feedback pop-up in the Complete UI mode\n\nRelay Management:\n- Adds relay search tooltip when adding relays\n- Adds the list of keys using each relay to the relay information\n- Adds active subscriptions and outbox event in the queue to relay information\n- Adds a complete list of event kind names to the subscription card to relay information\n- Tracks and displays connection success rate on relay settings\n- Adds relay settings export functionality\n- Adds NIP-45 count queries to show how many events each relay has.\n- Adds Relay sync utility to help users move posts between relays.\n\nSearch:\n- Breaks the search filter into two subscriptions to prioritize Metadata without punishing content.\n- Fixes the need to start user searches with @ in user fields\n- Fixes the stability of the search feed when the user navigates away and back.\n- Replaces about me for NIP-05 in the user search results\n- Adds relay URL search to the search page\n- Forces returning one user when searching by nip-05\n- Removes outdated versions of addressables from the search results\n\nProfiles:\n- Adds support for NIP-39 External Identities with kind 10011\n- Adds a profile picture upload button when the user has no picture\n- Adds last seen to the user profile\n- Adds nprofile and npub copy options to the profile\n- Groups received zap amounts by sending the user in the profile tab\n- Increases the limit of Zap downloads for profiles to 1000\n- Simplifies profile edit screen layout by nostr:nprofile1qqswum4p82uluhz2dr40nvdrflspffntgqghc58w9fs57nx6jkdkuaqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ec8y6tdv9kzumn9wshszymhwden5te0wp6hyurvv4cxzeewv4ej7rk83yd\n- Migrates profile galleries to display a thumbnail for videos\n- Fixes profile galleries' aspect ratios\n- Adds support for Namecoin .bit urls to NIP-05 and choice of ElectrumX server to resolve namecoins.\n\nOnboarding\n- Adds bulk follow screens to search for a user and to copy his/her follow list\n\nVoice message by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx\n- Adds voice anonymization\n- Change from \"hold to record\" to \"click to start, click to stop\"\n- Display kind 1 voice replies as an audio waveform\n- Increases max voice record duration to 600 seconds\n- Switches the public message event to use quoted posts for replies\n\nFixes:\n- Fixes \"forked from\" label rendering\n- Avoids crashing when the `k` tag cannot be parsed to a number\n- Only use Voice Reply events when replying to voice notes. Others just receive a URL.\n- Fixes the lack of update in the follow count on the UserProfile page\n- Fixes out of memory when downloading large videos\n- Fixes Jackson deserialization for empty Filters and add regression test by nostr:nprofile1qqs827g8dkd07zjvlhh60csytujgd3l9mz7x807xk3fewge7rwlukxgppemhxue69uhkummn9ekx7mp0qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpz9mhxue69uhkummnw3ezumrpdejz7d9xcpk\n- Fixes NullPointerException when the filter contains tags\n- Fixes download cancellations when screen components disappear\n- Migrates to use \"title\" instead of \"name\" tags for NIP-51 lists\n- Adds a longer crop for npubs so that we can see vanity keys better\n- Fixes the need to have tags and kinds for inbox.nostr.wine to work\n- Blocks the size of Relay Auth Status arrays from growing forever with auth messages\n- Fixes crash when getting OpenGraph tags of invalid URLs\n- Fixes NIP-44 key mutation in NIP-46 connect\n- Location permission watcher moved outside screens to avoid recreation\n- Solves the sorting contract crash on search by precaching all values before sorting users.\n- Fixes lingering relay connections from loading follows outbox's settings.\n- Enhance NIP-38 user status display with emoji support and metadata tags\n- Fixes bug on Show More calculations for very long texts without spaces\n- Fixing IO Dispatchers and coroutine scopes of choice\n- Fixes anySync parallel operation that was returning the first result, not the first positive \"any\".\n- Fixes Req onCannotConnect listeners to the relays that actually sent the req\n- Fixes hanging subscriptions when exceptions happen during NostrClient utility methods\n\nDefaults:\n- Switches wss://nostr.band to wss://antiprimal.net, wss://relay.ditto.pub on app defaults\n- Adds wss://nostr.wine, wss://news.utxo.one as favorite relay feeds\n- Adds wss://directory.yabu.me and wss://profiles.nostr1.com as index relays\n- Adds electrumx.testls.space, nmc2.bitcoins.sk, 46.229.238.187 and i665jpwsq46zlsdbnj4axgzd3s56uzey5uhotsnxzsknzbn36jaddsid.onion as ElectrumX servers\n\nQuartz:\n- Adds Relay Server implementation with NIP-45 COUNT and NIP-42 AUTH support\n- Adds support for dynamic auth policies to the relay implementation.\n- Migrates Quartz EventStore from Android-only to KMP\n- Adds a reqUntilEoseAsFlow extension to the Nostr Client\n- Adds a reqBypassingRelayLimits extension to the Nostr Client\n- Adds comprehensive NIP-46 Bunker support\n- Adds comprehensive support for NIP-47 non-payment methods.\n\nAdds complete support for iOS to Quartz by nostr:nprofile1qqswc4nrhvp4lrjct0ayy0ps8f2hvj8e2guucp63dwcx6m6e8pka9fqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0qy08wumn8ghj7un9d3shjtnwdaehgu3wwa5hyetydejhgtn2wqhsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9ue5n65v\n- Provide implementation for Rfc3986 on iOS, using the Swift Rfc3986UriBridge.\n- Provide implementation for LargeCache, using a CacheMap\n- Provide implementation for fastFindURLs()\n- Provide implementation for makeAbsoluteIfRelativeUrl() in ServerInfoParser.ios.kt\n- Provide implementation for UrlEncoder\n- Provide implementation for UnicodeNormalizer\n- Provide implementation for GZip compression/decompression. Some small fixes in URLs.ios.kt\n- Provide implementation for AESCBC\n- Provide implementation for AESGCM\n- Provide implementation for DigestInstance\n- Provide implementation for LibSodium\n\nAmethyst Desktop by nostr:nprofile1qqs9vyevafl4f7rqluqykt500e9nj5ase8eh5k423rgwtfw6qdjhd4sppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7ma4uad\n- Adds NIP-46 Bunker Login\n- Adds Support for Chess\n- Adds Thread Screens\n- Adds advanced search with query engine and filter panel\n- Adds encrypted DMs (NIP-04/NIP-17)\n- Adds proper empty states with EOSE tracking\n- Adds multi-column deck layout\n- Adds Full media parity — images, video, audio, encrypted DMs, upload, lightbox\n- Adds advanced search with NIP-50, collapsible sections, and nav state preservation\n- Clear stored credentials on logout\n- Adds bunker heartbeat indicator\n- Adds QR-based signer pairing\n- Migrates lifecycle-viewmodel KMP dependencies to KMP/Commons\n- Migrates drawReplyLevel modifier to KMP/Commons\n- Migrates ThreadFilter to KMP/Commons\n- Migrates Card interface and CardFeedState to KMP/Commons\n- Migrates Channels (public chats, ephemeral channels, and live streams) Account modules to KMP/Commons\n- Migrates private chatroom models to KMP/Commons\n- Migrates reports states to KMP/Commons\n- Migrates Emoji State to KMP/Commons\n- Migrates lud06 to lud16 mapping to KMP/Quartz\n- Migrates the new LocalCache observables to KMP/Commons\n- Migrates rich text parser from JVM to KMP/Commons\n\nCode Quality\n- Migrates to AGP 9.0\n- Adds Amethyst Desktop to CI/CD and Release builds\n- Removes the in-app memory counter methods\n- Refactors the old NIP-05 code on Quartz\n- Migrates contact list management to addressable notes\n- Creates new observable flows for LocalCache.\n- Moves metadata methods from User to UserCache objects\n- Separate Addressable vs Replaceable event class bases\n- Avoid dependency on AccountSettings for NwcSignerState\n- Finishes the transition to EventHint objects for building events.\n- Lots of code review fixes by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx\n- Large accessibility review by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx\n- Moves Top Nav Filter markers from Strings to full objects.\n- Removes support for feed definitions\n- AccountState refactoring\n\nAI:\n- Add SKILL.md for AI agent customization\n- Add settings and hooks to setup Android Development for the agent\n\nUpdated translations:\n- Czech, German, Swedish, and Portuguese by nostr:nprofile1qqsv4zwtz8cuwh2mvc3zdrl5853g365t9j6mn25edlul7uz0eyzt0zcpzpmhxue69uhkummnw3ezumt0d5hszxnhwden5te0wf5kymewv46jumn0wd68y6tp9eshqup0qyd8wumn8ghj7um9dejxjapwdehhxenvv9ex2tnrdakj7nrm3sx\n- Hungarian by nostr:nprofile1qqsxekg0s8kxpcrka8ccwztv2m73kz6jy0ur8f7jc04rwr5p44w5acspzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7c0ns2l\n- French by nostr:nprofile1qqs8av5uzf4nv2q80chrmp3mj9a9dd6zjw4fmz56hsn2gzar72rxhtcppemhxue69uhkummn9ekx7mp0qyg8wumn8ghj7mn0wd68ytnddakj7qgawaehxw309ahx7um5wghxy6t5vdhkjmn9wgh8xmmrd9skctcuvd26f\n- Polish by nostr:nprofile1qqsdyfz0ewdhmgp3a4r3pxvezx5r8yalrgvjn38v2ml5qrusnv7yywgpr9mhxue69uhkummnw3ezumnpv3sk5mnfdvhx7un89uq3zamnwvaz7tmwdaehgu3wvfhkuep0qy8hwumn8ghj7cm6v9ejuar0wqhsscy248\n- Hindi by nostr:nprofile1qqs88dt78wgnzvaph6fcstfvsd98xc2qs8eg8tllwv2zlutu8ehec2cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszrnhwden5te0dehhxtnvdakz7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7x03hlx\n- Slovenian by nostr:nprofile1qqsqqqqqqp0fmkspg7w8d305ln96a0jw0ptwqtuwskkm5pddv2kkjfcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9nhwden5te0wfjkccte9ejxjar5duh8qatz9uq36amnwvaz7tmwdaehgu3dxqezu7tpdd5ksmmwdejjucm0d5hs2kgtzl\n- Bengali by nostr:nprofile1qqsgs9hgjw87vz36jf2r83m5zree2q87zvs8s7kty9jljdz7wprytyspremhxue69uhkummnw3ezu6m0de5kueedv3jkwunpv9nzumnv9uq3kamnwvaz7tm5d4cz6un9d3shjtnrv4ekxtn5wfskgef0qy28wumn8ghj7mn0wd68yt3k8quzummjvuhsg63aw2\n- Chinese by hypnotichemionus4\n- Spanish by nostr:nprofile1qqs07tjpyvvlq9ugdpax8h3jfrpwn7kr72k3tc7ky83tggn4et9eangpg3mhxw309ajxyartwdukjery09cxwctsd3ek6cnjdfnxs6t00pnhq7ttdvmkw7nsd3shxdrr0gery6nyva3h2ct0096kyerjw9jzummwd9hkutcprpmhxue69uhkv6tvw3jhytnwdaehgu3wwa5kuef0qyghwumn8ghj7mn0wd68ytnhd9hx2tcxdyhdq",
  "sig": "553c87a18538c3a126bd9fddf647d354a8b175e0281e4814bcb6205013559b0310412b3c1ca5fffe889bce26099b99158555fba7277ac8288d348d3ebab04c8d"
}