This page is intended for developers. If you're looking information on for how to link servers you should refer to the spanningtree module page instead.

Documentation of the server protocol is still work in progress. It may be incomplete or inaccurate.


Messages are formatted the same as a standard IRCv3 message other than the following differences:


This page only lists server messages. For details on user commands that may be sent across the network see the core commands page or for a specific module please refer to the appropriate page for that module.

Name Syntax
ADDLINE :<uuid> ADDLINE <type> <mask> <setter> <settime> <duration> :<reason>
AWAY :<uid> AWAY <time> <reason>
:<uid> AWAY
BURST [:<sid>] BURST [<ts>]
CAPAB [:<sid>] CAPAB START <version>
[:<sid>] CAPAB CAPABILITIES :[<capability-key>=<capability-value>]+
[:<sid>] CAPAB MODULES :[<module-name>[=<module-link-data>]]+
[:<sid>] CAPAB MODSUPPORT :[<module-name>[=<module-link-data>]]+
[:<sid>] CAPAB CHANMODES :[<mode-type>:[<mode-rank>]:<mode-name>=[<mode-prefix>]<modechar>]+
[:<sid>] CAPAB USERMODES :[<mode-type>:[<mode-rank>]:<mode-name>=[<mode-prefix>]<modechar>]+
[:<sid>] CAPAB END
DELLINE :<uuid> DELLINE <type> <mask>
ENCAP :<uuid> ENCAP <target> <message> [<parameters>]+
ERROR [:<sid>] ERROR :<reason>
FHOST :<uid> FHOST <host>
FIDENT :<uid> FIDENT <username>
FJOIN [:<sid>] FJOIN <channel> <ts> <modes> [<mode-parameters>]+ :[<prefix-modes>,<uid>[:<membid>]]+
FMODE :<uuid> FMODE <channel> <ts> <modes> [<mode-parameters>]+
FNAME :<uid> FNAME <realname>
FTOPIC :<uuid> FTOPIC <channel> <channel-ts> <topic-ts> [<setter>] :<new-topic>
IDLE :<uid> IDLE <target-uid>
:<uid> IDLE <reply-uid> <signon-ts> <idle>
IJOIN :<uid> IJOIN <channel> <membid> [<ts> <prefix-modes>]
METADATA [:<sid>] METADATA <channel> <ts> <key> [<value>]
[:<sid>] METADATA <uid> <key> [<value>]
[:<sid>] METADATA {*} <key> [<value>]
NICK :<uid> NICK <nick> <ts>
NUM :<uuid> NUM <sid> <uid> <numeric> [<parameters>]+
OPERTYPE :<uid> OPERTYPE :<type>
PING [:<sid>] PING <target>
PONG [:<sid>] PONG <target>
RESYNC [:<sid>] RESYNC <channel>
SAVE [:<sid>] SAVE <uid> <ts>
SERVER [:<sid>] SERVER <server-name> <password> <unused> <newsid> :<description>
[:<sid>] SERVER <server-name> <newsid> [<data>]+ :<description>
SINFO [:<sid>] SINFO <key> :<value>
SNONOTICE [:<sid>] SNONOTICE <snochar> :<message>
SVSJOIN [:<sid>] SVSJOIN <uid> <channel> [<key>]
SVSNICK [:<sid>] SVSNICK <uid> <newnick> <newnickts> [<oldnickts>]
SVSPART [:<sid>] SVSPART <uid> <channel> [:<reason>]
UID [:<sid>] UID <uid> <ts> <nick> <real-host> <displayed-host> <user> <ip> <signon> <modes> [<mode-parameters>]+ :<real>