Quartz
Quartz is a Kotlin Multiplatform library for Nostr developed by Vitor Pamplona. Originally extracted from the Amethyst Android client, Quartz provides reusable Nostr protocol implementations across JVM, Android, iOS, and Linux platforms.
How It Works
Quartz provides core Nostr functionality as a shared library:
- Event Handling: Parsing, validation, and creation of Nostr events
- Cryptography: Secp256k1 signing, NIP-44 encryption, key management
- Relay Communication: Connection management, message ordering, subscription handling
- NIP Support: Implementation of common NIPs including NIP-06, NIP-19, NIP-44, and more
Key Features
- Kotlin Multiplatform: Single codebase compiles to multiple targets
- Platform Targets: Android, JVM, iOS (ARM64, Simulator), Linux
- Performance Optimized: Efficient event processing and cryptographic operations
- Blossom Integration: Support for media uploads via Blossom protocol
- OpenTimestamp: Full Kotlin port of timestamp verification
Architecture
The library uses a modular source set structure:
commonMain: Shared code for all platformsjvmAndroid: Code shared between JVM and AndroidandroidMain: Android-specific implementationsjvmMain: Desktop JVM implementationsiosMain: iOS-specific implementations
OpenSats Grant
In December 2025, OpenSats announced funding for Quartz as part of their fourteenth wave of Nostr grants. The grant supports continued development toward enabling Amethyst on iOS through the same Kotlin Multiplatform approach that already powers the Android and desktop versions.
Primary sources:
Mentioned in:
See also: