pull down to refresh

I've been building swift-nostr, an open-source Swift library for the Nostr protocol, and the part I think this crowd will care about most is that the Lightning integration is first-class — not a TODO.

The zap loop is actually closed:

  • NIP-57 — sign the zap request (kind 9734), resolve the recipient's LNURL-pay endpoint, fetch the bolt11, decode it, and verify the kind-9735 receipt.
  • NIP-47 (Nostr Wallet Connect) — pay that invoice through a remote wallet over Nostr. Full command set (get_balance, make_invoice, lookup_invoice, list_transactions, keysend, multi-payments, notifications) plus a one-call payZap.

So on Apple platforms you can now go from "user taps zap" to "sat paid + receipt verified" entirely in Swift.

Beyond payments:

  • NIP-17 private DMs — gift wrap (NIP-59) + NIP-44, with kind-10050 DM relay routing
  • NIP-65 outbox model with gossip routing
  • 20+ NIPs total, modern Swift 6 (actor-isolated, Sendable, async/await), all Apple OSes, MIT

It's early (v0.5) and I'm building it in the open. If you're thinking about Lightning-native social apps — or DVM/agent ideas that need to pay and get paid over Nostr — I'd love feedback, issues, or PRs.

https://github.com/yysskk/swift-nostr

Feedback and teardowns welcome ⚡