NIP-19 definiert menschenfreundliche Formate zum Teilen von Nostr-Identifikatoren. Diese bech32-kodierten Zeichenketten werden zur Anzeige und zum Teilen verwendet, werden aber niemals im Protokoll selbst verwendet (das Hex verwendet).

Warum Bech32?

Rohe Hex-Schlüssel sind fehleranfällig beim Kopieren und visuell nicht unterscheidbar. Die Bech32-Kodierung fügt ein menschenlesbares Präfix und eine Prüfsumme hinzu, wodurch sofort klar wird, welche Art von Daten Sie betrachten.

Grundformate

Diese kodieren rohe 32-Byte-Werte:

  • npub - Öffentlicher Schlüssel (Ihre Identität, sicher zum Teilen)
  • nsec - Privater Schlüssel (geheim halten, zum Signieren verwendet)
  • note - Event-ID (verweist auf ein bestimmtes Event)

Beispiel: Der Hex-Pubkey 3bf0c63f... wird zu npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6.

Teilbare Identifikatoren

Diese verwenden TLV-Kodierung (Type-Length-Value), um Metadaten einzuschließen:

  • nprofile - Profil mit Relay-Hinweisen (hilft Clients, den Benutzer zu finden)
  • nevent - Event mit Relay-Hinweisen, Autor-Pubkey und Kind
  • naddr - Adressierbarer Event-Verweis (Pubkey + Kind + d-Tag + Relays)

Diese lösen das Entdeckungsproblem: Wenn jemand eine Notiz-ID teilt, woher wissen Clients, welches Relay sie hat? Durch das Bündeln von Relay-Hinweisen in den Identifikator werden geteilte Links zuverlässiger.

Implementierungshinweise

  • Verwenden Sie Bech32 nur für menschliche Schnittstellen: Anzeige, Kopieren/Einfügen, QR-Codes, URLs
  • Verwenden Sie niemals Bech32-Formate in Protokollnachrichten, Events oder NIP-05-Antworten
  • Alle Protokollkommunikation muss Hex-Kodierung verwenden
  • Beim Generieren von nevent/nprofile/naddr, schließen Sie Relay-Hinweise für bessere Auffindbarkeit ein

Primärquellen:

Erwähnt in:

Siehe auch: