Files
website/NIP.md
2026-09-07 22:54:44 +02:00

2.0 KiB

NIPs and custom schemas

This project defines no custom event kinds. It implements and adopts the following protocols:

Implemented NIPs

  • NIP-86: Relay Management API (draft, optional) — the Relay Admin app (src/apps/relay-admin/) is a management client. Requests are JSON-RPC-like POSTs over HTTP(S) on the relay's own URI with the application/nostr+json+rpc content type, authorized with a NIP-98 event (kind 27235) whose u tag is the relay URL and whose payload tag binds it to the request body. The client treats supportedmethods as the source of truth and only calls methods the relay advertised; advertised names outside the standard method list are treated as relay-specific extensions and kept visually and semantically separate. No generic event-purge/delete method is assumed — NIP-86 does not define one.
  • NIP-98: HTTP Auth — used for NIP-86 authorization (with the NIP-86-required payload tag) and for Blossom uploads.
  • NIP-11: Relay Information Document — read at connect time to show relay identity in Relay Admin.

Adopted third-party kinds

  • Kind 1301 (NIP-101e / deployed RUNSTR fitness dialect) — the Workouts app publishes regular workout records using the interoperable exercise, duration, distance, elevation_gain, workout_start_time, heart-rate, cadence, source and t tags. It includes the required human-readable alt tag. No custom schema extensions are introduced.

  • Kind 777 ("Spell") — a third-party draft NIP from the Grimoire client, adopted as-is for interop. See docs/apps.md ("Spells are a third-party kind") and src/hooks/useSpells.ts.

Anything else (kinds 0, 1, 3, 5, 6, 16, 9802, 10002, 10003, 22242, 30023, 30311, 31337, 39701, …) follows the official NIPs as implemented in src/hooks/ and src/lib/.