22/TOY-CHAT

FieldValue
NameWaku v2 Toy Chat
Slug22
Statusdraft
EditorFranck Royer [email protected]
ContributorsHanno Cornelius [email protected]

Timeline

  • 2026-01-1689f2ea8 — Chore/mdbook updates (#258)
  • 2025-12-220f1855e — Chore/fix headers (#239)
  • 2025-12-22b1a5783 — Chore/mdbook updates (#237)
  • 2025-12-18d03e699 — ci: add mdBook configuration (#233)
  • 2024-09-133ab314d — Fix Files for Linting (#94)
  • 2024-01-31722c3d2 — Rename TOY-CHAT.md to toy-chat.md
  • 2024-01-295c5ea36 — Update TOY-CHAT.md
  • 2024-01-27411e135 — Create TOY-CHAT.md

Content Topic: /toy-chat/2/huilong/proto.

This specification explains a toy chat example using Waku v2. This protocol is mainly used to:

  1. Dogfood Waku v2,
  2. Show an example of how to use Waku v2.

Currently, all main Waku v2 implementations support the toy chat protocol: nim-waku, js-waku (NodeJS and web) and go-waku.

Note that this is completely separate from the protocol the Status app is using for its chat functionality.

Design

The chat protocol enables sending and receiving messages in a chat room. There is currently only one chat room, which is tied to the content topic. The messages SHOULD NOT be encrypted.

The contentTopic MUST be set to /toy-chat/2/huilong/proto.

Payloads

syntax = "proto3";

message Chat2Message {
   uint64 timestamp = 1;
   string nick = 2;
   bytes payload = 3;
}
  • timestamp: The time at which the message was sent, in Unix Epoch seconds,
  • nick: The nickname of the user sending the message,
  • payload: The text of the messages, UTF-8 encoded.

Copyright and related rights waived via CC0.