technical beginner ⏱️ 11 minutes

Nostr Clients Explained: Complete Guide

Understanding Nostr clients - types of clients, how to choose the right one, features to look for, and platform-specific recommendations.

Updated: 19 January 2025 By Nostr.co.uk

Introduction

If Nostr is the protocol and relays are the infrastructure, clients are your window into the network. The client you choose determines your Nostr experience more than anything else.

This guide explains what clients are, how they differ, and how to choose the right one for your needs.

What is a Nostr Client?

The Basic Definition

A Nostr client is an application that:

  1. Manages your keys (generates, stores, or connects to them)
  2. Creates events (posts, messages, reactions)
  3. Signs events with your private key
  4. Communicates with relays (publishes and subscribes)
  5. Displays content in a user-friendly interface

What Clients Are NOT

Clients are not:

  • ❌ The Nostr network (they access it)
  • ❌ Platforms (they don’t host content)
  • ❌ Required for Nostr (any client can access your identity)
  • ❌ Locked-in (you can switch anytime)

Clients are:

  • ✅ Interchangeable applications
  • ✅ Your interface to the protocol
  • ✅ Customizable tools for different use cases
  • ✅ Completely replaceable (your identity persists)

The Key Insight

Your identity exists on Nostr, not in any client.

You can:

  • Use multiple clients simultaneously
  • Switch between clients anytime
  • Try new clients without losing anything
  • Use different clients for different purposes

Your public key (npub) is your constant—clients are just tools to interact with it.

How Clients Work

The Technical Flow

When You Post:

  1. You type content into client
  2. Client creates an event (JSON data structure)
  3. Client signs event with your private key
  4. Client sends signed event to your relays
  5. Relays store and distribute the event
  6. Other users’ clients retrieve from relays
  7. Their clients display your post

When You Read:

  1. Your client connects to relays
  2. Client subscribes to events (e.g., from people you follow)
  3. Relays send matching events
  4. Client verifies signatures
  5. Client displays events in your feed
  6. Real-time updates via WebSocket connections

Client Responsibilities

Event Creation:

  • Format content into event structure
  • Add metadata (tags, references, mentions)
  • Generate event ID (hash)
  • Sign with private key

Key Management:

  • Generate new keys (onboarding)
  • Store keys securely
  • Or: connect to browser extension/hardware wallet

Relay Communication:

  • Connect to WebSocket relays
  • Publish events
  • Subscribe to events based on filters
  • Handle reconnections and errors

User Interface:

  • Display feed (timeline)
  • Show profiles
  • Thread conversations
  • Search functionality
  • Media handling (images, videos)

NIP Support:

  • Different clients support different NIPs
  • More NIPs = more features
  • Core NIPs = basic functionality
  • Advanced NIPs = enhanced features

Types of Clients

Clients come in different forms for different platforms and use cases.

Web Clients

Applications accessed through a web browser.

How They Work:

  • Run in browser (JavaScript)
  • Connect to relays via WebSocket
  • Usually use browser extensions for key management (nos2x, Alby)
  • Or: allow nsec paste (less secure)

Popular Web Clients:

Snort (snort.social):

  • Clean, Twitter-like interface
  • Fast and responsive
  • Good relay management
  • Strong NIP support
  • Active development

Iris (iris.to):

  • User-friendly
  • Good for beginners
  • Web of trust features
  • Active community

Nostrudel (nostrudel.ninja):

  • Power user features
  • Advanced tools
  • Developer-friendly
  • Customizable

Primal (primal.net):

  • Curated content discovery
  • Trending/popular features
  • Media-rich interface
  • Caching layer (faster)

Advantages of Web Clients:

  • ✅ No installation required
  • ✅ Access from any device
  • ✅ Always up-to-date
  • ✅ Easy to try multiple clients

Disadvantages:

  • ❌ Browser security limitations
  • ❌ Requires browser extension for best security
  • ❌ Variable performance
  • ❌ Less native integration

Mobile Clients (iOS)

Native iOS applications.

Damus (iOS - App Store):

  • First major Nostr iOS client
  • Native iOS experience
  • Secure Enclave key storage
  • Zaps integration (Lightning payments)
  • Active development by Will Casarin

