Skip to content

Chats [NIP-C7] Positive Interoperability Tracker #285

Description

@alltheseas

spec: https://github.com/nostr-protocol/nips/blob/master/C7.md
PR: nostr-protocol/nips#1591 (merged 2024-11-21, author: hodlbod/staab)
Related: #93 (NIP-29 relay-based groups)

Kind 9 — simple chat messages, extracted from NIP-29 to be reusable independently. Replies use q tags with shallow hierarchy. Often used with NIP-29 groups (h tag for group ID).

app NIP-C7 (kind 9) comment
Flotilla ✅ yes MESSAGE = 9 via welshman Kinds.ts; room subs use MESSAGE_KINDS with #h tag
Chachi ✅ yes GroupChat = 9 + buildGroupChatEvent() builder; by Verbiricha
Groups ✅ yes 9: 'chat-message' mapping; sendGroupChat() via nostr-hooks/nip29
nostr-chat-fyne ✅ yes Go desktop client; Kind: 9 in sub filter + event creation
OpenClaw-Nostr ✅ yes KIND_GROUP_CHAT = 9; AI agent NIP-29 plugin
Grimoire ✅ yes kind: 9, nip: "C7" explicit; dedicated Kind9Renderer; by purrgrammer
Amethyst ✅ yes v1.07.0: ChatEvent KIND=9, q-tag replies per spec, feed + thread rendering. evidence: PR #2018, nipC7Chats/ChatEvent.kt
White Noise ✅ yes v2026.3.23: NIP-C7 q-tag reply threading with content stripping. evidence: PR #468 (Flutter), PR #581 (Rust backend — extract_reply_info() + strip_reply_event_reference() in processor.rs)

Schema

Validate implementations against nostrability/schemata:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions