Skip to content
Unseenet Working Group                                     A. Lorensen
UN-RFC: 0008                                              October 2026
Category: Standards Track
Status: Draft
Updates: 0004, 0005

          Unseenet: Chat Groups and Low-Latency Delivery

Abstract

Unseenet was designed for discussion, where a minute does not matter. Chat needs seconds. This document lets a client be told about new articles as soon as its node has them (XUN-WATCH), and lets a group's owner mark the group as a chat, so that nodes forward its articles without the random delay of UN-RFC 0005 section 5.5 and clients show it as a conversation.

1. Where the Time Goes

Without this document, an article posted in one place reaches a reader elsewhere after:

  1. the poster's proof-of-work (about a second at 20 bits, UN-RFC 0006);
  2. up to 60 seconds of random delay at each node (UN-RFC 0005 section 5.5);
  3. the reader's next poll of their node.

Section 2 removes the third, section 3 the second, and section 4 lets owners lower the first.

2. Watching for New Articles

2.1 Capability

A node that implements this section adds the capability

UNSEENET-WATCH

2.2 The XUN-WATCH Command

XUN-WATCH <wildmat>

The node answers 290 watching and from then on sends one line for every article it accepts in a group matching the wildmat:

291 <group-id> <article-number> <message-id>

The client ends watching by sending a line DONE; the node answers 292 done and the connection returns to normal command mode. While watching, the client MUST NOT send other commands. A client that wants to read and watch at the same time opens a second connection.

The node SHOULD send 293 keepalive after 5 minutes without other output, so that clients and Tor can tell a quiet connection from a dead one.

2.3 Privacy

The wildmat tells the node which groups the client follows - which it learns anyway when the client reads them. Clients SHOULD watch the same groups they read and nothing more specific.

3. Chat Groups

3.1 Manifest Fields

UN-RFC 0004 section 3.1 is extended with:

Field Type Default Meaning
view string "threads" How clients show the group: threads or chat
low_latency boolean false Nodes forward without random delay

view is a hint. Readers may switch views; clients SHOULD remember a reader's choice per group.

3.2 Forwarding

A node MUST NOT apply the random forwarding delay of UN-RFC 0005 section 5.5 to articles in a group with "low_latency": true. It SHOULD forward them as soon as they are accepted.

3.3 The Trade-off

The random delay makes it harder for someone watching several nodes to tell where an article entered the network. A low-latency group gives that up for speed. Clients MUST make it visible that a group is low-latency, and owners SHOULD only enable it for groups where the members accept this, such as a chat among friends.

Closed-group content stays end-to-end encrypted in any case; what is weakened is only the protection of who posted from where.

4. Postage in Chat Groups

Proof-of-work per message is felt in a chat. Owners of chat groups MAY set a lower min_pow; clients MUST compute the postage they attach as

max( node's UNSEENET-MINPOW, group's min_pow )

rather than a fixed value, so that a lower group minimum actually makes posting faster. Nodes still apply their own minimum (UN-RFC 0006 section 3).

5. Chat View (Informative)

A chat view shows a group's articles in order of arrival, newest last, as Name: text, without subjects or threads, with a single input line. Articles sent from a chat view carry an automatic Subject (e.g. the first words of the text) so that thread views and other clients still show something meaningful, and no signature.

Copyright Notice

Copyright (c) 2026 the persons identified as the document authors. This document is licensed under CC BY 4.0, see rfc/LICENSE.md.