Features:

  • Apple design language
  • Biometric authentication
  • Push notifications
  • Share sheet integration
  • Camera integration

Primal (iOS):

  • iOS version of Primal web client
  • Content discovery focus
  • Curated feeds
  • Trending content

Advantages of iOS Clients:

  • ✅ Native performance
  • ✅ Secure key storage (Secure Enclave)
  • ✅ Biometric authentication
  • ✅ Better battery efficiency
  • ✅ Offline capabilities

Disadvantages:

  • ❌ Limited to iOS devices
  • ❌ App Store restrictions
  • ❌ Update delays (App Store review)

Mobile Clients (Android)

Native Android applications.

Amethyst (Android - Google Play):

  • Leading Android Nostr client
  • Feature-rich
  • Extensive NIP support
  • Active development
  • Customizable

Features:

  • Material Design
  • Android KeyStore for keys
  • Tor support (via Orbot)
  • Translation features
  • Extensive customization

Primal (Android):

  • Android version of Primal
  • Similar to iOS version
  • Cross-platform consistency

Current (Android):

  • Emerging client
  • Modern design
  • Growing feature set

Advantages of Android Clients:

  • ✅ Native performance
  • ✅ Secure key storage (KeyStore)
  • ✅ More flexible (sideloading possible)
  • ✅ Tor integration easier
  • ✅ Customization options

Disadvantages:

  • ❌ Limited to Android devices
  • ❌ Variable performance (device-dependent)

Desktop Clients

Native applications for desktop operating systems.

Gossip (Windows, Mac, Linux):

  • Rust-based
  • Privacy-focused
  • Gossip model (follows web of trust)
  • Advanced user features

Coracle (Web-based, desktop-friendly):

  • Decentralized relay discovery
  • Community features
  • Works on desktop browsers

Advantages of Desktop Clients:

  • ✅ Full keyboard shortcuts
  • ✅ Larger screen real estate
  • ✅ Better multitasking
  • ✅ More processing power

Disadvantages:

  • ❌ Limited options currently
  • ❌ Installation required
  • ❌ Less portable

Command-Line Clients

For terminal/developer use.

nak (by fiatjaf):

  • Swiss army knife for Nostr
  • Event creation/query
  • Relay testing
  • Developer tool

nostril:

  • Minimal CLI client
  • Posting from terminal
  • Scripting integration

Use Cases:

  • Developer testing
  • Automation/bots
  • Server-side posting
  • Power users

Specialized Clients

Clients built for specific purposes.

Long-Form Content:

  • Habla - Blogging platform on Nostr
  • Highlighter - Article publishing with highlights

Communities:

  • Satellite - Reddit-like communities on Nostr

Media:

  • Nostrgram - Instagram-like photo sharing
  • Zap.Stream - Live streaming

Business/Professional:

  • YakiHonne - Professional content and curation

Markets:

  • Plebeian Market - E-commerce on Nostr
  • Shopstr - Marketplace client

Choosing Your Client

By Platform

I have an iPhone: → Damus (primary recommendation) → Primal (alternative, content discovery focus)

I have an Android phone: → Amethyst (primary recommendation) → Primal (alternative)

I use a web browser: → Snort + nos2x extension (security-conscious) → Primal (discovery-focused) → Iris (beginner-friendly)

I prefer desktop: → Gossip (privacy-focused) → Web clients on desktop browser

I’m a developer: → nak (command-line) → Nostrudel (web, power features)

By Use Case

Social Networking (Twitter-like): → Damus (iOS), Amethyst (Android), Snort (web)

Content Discovery: → Primal (all platforms)

Long-Form Writing: → Habla, Highlighter

Communities: → Satellite

Photo Sharing: → Nostrgram

Business/Professional: → YakiHonne

Privacy-Focused: → Gossip (desktop), Amethyst + Tor (Android)

By Experience Level

Complete Beginner: → Damus (iOS) - Polished, intuitive → Iris (web) - Friendly, simple → Primal (any platform) - Curated, easy discovery

