specs/informational/22/toy-chat.md

1.6 KiB

slug title name status tags editor contributors
22 22/TOY-CHAT Waku v2 Toy Chat draft waku/application Franck Royer <franck@status.im>
Hanno Cornelius <hanno@status.im>

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

Copyright and related rights waived via CC0.