Nostr
Rust implementation of the nostr protocol, high-level client library, Nostr Wallet Connect and more.
Install / Use
/learn @rust-nostr/NostrREADME
Nostr
Project structure
The project is split up into several crates:
- nostr: Rust implementation of Nostr protocol
- Signers
- nostr-browser-signer: Nostr Browser signer implementation (NIP-07)
- nostr-browser-signer-proxy: Proxy for using the Nostr Browser signer (NIP-07) in native applications
- nostr-connect: Nostr Connect (NIP-46)
- nostr-database: Events database traits
- nostr-memory: In-memory events database
- nostr-lmdb: LMDB storage backend
- nostr-ndb: nostrdb storage backend
- nostr-sqlite: SQLite storage backend
- nostr-gossip: Gossip traits
- nostr-gossip-memory: In-memory gossip database
- nostr-gossip-sqlite: SQLite storage for gossip
- Remote File Storage implementations:
- nostr-blossom: A library for interacting with the Blossom protocol
- nostr-http-file-storage: HTTP File Storage client (NIP-96)
- nostr-keyring: Nostr Keyring
- nostr-relay-builder: Build your own custom nostr relay
- nostr-sdk: A full-featured SDK for building high-performance and reliable nostr applications
- nwc: Nostr Wallet Connect (NWC) client (NIP-47)
Note: this repository contains the Rust codebase. There are several other projects (i.e., bindings, CLI, etc.) which are maintained in other repositories https://rust-nostr.org/projects.
Embedded
nostr crate can be used in no_std environments.
Check the example in the embedded/ directory.
Book
Learn more about rust-nostr at https://rust-nostr.org.
Supported NIPs
The table below lists which NIPs have implementations somewhere in this workspace. Some features are behind crate flags or only available when using a specific crate (e.g., signer integrations).
✅ means “implemented and tested behind the relevant feature flag”, ❌ means “not available anywhere in this repo yet”.
| Supported | NIP |
|:---------:|-----------------------------------------------------------------------------------------------------------------|
| ✅ | 01 - Basic protocol flow description |
| ✅ | 02 - Follow List |
| ✅ | 03 - OpenTimestamps Attestations for Events |
| ✅ | 04 - Encrypted Direct Message |
| ✅ | 05 - Mapping Nostr keys to DNS-based internet ids |
| ✅ | 06 - Basic key derivation from mnemonic seed phrase |
| ✅ | 07 - window.nostr capability for web browsers |
| ❌ | 08 - Handling Mentions |
| ✅ | 09 - Event Deletion |
| ✅ | 10 - Use of e and p tags in text events |
| ✅ | 11 - Relay Information Document |
| ✅ | 13 - Proof of Work |
| ✅ | 14 - Subject tag in text events |
| ✅ | 15 - Nostr Marketplace |
| ✅ | 17 - Private Direct Messages |
| ✅ | 18 - Reposts |
| ✅ | 19 - bech32-encoded entities |
| ✅ | 21 - URI scheme |
| ✅ | 22 - Comment |
| ✅ | 23 - Long-form Content |
| ✅ | 24 - Extra metadata fields and tags |
| ✅ | 25 - Reactions |
| ✅ | 26 - Delegated Event Signing |
| ❌ | 27 - Text Note References |
| ✅ | 28 - Public Chat |
| ❌ | 29 - Relay-based Groups |
| ✅ | 30 - Custom Emoji |
| ✅ | 31 - Dealing with Unknown Events |
| ✅ | 32 - Labeling |
| ✅ | 34 - git stuff |
| ✅ | 35 - Torrents |
| ✅ | 36 - Sensitive Content |
| ❌ | 37 - Draft Events |
| ✅ | 38 - User Statuses |
| ✅ | 39 - External Identities in Profiles |
| ✅ | 40 - Expiration Timestamp |
| ✅ | 42 - Authentication of clients to relays |
| ✅ | 44 - Encrypted Payloads (Versioned) |
| ✅ | 45 - Event Counts |
| ✅ | 46 - Nostr Connect |
| ✅ | 47 - Wallet Connect |
| ✅ | 48 - Proxy Tags |
| ✅ | 49 - Private Key Encryption |
| ✅ | 50 - Search Capability |
| ✅ | 51 - Lists |
| ❌ | 52 - Calendar Events |
| ✅ | 53 - Live Activities |
| ❌ | 54 - Wiki |
| - | 55 - Android Signer Application |
| ✅ | 56 - Reporting |
| ✅ | 57 - Lightning Zaps |
| ✅ | 58 - Badges |
| ✅ | 59 - Gift Wrap |
| ✅ | 60 - Cashu Wallet |
| ❌ | 61 - Nutzaps |
| ✅ | 62 - Request to Vanish |
| ❌ | [64 - Chess (PGN)](https://github.com/nostr-prot
Related Skills
himalaya
343.1kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
90.0kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