Intermediate User: → Amethyst (Android) - Feature-rich, customizable → Snort (web) - Clean, powerful → Damus (iOS) - Advanced features available

Advanced/Power User: → Gossip (desktop) - Privacy, control → Nostrudel (web) - Developer tools → Amethyst (Android) - Extensive configuration

Developer: → nak (CLI) - Scripting, automation → Any client + inspect events

Key Features to Consider

Essential Features (All Good Clients Should Have)

Basic Functionality:

  • Create posts (kind:1 events)
  • View timeline (following feed)
  • Reply to posts
  • Repost/quote
  • React (like/emoji)
  • Profile viewing
  • Follow/unfollow

Security:

  • Secure key storage
  • Or: browser extension support (web clients)
  • Signature verification
  • HTTPS/WSS connections

Relay Management:

  • Add/remove relays
  • Read/write permissions
  • Connection status

Advanced Features (Nice to Have)

Discovery:

  • Search (posts, users)
  • Trending/popular content
  • Recommendations
  • Hashtag browsing

Communication:

  • Direct messages (NIP-04)
  • Mentions/notifications
  • Thread view
  • Quote posts

Media:

  • Image viewing
  • Video playback
  • GIF support
  • Media upload integration

Lightning Integration:

  • Zaps (Lightning tips)
  • Receive zaps
  • Wallet connection
  • Zap amounts display

Customization:

  • Theme options (dark/light)
  • Feed algorithm choice
  • Notification settings
  • UI customization

Advanced:

  • Mute/block users
  • Content filtering
  • Multiple accounts
  • Export data
  • Relay health monitoring

NIP Support Comparison

NIPs (Nostr Implementation Possibilities) are protocol extensions. Client feature support varies.

Core NIPs (Most Clients Support)

NIP-01: Basic protocol

  • All clients support this (required)

NIP-02: Contact lists (follow lists)

  • Universal support

NIP-05: DNS-based verification

  • Most clients support
  • Shows verified checkmark

NIP-10: Text note references (replies, threads)

  • Universal support

NIP-19: Bech32 encoding (npub, nsec, note, etc.)

  • Universal support

Common Optional NIPs

NIP-04: Encrypted direct messages

  • Supported by most major clients
  • Security limitations (see privacy guide)

NIP-07: Browser extension signing

  • Web clients: widely supported
  • Essential for secure web usage

NIP-09: Event deletion

  • Many clients support
  • Relays may ignore deletion requests

NIP-25: Reactions (likes, emoji reactions)

  • Widely supported
  • Makes Nostr feel social

NIP-57: Lightning Zaps

  • Growing support
  • Critical for value-for-value

Advanced NIPs (Varies by Client)

NIP-23: Long-form content

  • Habla, Highlighter, YakiHonne
  • Some general clients

NIP-28: Public chat

  • Satellite, some others
  • Reddit-like communities

NIP-50: Search

  • Primal, Nostr.band integration
  • Not all clients

NIP-65: Relay list metadata

  • Growing support
  • Improves discoverability

Check client documentation for specific NIP support.

Client Security Considerations

Key Management Approaches

Method 1: Native Storage (Mobile Apps):

  • iOS: Secure Enclave
  • Android: KeyStore
  • Most secure for mobile
  • Keys encrypted by device

Method 2: Browser Extension (Web Clients):

  • nos2x, Alby, Flamingo
  • Keys stored in extension
  • Never exposed to websites
  • Good security model

Method 3: Direct nsec Entry (Web Clients):

  • Paste private key into website
  • Convenient but risky
  • Vulnerable to phishing, malware
  • Not recommended except for testing

Method 4: Hardware Wallets (Future):

  • Emerging support
  • Maximum security
  • Not widely available yet

Privacy Features

Look For:

  • No telemetry (usage tracking)
  • Open source (verifiable)
  • Local data storage
  • Tor support (privacy-critical users)
  • Minimal permissions requests
  • No third-party analytics

Avoid:

  • Closed source (can’t verify behavior)
  • Requests unusual permissions
  • Sends data to third parties
  • Unclear privacy policy

Using Multiple Clients

You can (and should) use multiple clients.

Why Use Multiple Clients?

Different Strengths:

  • Damus (mobile, daily use)
  • Snort (web, desktop browsing)
  • Habla (long-form writing)

Platform Coverage:

  • Mobile client for on-the-go
  • Web client for desktop work
  • Specialized clients for specific tasks

Backup/Redundancy:

  • If one client has issues, use another
  • Different relay configurations
  • Different feature access

Experimentation:

  • Try new clients without committing
  • Compare features
  • Find what works best

Client Switching

Completely Seamless:

  • Your identity (npub) works in all clients
  • Your follows sync (via kind:3 events)
  • Your posts visible everywhere
  • Your profile consistent

Process:

  1. Install new client
  2. Import your private key (nsec)
  3. Configure relays (or use defaults)
  4. Start using immediately

No migration needed—all clients access the same Nostr network.

Common Client Problems

”I Can’t See Some Posts”

Causes:

  • Different relay selection
  • Client filtering
  • Event fetch limits

Solutions:

  • Add more relays (overlap with others)
  • Check relay configuration
  • Try different client

”Client Is Slow”

Causes:

  • Too many relays
  • Slow relays
  • Client inefficiency
  • Device performance

Solutions:

  • Reduce relay count
  • Remove slow relays
  • Try lighter client
  • Close other apps

”Can’t Receive Zaps”

Causes:

  • No Lightning wallet connected
  • Lightning address not in profile
  • Client doesn’t support NIP-57

Solutions:

  • Set up Lightning wallet (Alby, Wallet of Satoshi)
  • Add Lightning address to profile
  • Use client with zap support

”Lost Access to Account”

Misconception: Clients don’t have “accounts”

Reality:

  • Your identity is your key pair
  • If you lost your nsec, identity is lost
  • If you have your nsec, import into any client

Solution:

  • Import nsec into new client
  • Your identity restored instantly

UK-Specific Client Recommendations

Best for UK Users

Mobile (most common): → Damus (iOS) - widespread UK usage → Amethyst (Android) - strong UK community

Web: → Snort - popular in UK → Primal - growing adoption

Considerations:

  • No UK-specific clients required
  • All major clients work globally
  • Time zones handled automatically
  • Currency: clients show sats (Bitcoin), not £

UK Community Preferences

Based on UK Nostr community observations:

Most Popular:

  1. Damus (iOS users)
  2. Amethyst (Android users)
  3. Snort (web users)

Growing:

  • Primal (discovery features)
  • Iris (beginner-friendly)

Client Development and Ecosystem

Open Source Advantage

Most Nostr clients are open source:

Benefits:

  • ✅ Verify security (no hidden backdoors)
  • ✅ Community contributions
  • ✅ Forks and customization
  • ✅ Transparency
  • ✅ Trust

Check GitHub:

  • Active development?
  • Recent commits?
  • Community engagement?
  • Issue responses?

Supporting Clients

Many clients are developed by individuals or small teams.

Ways to Support:

  • Zap developers (Lightning tips)
  • Subscribe to paid features (e.g., Damus Purple)
  • Contribute code (if developer)
  • Report bugs
  • Provide feedback
  • Spread the word

Sustainable development requires support.

Conclusion

Clients are your gateway to Nostr—choose one that fits your platform, use case, and preferences. The beauty of Nostr is client choice without lock-in.

Key Takeaways:

  1. Clients are interchangeable: Your identity persists across all clients
  2. Platform matters: Choose native apps for best experience
  3. Use multiple clients: Different tools for different purposes
  4. Security first: Prefer browser extensions over nsec paste
  5. Support developers: Nostr clients are often passion projects

Quick Recommendations:

  • iPhone: Damus
  • Android: Amethyst
  • Web: Snort (with nos2x)
  • Privacy: Gossip (desktop) or Amethyst + Tor
  • Writing: Habla

Try multiple clients. Find what works for you. Switch anytime.

Your keys, any client, complete freedom.

Further Resources

Remember: The client is just your window into Nostr. Your identity exists on the protocol, not in any specific app. 🪟