NIPs by PolleramaCommunity NIPs, surfaced by trustConnect
npub1gvv9ahktvav...

Issue #2330: N0..N3 Namecoin RFC track

Published Jun 28, 2026

Recreation note. This is a copy of issue nostr-protocol/nips#2330 (the broader N0..N3 RFC track), preserved as a custom NIP because my GitHub account (mstrofnone) is currently suspended.


Background

This issue is a recreation, on this mirror, of the broader N0..N3 RFC track originally filed upstream at nostr-protocol/nips#2330. The companion PR on this mirror — "NIP-05 verification via Namecoin (.bit)" — implements the narrowest N1 slice of that track. This issue exists so reviewers on this mirror can discuss the broader track in one place.

Summary

Adds a coherent track of optional NIPs that use the Namecoin blockchain as a censorship-resistant alternative anchor for parts of Nostr's identity / discovery / verification surface. All four pieces are independent — clients can ship N1 alone, or any subset — and all four use only the existing ifa-0001 Domain Name Object schema. No new top-level Namecoin record keys.

SlotPurposeDeployment status
N1NIP-05 verification over .bit (the narrow PR in this mirror)8 wire-compatible impls across 6 platforms, all merged upstream
N2Relay discovery via .bit (relay list pinned in chain record)implemented in Amethyst PR #2595, dart-nostr #44
N3TLSA-style pin for .bit relay WebSocket certsimplemented in Amethyst PR #2595, dart-nostr #44
N4Block-height-pinned identity / receipt (optional block field)spec only

Each piece independently composes with existing NIPs (NIP-05, NIP-65, NIP-11). The Namecoin record container ("N0") is folded directly into N1 in the companion PR; standalone container NIP isn't useful without a consuming NIP.

Implementation matrix (N1)

8 wire-compatible reference implementations across 6 platforms have shipped N1 against the live Namecoin chain, with byte-for-byte agreement on the same on-chain records:

PlatformImplementationStatus
Android / iOS / Desktop (Kotlin/KMP)vitorpamplona/amethyst (Quartz namecoin module + Amethyst LocalCache)merged
iOS (Swift)nostur-com/nostur-ios-public — NamecoinNip05Service.swiftmerged
TypeScript / Nodenbd-wtf/nostr-tools — nip05namecoin modulemerged
Flutter / Dartethicnology/dart-nostr — nip05_namecoin.dartmerged
Web (browser-resident wss:// ElectrumX)CodyTseng/jumblemerged
Webhzrd149/nostrudelopen
Sidecar / relaymstrofnone/strfry-nip05-namecoin (Node strfry plugin), mstrofnone/nostrlib-nip05-namecoin (Go)shipped
CLIfiatjaf/nak (via the Go lib) — PR openopen

Live demo

  • Verifier: [email protected] resolves via Namecoin d/testls → pubkey, with an ifa-0001 import chain (d/testls → dd/testls → d/cl-testls) exercising the multi-record path.
  • .bit-served relay: wss://relay.testls.bit/ (TLSA-pinned, Tor-reachable). Hosts a kind:30023 long-form announcement of the track.

Scope discipline

This issue is for track-level discussion. Spec PRs land one NIP at a time:

  • N1: the "NIP-05 verification via Namecoin (.bit)" PR on this mirror (recreated from nostr-protocol/nips#2349).
  • N2/N3/N4: follow-up PRs after N1 lands. Specs already drafted at https://github.com/mstrofnone/nips ; happy to open them separately.

CC: none — opening cold so the broadest set of reviewers can chime in.