Skip to content

Instantly share code, notes, and snippets.

@SoniEx2
Last active January 1, 2025 00:01
Show Gist options
  • Save SoniEx2/e5341c2d88cb3f03c5ed0095d2d90e42 to your computer and use it in GitHub Desktop.
Save SoniEx2/e5341c2d88cb3f03c5ed0095d2d90e42 to your computer and use it in GitHub Desktop.
IRC extension for blockable replies

IRC extension for blockable replies

IRCv3 replies are currently not blockable. You can freely reply to users who have /ignore'd you. We can do better than this.

This idea was primarily inspired by our experiences using the official Python support forums and not being able to prevent certain users from replying to our posts. While forums and IRC are different kinds of spaces, we feel like being able to block replies applies to both.

Feel free to leave comments/feedback under this gist!

The reply-key client-tag

The reply-key client-tag is a tag that can be applied to a message, allowing replies to said message. The tag value is an Ed25519 signing public key.

The reply-nonce-request client-tag

The reply-nonce-request client-tag is a TAGMSG tag to request a nonce. The tag value is the same Ed25519 public key as seen in a message.

The reply-nonce-response client-tag

The reply-nonce-response client-tag is a TAGMSG tag to provide a nonce. The tag value is an opaque nonce and Ed25519 signature matching the public key.

The reply-nonce client-tag

The reply-nonce client tag is a tag that can be applied to a message, and links the message to the message being replied to. Unlike the reply tag, reply-nonce tags MUST only be used once, and clients MUST drop messages that reuse a reply-nonce.

Interaction with message editing

When editing a reply, a new nonce must be applied. Clients MUST ignore edits that reuse a reply-nonce.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment