#
Dart Nostr Development Kit (NDK)
NDK (Nostr Development Kit) is a Dart library that enhances the Nostr development experience.
NDK supplies you with high-level usecases like lists or metadata while still allowing you to use low-level queries enhanced with inbox/outbox (gossip) by default.
Our Target is to make it easy to build constrained Nostr clients, particularly for mobile devices.
#
Apps using NDK
#
Features / what does NDK do?
- return nostr data based on filters (any kind).
- automatically discover the best relays to satisfy the provided request (using gossip)
- specify desired coverage on each request (e.g. x relays per pubkey)
- publish nostr events to optimal relays or explicit relays
- cache responses to save network bandwidth
- stream directly from cache and network (if needed)
- query and subscription, e.g., get data once; subscribe to data.
- plugin cache interface, bring your own db or use included ones:
inMemory
- plug in verifier interface, bring your own event verifier, or use included ones:
bip340, rust
- plug in event signer interface, bring your own event signer, or use included ones:
bip340, amber
- contact list support, you can convert nostr_event to contact_list
- nip51 list support, you can convert nostr_event to nip51_list
- nip05 caching
- nip-47 Nostr wallet connect
- nip-42 Authentication of clients to relays
- nip-57 Zaps
- blossom file support
#
not Included
- ready to use feeds, you have to build them on your own (🚫 not planned)
- create && manage keypairs. You have to provide them (🚫 not planned)
- threading, you can do this on your own if you move ndk or only the event_verifier into its own thread (🔜 planned)
- support for request overrides (you have to close and reopen requests) (🤔 unsure)
#
NIPs
- Event Builders / WebSocket Subscriptions (NIP-01)
- User Profiles (edit/follow/unfollow - NIP-02)
- Private Messages (NIP-04)
- Nostr Address (NIP-05)
- Event Deletion (NIP-09)
- Relay Info (NIP-11)
- Reactions (NIP-25)
- Lists (NIP-51)
- Relay List Metadata (NIP-65)
- Wallet Connect API (NIP-47)
- Zaps (NIP-57)
- Authentication of clients to relays (NIP-42)
- Encrypted Payloads (Versioned) (NIP-44)
- Bech Encoding support (NIP-19)
- Badges (NIP-58)