Skip to content

Kind 43: Channel Hide Message ​

Overview ​

Kind 43 events are used in the public chat system (NIP-28) to hide specific messages in a channel. This event type allows users to indicate they no longer want to see a particular message, providing client-side moderation capabilities without imposing requirements on relays. When a user creates a kind 43 event, clients should hide the referenced message when displaying the channel to that user.

Specification ​

PropertyValue
Kind Number43
Event RangeRegular
Defined inNIP-28

Content Format ​

The content field is optional and may include metadata about the hide action, such as the reason for hiding the message. It should be a JSON string if provided.

Schema ​

json
"content": "{\"reason\": \"Inappropriate content\"}"

Tags ​

Tag NameDescriptionFormatRequired
eReferenced message to hide["e", "<message-event-id>"]Yes

Client Behavior ​

Clients should:

  1. Hide any kind 42 (channel message) events from display if the current user has created a kind 43 event referencing that message's ID
  2. Allow users to easily create kind 43 events when they want to hide specific messages
  3. Optionally support providing a reason when hiding a message
  4. Optionally implement collective moderation by hiding messages that multiple users have hidden for certain reasons

Relay Behavior ​

Relays are not required to perform any special handling for kind 43 events. They should:

  1. Store and serve these events like any other regular event
  2. Not be expected to filter messages based on these events, as the filtering is handled client-side

Use Cases ​

  • Personal content filtering in public chat channels
  • Hiding spam, offensive content, or unwanted messages
  • Creating safe, moderated environments without requiring relay-side moderation
  • Collective moderation through aggregating user hide actions
  • Building client-specific moderation policies based on user preferences

Example ​

json
{
  "id": "4376c65d2f232afbe9b882a35baa4f6fe8667c4e684749af565f981833ed6a65",
  "pubkey": "79dff8f82963424e0bb02708a22e44b4980893e3a4be0fa3cb60a43b946764e3",
  "created_at": 1671217411,
  "kind": 43,
  "tags": [
    ["e", "fe964e758903fc8186283d82b5f7029f0478d9daf9ea9a9ee8f7d620c4c99e98"]
  ],
  "content": "{\"reason\": \"Spam message\"}",
  "sig": "908a15e46fb4d8675bab026fc230a0e3542bfade63da02d542fb78b2a8513fcd0092619a2c8c1221e581946e0191f2af505dfdf8657a414dbca329186f009262"
}

Example with no reason provided:

json
{
  "id": "fe8b1c9a37218cf5ce604a8dce596c9c3ae0c650df2336f3c60c78e61a7b2031",
  "pubkey": "f7234bd4c1394dda46d09f35bd384dd30cc552ad5541990f98844fb06676e9ca",
  "created_at": 1671217500,
  "kind": 43,
  "tags": [
    ["e", "a1a2a3a4b1b2b3b4c1c2c3c4d1d2d3d4e1e2e3e4f1f2f3f4aaabbbcccddd"]
  ],
  "content": "",
  "sig": "a76f39224cebd44cf04eeebe01d5ab2e8f7a3e5e56c83cadd252e7bc5e2e34fd7ad7148cf7a2c7620d9490ccf2e1bac521995725f2e1f543159b8eb98bfdd405"
}

References ​

Notes ​

  • The hide action is personal to the user who created the kind 43 event - it doesn't delete or hide the message for other users by default
  • Clients may choose to implement collective moderation by aggregating hide events from multiple users
  • For instance, if multiple users hide a message citing the same reason (e.g., "inappropriate content"), a client may choose to hide that message for all users
  • This approach provides flexible, client-centric moderation without requiring changes to relay behavior
  • The content field is optional but can be useful for categorizing reasons for moderation and implementing sophisticated filtering policies