This page lists the tags, capabilities, commands, batches and metadata keys that have been defined by the IRCv3 Working Group, are described by our specifications, or that we otherwise recommend using.


Numerics

Numeric Name Specs Description
005 RPL_ISUPPORT Lists features supported by the server; sent as connection registration is completed. (1) (2) (3)
670 RPL_STARTTLS starttls Indicates that the client may begin their TLS handshake
691 ERR_STARTTLS starttls Indicates that STARTTLS failed because of an unspecified error
730 RPL_MONONLINE Monitor Indicates to a client that either a target has just become online, or that a target they have added to their monitor list is online
731 RPL_MONOFFLINE Monitor Indicates to a client that either a target has just left the irc network, or that a target they have added to their monitor list is offline
732 RPL_MONLIST Monitor Returns the list of targets that the client has in their monitor list
733 RPL_ENDOFMONLIST Monitor Indicates the end of a monitor list
734 ERR_MONLISTFULL Monitor Indicates to a client that their monitor list is full
900 RPL_LOGGEDIN SASL 3.1, SASL 3.2 Indicates that the client is logged in
901 RPL_LOGGEDOUT SASL 3.1, SASL 3.2 Indicates that the client has been logged out
902 ERR_NICKLOCKED SASL 3.1, SASL 3.2 Indicates that SASL auth failed because the account is currently locked out, held, or otherwise administratively made unavailable
903 RPL_SASLSUCCESS SASL 3.1, SASL 3.2 Indicates that SASL auth finished successfully
904 ERR_SASLFAIL SASL 3.1, SASL 3.2 Indicates that SASL auth failed because of invalid credentials or other errors not explicitly mentioned by other numerics
905 ERR_SASLTOOLONG SASL 3.1, SASL 3.2 Indicates that SASL auth failed because the client-sent AUTHENTICATE command was too long (i.e. the parameter was longer than 400 bytes)
906 ERR_SASLABORTED SASL 3.1, SASL 3.2 Indicates that SASL auth has been aborted because the client sent an AUTHENTICATE command with * as the parameter
907 ERR_SASLALREADY SASL 3.1, SASL 3.2 Indicates that SASL auth failed because the client has already authenticated and the server doesn’t support re-authenticating
908 RPL_SASLMECHS SASL 3.1, SASL 3.2 Sends the SASL mechanisms supported by the server, in response to an incorrectly-sent AUTHENTICATE message

Capabilities

Name Specs Description
account-notify account-notify Notifies clients when other clients in common channels authenticate with or deauthenticate from their account (e.g. NickServ, SASL).
account-tag account-tag Attaches a tag containing the user’s account to every message they send.
away-notify away-notify Notifies clients when other clients in common channels go away or come back.
batch batch Lets the server bundle common messages together, which lets clients be more intelligent about displaying them.
cap-notify CAP Notifies clients when client capabilities become availiable or are no longer available.
chghost chghost Enables the CHGHOST message, which lets servers notify clients when another client’s username and/or hostname changes.
echo-message echo-message Notifies clients when their PRIVMSG and NOTICEs are correctly received by the server.
extended-join extended-join Extends the JOIN message to include the account name of the joining client.
invite-notify invite-notify Notifies clients when other clients are invited to common channels.
labeled-response Labeled responses [draft] Allows clients to correlate requests with server responses
message-tags Message Tags Allows clients and servers to use tags more broadly
metadata Metadata 3.2 [deprecated] Lets clients store metadata about themselves with the server, for other clients to request and retrieve later.
monitor Monitor Lets users request notifications for when clients become online / offline.
multi-prefix multi-prefix Makes the server send all prefixes in NAMES and WHO output, in order of rank from highest to lowest.
sasl SASL 3.1, SASL 3.2 Indicates support for SASL auth, a standardised way for clients to identify for an account.
server-time server-time Lets clients show the actual time messages were received by the server.
setname setname [draft] Lets clients change their realname after connecting to the server.
tls starttls Indicates support for the STARTTLS command, which lets clients upgrade their connection to use TLS encryption.
userhost-in-names userhost-in-names Extends the RPL_NAMREPLY message to contain the full nickmask (nick!user@host) of every user, rather than just the nickname.

Tags

Name Specs Description
account account-tag Contains the account name of the user that sent the attached message to the client.
batch batch Contains the ID of the batch the attached message is a part of.
label Labeled responses [draft] Allows clients to correlate requests with server responses
msgid Message IDs Provides a server supplied unique message ID
time server-time Contains the time that the given message should be treated as happening at.
+react React client tag [draft] Sends a reaction to a specific sent message.
+reply Reply client tag [draft] Marks that a given message is intended as a reply to a specific sent message.
+typing Typing client tag [draft] Allows users to see when other users are typing.

Batches

Name Specs Description
chathistory chathistory Batch Type Indicates that the given messages represent history playback from this channel.
labeled-response Labeled responses [draft] Allows clients to correlate requests with server responses
netjoin netsplit and netjoin Batch Types Indicates that the given clients are joining as the result of a netjoin (two split servers reconnecting).
netsplit netsplit and netjoin Batch Types Indicates that the given clients are quitting as the result of a netsplit (two servers disconnecting).

Messages

Name Specs Description
AUTHENTICATE SASL 3.1, SASL 3.2 Used to login to a client account when SASL authentication is negotiated.
ACCOUNT account-notify Notifies clients of new logins by friends.
CAP CAP Lets clients negotiate client capabilities with servers.
CHGHOST chghost Notifies clients of changed usernames and hostnames of friends
INVITE invite-notify Not defined by IRCv3 but extended to alert other clients that someone’s been invited to one of their channels.
JOIN extended-join Not defined by IRCv3 but extended to include usernames and hostnames.
METADATA Metadata 3.2 [deprecated] Lets clients store metadata about themselves with the server, for other clients to request and retrieve later.
MONITOR Monitor Existing command which allows clients to see when specific nicknames enter or leave the network.
NAMES userhost-in-names Not defined by IRCv3 but extended to include account names.
STARTTLS starttls Allows clients to upgrade their plaintext connections to use TLS encryption.
TAGMSG Message Tags Lets clients send messages with tags but no text content.
WEBIRC WebIRC Existing command which provides the real IP address of clients to the server when connecting through a gateway.

User Metadata

Key Format Description
avatar URL with an optional {size} substitution denoting the size to load in pixels
https://example.com/avatar/16/asdf.jpg
Avatar that graphical clients can show alongside the user’s name
bot Any string
PacketBot v1.2
JitiBot
melo3
Lets bot runners provide the name of their bot software. Setting this key identifies the client as a bot.
display-name Any string
James Wheare
Posiden
ダニエル
Борис
Alternative name to use instead of a nick for display purposes. Useful for gateways to chat services that allow spaces and other characters in nicks. A nick is required for standard protocol level stuff but can be less prominent in the UI. May contain emoji.
homepage Valid URL
https://example.com/bot-info.html
URL of a webpage that contains more information about the user/bot themselves, or bot software in use.
status Any string
Working from home
Status text that can be shown for users without making them ‘away’

FAIL codes

Command Code Specs Description
ACCOUNT_REQUIRED PR#276 [PR] Indicates that the client must be logged into an account to execute the given command, connect to the server, or otherwise access some functionality
ACC ACCOUNT_ALREADY_EXISTS PR#276 [PR] Indicates that the client cannot register because the given account name already exists
ACC ACCOUNT_ALREADY_VERIFIED PR#276 [PR] Indicates that the client has already completed verification for their account registration
ACC ACCOUNT_INVALID_VERIFY_CODE PR#276 [PR] Indicates that the given account registration verification code is incorrect
ACC REG_INVALID_CALLBACK PR#276 [PR] Indicates that the given callback cannot be used (e.g. invalid email address, etc)
ACC REG_INVALID_CRED_TYPE PR#276 [PR] Indicates that the given credential type is incorrect
ACC REG_INVALID_CREDENTIAL PR#276 [PR] Indicates that the given credential (e.g. the passphrase) cannot be used
ACC REG_MUST_USE_REGNICK PR#276 [PR] Indicates that the client must send * as the account name
ACC REG_UNAVAILABLE PR#276 [PR] Indicates that account registration is currently unavailable
ACC REG_UNSPECIFIED_ERROR PR#276 [PR] Indicates that account registration has otherwise failed
ACC VERIFY_UNSPECIFIED_ERROR PR#276 [PR] Indicates that account registration verification has otherwise failed
BRB CANNOT_BRB PR#306 [PR] Indicates that the BRB attempt was unsuccessful
RESUME CANNOT_RESUME PR#306 [PR] Indicates that the resume attempt was otherwise unsuccessful
RESUME INSECURE_SESSION PR#306 [PR] Indicates that either the old or new session was not connected securely
RESUME INVALID_TOKEN PR#306 [PR] Indicates that the provided resume token was not correct
RESUME REGISTRATION_IS_COMPLETED PR#306 [PR] Indicates that resume failed because connection registration has already completed
SETNAME CANNOT_CHANGE_REALNAME setname [draft] Indicates that the realname could not be otherwise changed
SETNAME INVALID_REALNAME setname [draft] Indicates that the new realname was invalid

WARN codes

Command Code Specs Description
ACCOUNT_REQUIRED PR#276 [PR] Indicates that the client should login into an account