Skip to content
GWHYYY
← All work

Protocol engineering / Published

Dart Nostr

A pure-Dart Nostr SDK covering relay transport, event signing, typed subscriptions, encryption, zaps, and media.

Role
Creator and maintainer
Period
Ongoing
Status
Published
Stack
Dart, Nostr, WebSockets, Cryptography
Visit project ↗
pub.dev page for the nostr package showing version 11.0.0 and protocol capabilities
dart_nostr on pub.dev, October 2026.

51 GitHub stars and 18 forks on 28 October 2026

25+ NIPs implemented and documented

v11.0.0 published on pub.dev

The problem

Nostr is a protocol, not a product. A client needs relay management, event signing, subscription streams, encryption, authentication, reconnection, and careful handling of malformed or duplicate events. Rebuilding that in every Flutter app is expensive and easy to get subtly wrong.

Dart Nostr provides the shared protocol layer.

What I built

The package is a complete Dart client surface, not a thin wrapper around one relay.

  • Relay connections with reconnect backoff and fail-fast behavior
  • Event creation, signing, and verification
  • Typed subscription streams
  • NIP-44 v2 encryption and NIP-49 key handling
  • NIP-42 authentication, zaps, media uploads, and identity tooling
  • Pluggable signers for local keys and external signer flows

Engineering decisions

Crypto interoperability is not a place for best-effort implementation. NIP-44 v2 is checked against the official test vectors, and NIP-49 decrypts the reference payload. That gives client developers a trustworthy base instead of a package that works only against one relay.

Errors are returned as typed results rather than thrown unpredictably. In a protocol client, callers need to distinguish a dead relay from a rejected event from invalid input without parsing exception strings.

Adoption

The package is public on pub.dev (v11.0.0) and GitHub. On 28 October 2026 GitHub showed 51 stars and 18 forks; the README documents 25+ NIPs and the public package page describes the protocol surface.

It is maintained as an open-source package with a documented API, not a product-specific internal library.

What I owned

  • Created and maintain the package
  • Implemented relay and subscription primitives
  • Implemented signing, encryption, and NIP coverage
  • Designed typed interfaces for application developers

Verified evidence

  • 51 GitHub stars and 18 forks on 28 October 2026
  • 25+ NIPs implemented and documented
  • v11.0.0 published on pub.dev
  • NIP-44 v2 passes the official test vectors
  • Dart
  • Nostr
  • WebSockets
  • Cryptography
  • Protocol design

Mohamed Anas Fikhi / Casablanca, Morocco

Have a similar problem?

Describe what you are working on. I will tell you whether I can help and what a sensible first step looks like.