{"id":"9736610c5d6ce450ed3ae28069c2da819b6f4a9ee14435216ffb45ff0d1481ff","pubkey":"0461fcbecc4c3374439932d6b8f11269ccdb7cc973ad7a50ae362db135a474dd","created_at":1781456610,"kind":30817,"tags":[["d","nips-on-nostr"],["title","NIPs on Nostr"],["alt","Nostr Implementation Possibility: NIPs on Nostr"],["k","30817","Custom NIP"],["client","NostrHub"]],"content":"NIPs on Nostr\n=============\n\nThis NIP defines kind `30817` for community-authored NIPs. These events allow users to create, share, and maintain custom protocol specifications that extend or complement the official Nostr protocol.\n\n## Custom NIP Event\n\nCustom NIP events are addressable events of kind `30817` with the following structure:\n\n```json\n{\n  \"kind\": 30817,\n  \"content\": \"<markdown content of the NIP>\",\n  \"tags\": [\n    [\"d\", \"<unique-identifier>\"],\n    [\"title\", \"<human-readable title>\"],\n    [\"k\", \"<kind-number>\", \"<kind-name>\"],\n    [\"k\", \"<another-kind-number>\", \"<another-kind-name>\"]\n  ]\n}\n```\n\n### Content\n\nThe `content` field SHOULD contain the full specification of the custom NIP in Markdown format.\n\n### Tags\n\n- `d` (required) - unique identifier for the NIP. MAY be auto-generated from the title using URL-safe slugification.\n- `title` (required) - human-readable title for the NIP.\n- `k` (optional) - Zero or more `k` tags MAY be included to specify event kinds that this NIP defines or concerns. The first value is the event kind number as a string; the second value is a human-readable name for that kind (e.g. `[\"k\", \"37516\", \"Geocache Listing\"]`).\n\n## Clients\n\nClients implementing custom NIP support SHOULD:\n\n- Display custom NIPs distinctly from official NIPs\n- Show authorship information prominently\n- Provide search and filtering capabilities\n- Support Markdown rendering for content\n\n## Relays\n\nRelays MAY index `k` tags of custom NIPs for discovery of NIPs that define custom kinds.\n\n## Examples\n\n### Basic Custom NIP\n\n```json\n{\n  \"kind\": 30817,\n  \"content\": \"# Custom Event Kind for Gaming\\n\\nThis NIP defines event kind 30100 for gaming-related events...\",\n  \"tags\": [\n    [\"d\", \"gaming-events\"],\n    [\"title\", \"Gaming Events Protocol\"],\n    [\"k\", \"30100\", \"Game Session\"]\n  ]\n}\n```\n\n### Multi-Kind Custom NIP\n\n```json\n{\n  \"kind\": 30817,\n  \"content\": \"# Marketplace Protocol Extension\\n\\nThis NIP extends the marketplace protocol with additional event kinds...\",\n  \"tags\": [\n    [\"d\", \"marketplace-extension\"],\n    [\"title\", \"Extended Marketplace Protocol\"],\n    [\"k\", \"30200\", \"Marketplace Listing\"],\n    [\"k\", \"30201\", \"Marketplace Order\"],\n    [\"k\", \"30202\", \"Marketplace Review\"]\n  ]\n}\n```\n\n## References\n\n- [NIP frosty frost: NUDs](https://github.com/nostr-protocol/nips/pull/1214)\n- [NUD: Nostr Unofficial Documents](https://github.com/nostr-protocol/nips/pull/1519)","sig":"9395976d7b34fdb7d044238a0ad1dcd5b414867068d2298303e7efb906d1a860b17e1a69b918ab9014888d934d30c7d072e9bf311b12ff70674452202fcaf3bf"}