RPL_ISUPPORT Tokens

Revision 0.12

Red denotes a conflicting token definition, gray for deprecated (however quite possibly still in use), yellow for proposed, and blue for OK.

Name Format Comments
ACCEPT ACCEPT=<number>

Examples:

  • ACCEPT=20

Indicates the maximum number of online nicknames a user may have in their accept list. First introduced in ircd-ratbox-3.0.9(r28737).

AWAYLEN AWAYLEN=[number]

Examples:

  • AWAYLEN=8
  • AWAYLEN=

Indicates the maximum length of an away message. If "number" is not defined, there is no limit.

BOT BOT=<letter>

Examples:

  • BOT=B
  • BOT=b

Indicates the character to be used as a user mode to let clients mark themselves as bots by setting it

CALLERID CALLERID[=letter]

Examples:

  • CALLERID
  • CALLERID=g

Indicates that the "caller-id" user mode is supported, which rejects messages from unauthorized users. "letter" defines the mode character, which is used for this feature. If the value is not given, it defaults to the mode "g".

CASEMAPPING CASEMAPPING=<string>

Examples:

  • CASEMAPPING=rfc1459

Indicates the method that’s used to compare equality of case-insensitive strings (such as nick/channel names). Typical values include "ascii" and "rfc1459". "rfc3454" is a proposed value that refers to the stringprep method described in RFC3454 (typically used for UTF-8 casefolding).

CHANLIMIT CHANLIMIT=<prefix:[number[,prefix:number[,...]]]>

Examples:

  • CHANLIMIT=#+:25,&:
  • CHANLIMIT=&#:50

Indicates the maximum number of channels a client may join. Though a client shouldn’t assume that other clients are limited to what they receive here. If "number" is empty, there is no limit.

CHANMODES CHANMODES=<A,B,C,D>

Examples:

  • CHANMODES=b,k,l,imnpst
  • CHANMODES=beI,k,l,BCMNORScimnpstz

Indicates the channel modes available and which types of arguments they do or do not take. See the linked Hardy draft for specifics.

CHANNELLEN CHANNELLEN=<number>

Examples:

  • CHANNELLEN=50

Specifies the maximum length of a channel name that clients may join.

CHANTYPES CHANTYPES=[string]

Examples:

  • CHANTYPES=&#

Indicates the types of channels supported on this server. These are channel type prefixes as specified in the RFC and as described by the “Channel Type Prefixes” list on this site.

CHARSET CHARSET=<string>

Examples:

  • CHARSET=ascii

Originally meant to specify the character encoding of messages sent by the server, but removed in a later version of the draft. It is meaningless nowadays and should be ignored. draft-brocklesby-irc-isupport-03 (2004) says, “The traditional CHARSET parameter has been entirely removed. It was found to be unworkable; a correct specification could not be devised to represent its meaning across implementations”. draft-hardy-irc-isupport-00 (2005) removed it completely.

CLIENTVER CLIENTVER=<number>

Examples:

  • CLIENTVER=3.0

Indicates presence of given IRC protocol version core capabilities. First introduced in ircd-charybdis-3.2(bde6442).

CNOTICE CNOTICE

Examples:

  • CNOTICE

Indicates that the server supports the "CNOTICE" command. This is an extension to the "NOTICE" command.

CPRIVMSG CPRIVMSG

Examples:

  • CPRIVMSG

Indicates that the server supports the "CPRIVMSG" command. This is an extension to the "PRIVMSG" command.

DEAF DEAF=<letter>

Examples:

  • DEAF=D

Indicates that the server supports the "DEAF" user mode and the given character is used to represent that mode.

ELIST ELIST=<string>

Examples:

  • ELIST=CMNTU

Indicates that the server supports search extensions to the "LIST" command. For specific extension characters, read the linked Hardy draft and various IRC software.

ESILENCE ESILENCE=[flags]

Examples:

  • ESILENCE
  • ESILENCE=CcdiNnPpTtx

Indicates that the server supports filtering extensions to the "SILENCE" command. If a value is specified then it contains the supported filter flags.

ETRACE ETRACE

Examples:

  • ETRACE

Indicates that the server supports the "ETRACE" command (IRC operators-only), which is similar to "TRACE", but only works on nicknames and has a few different options. First introduced in ircd-ratbox-2.0beta2(r13975); mentioned in a footnote of Hardy draft without defining anything about it.

EXCEPTS EXCEPTS[=letter]

Examples:

  • EXCEPTS
  • EXCEPTS=e

Indicates that the server supports “ban exemptions”. The letter is OPTIONAL and defines the mode character which is used for this. When no letter is provided, it defaults to "e".

EXTBAN EXTBAN=<[prefix],types>

Examples:

  • EXTBAN=~,cqnr
  • EXTBAN=~,qjncrRa
  • EXTBAN=,ABCNOQRSTUcjmprsz

Indicates the types of “extended bans” that the server supports. "prefix" defines the character that indicates an extban to the server and "types" is a list of characters indicating which types of extended bans the server supports. If "prefix" does not exist, then the server does not require a prefix for extended bans and they should be sent with no prefix. Extended bans may allow clients to issue bans based on account name, SSL certificate fingerprints and other attributes, based on what the server software supports. They may also be used in ban exemption and invite exemption masks, depending on server software.

FNC FNC

Examples:

  • FNC

“Forced Nick Change”. Indicates that the server may change a user’s nickname without the user sending the server a "NICK" message. Note that servers may do this even if they don’t send this token. Clients MUST be able to handle this correctly regardless of whether this token is presented or not.

INVEX INVEX[=letter]

Examples:

  • INVEX
  • INVEX=I

Indicates that the server supports “invite exemptions”. The letter is OPTIONAL and defines the mode character, which is used for this. When no letter is provided, it defaults to "I".

KEYLEN KEYLEN=<number>

Examples:

  • KEYLEN=23

Indicates the maximum length of a channel key. First introduced in ircd-ratbox-3.1beta(r28741).

KICKLEN KICKLEN=[number]

Examples:

  • KICKLEN=180
  • KICKLEN=

Indicates the maximum length of a kick message. If "number" is not defined, there is no limit.

KNOCK KNOCK

Examples:

  • KNOCK

Indicates support for the "KNOCK" command, which is used to request an invite to a channel.

LINELEN LINELEN=<number>

Examples:

  • LINELEN=512
  • LINELEN=2048

Indicates the maximum allowed length of a single IRC message (line) in octets. The "LINELEN" token defaults to 512. There is no upper limit for "LINELEN". An alternative to this token is the oragono.io/maxline-2 capability, though that has now been deprecated.

MAP MAP

Examples:

  • MAP

Indicates support for the "MAP" command, which is used to show a representation of how the servers are linked to each other. In practice this is command is supported by most networks (but may be disallowed for non-IRC operators), even if they don’t advertise this token. Used by InspIRCd up to 2.0, removed in 3.0.

MAXBANS MAXBANS=<number>

Examples:

  • MAXBANS=100

Indicates the maximum number of bans that may be set on a channel. "MAXBANS" was obsoleted by "MAXLIST", as that token allows servers to specify which limits apply to which channel modes explicitly.

Also see MAXLIST.

MAXCHANNELS MAXCHANNELS=<number>

Examples:

  • MAXCHANNELS=25

Indicates the maximum number of channels a client may join. Which types of channels this limit does or doesn’t apply to is not made clear by the token. This limit may only apply to standard ("#") channels. The "CHANLIMIT" token was created to explicitly specify the limits that apply to each channel type. "CHANLIMIT" should be used instead of this token, but this token is still widely-defined by servers.

Also see CHANLIMIT.

MAXLIST MAXLIST=<mode:number[,mode:number[,...]]>

Examples:

  • MAXLIST=beI:25
  • MAXLIST=b:25,eI:50

Indicates how many “variable” modes of "type A" that have been defined in the "CHANMODES" token a client may set in total on a channel. The value MUST be specified and is a set of "mode:number" pairs, where "mode" is a number of "type A" modes that have been defined in "CHANMODES" and "number" is how many of this mode may be set. For more details, read the linked Hardy draft.

Also see CHANMODES.

MAXNICKLEN MAXNICKLEN=<number>

Examples:

  • MAXNICKLEN=9
  • MAXNICKLEN=32

Indicates the maximum length of a nickname that a client may use. Other clients on the network may have nicknames longer than this.

MAXPARA MAXPARA=<number>

Examples:

  • MAXPARA=32

Indicates the maximum number of parameters to any command. Used by InspIRCd only, where the default is 32, above the RFC specified limit of 15. Other servers may have different limits without advertising this token.

MAXTARGETS MAXTARGETS=<number>

Examples:

  • MAXTARGETS=8

Indicates the maximum number of targets for the "PRIVMSG" & "NOTICE" commands.

Also see TARGMAX.

METADATA METADATA[=number]

Examples:

  • METADATA=30
  • METADATA

Indicates the maximum number of keys a user may have in their metadata. If "number" is not specified, there is no limit.

MODES MODES=[number]

Examples:

  • MODES=3
  • MODES=

Indicates how many “variable” modes may be set on a channel by a single "MODE" command from a client. A “variable” mode is defined as being a "type A/B/C" mode as defined in the "CHANMODES" token. The value is optional and when not specified indicates that there is NO limit places on “variable” modes.

Also see CHANMODES.

MONITOR MONITOR=[number]

Examples:

  • MONITOR=6
  • MONITOR=

Indicates the maximum number of targets a user may have in their monitor list. If "number" is not specified, there is no limit.

Also see WATCH.

NAMESX NAMESX

Examples:

  • NAMESX

Indicates that the "NAMES" reply message may be extended to contain all possible prefixes, which apply to a user. The IRCv3 Working Group recommends that the "multi-prefix" client capability is used instead of this token.

NETWORK NETWORK=<string>

Examples:

  • NETWORK=EFNet
  • NETWORK=Rizon

For INFORMATIONAL PURPOSES ONLY and indicates the name of the IRC network that the client is connected to. A client SHOULD NOT use this value to make assumptions about supported features on the server.

NICKLEN NICKLEN=<number>

Examples:

  • NICKLEN=9
  • NICKLEN=32

Indicates the maximum length of a nickname that a client may use. Other clients on the network may have nicknames longer than this.

OVERRIDE OVERRIDE

Examples:

  • OVERRIDE

Indicates that IRC operators may override modes and channel security. Used by InspIRCd only.

PREFIX PREFIX=[(modes)prefixes]

Examples:

  • PREFIX=(ov)@+
  • PREFIX=(qaohv)~&@%+
  • PREFIX=

Indicates the channel membership prefixes available on this server and their order in terms of channel privileges they represent, from highest to lowest. If the value is not specified, then NO channel membership prefixes are supported by this server. Various prefixes used in production are contained in the “Channel Membership Prefixes” list.

SAFELIST SAFELIST

Examples:

  • SAFELIST

Indicates that the client may request a "LIST" command from the server without being disconnected due to the large amount of data. This token MUST NOT have a value.

SECURELIST SECURELIST

Examples:

  • SECURELIST

Indicates that “secure listing” is enabled and that your initial request for a channel list on connect may be denied until you have been connected for a certain amount of time. Used by InspIRCd only.

SILENCE SILENCE=[number]

Examples:

  • SILENCE=15
  • SILENCE=

Indicates the maximum number of entries a user may have in their silence list. The value is OPTIONAL and if not specified indicates that there is no limit. The "SILENCE" command seems to vary quite a lot between implementations. Most clients include client-side filter/ignore commands and servers have the "CALLERID" client mode as alternatives to this command.

SSL SSL=<ip:port[;ip:port[;...]]>

Examples:

  • SSL=1.2.3.4:6668;4.3.2.1:6669;*:6660;

Indicates the ports and IP addresses SSL may be found on. Each ip and port pair are separated by a colon (:) character and multiple port/ip pairs are separated by semicolons (;). Used by InspIRCd up to 2.0, removed in 3.0.

STARTTLS STARTTLS

Examples:

  • STARTTLS

Indicates that the server supports upgrading plaintext connections to encrypted ones through "STARTTLS". This token must not be used to detect STARTTLS support, since that means leaking the initial connection registration process. The ircv3.1 "tls" extension should be used instead. Removed in InspIRCd 3.0.

STATUSMSG STATUSMSG=<string>

Examples:

  • STATUSMSG=@+

Indicates that the server supports a method for the client to send a message via the "NOTICE" command to those people on a channel with the specified channel membership prefixes. The value MUST be specified and MUST be a list of prefixes as specified in the "PREFIX" token.

Also see PREFIX.

STD STD=<string>

Examples:

  • STD=i-d

Attempts to indicate the standard to which the ISUPPORT implementation is written. Whether this means tokens or simply syntax is not specified. This doesn’t seem to be that useful, given the age of all these specifications and how it is not officially specified nor used all that much.

TARGMAX TARGMAX=[cmd:[number][,cmd:[number][,...]]]

Examples:

  • TARGMAX=PRIVMSG:3,WHOIS:1,JOIN:
  • TARGMAX=

Certain commands from a client MAY contain multiple targets. This token defines the maximum number of targets may be specified on each of these commands. The value is OPTIONAL and is a set of "cmd:number" pairs, where "cmd" refers to the specific command and "number" refers to the limit for this command. If the number is not specified for a particular command, then that command does not have a limit on the maximum number of targets. If the "TARGMAX" parameter is not advertised or a value is not sent then a client SHOULD assume that no commands except the "JOIN" and "PART" commands accept multiple parameters.

Also see MAXTARGETS.

TOPICLEN TOPICLEN=<number>

Examples:

  • TOPICLEN=120

Indicates the maximum length of a topic that a client may set on a channel. Channels on the network MAY have topics with longer lengths than this.

UHNAMES UHNAMES

Examples:

  • UHNAMES

Indicates that the "NAMES" reply message may be extended to contain the full hostmask of every user listed. Must NOT have a value. The IRCv3 Working Group recommends that the "userhost-in-names" client capability is used instead of this token.

USERIP USERIP

Examples:

  • USERIP

Indicates support for the "USERIP" command, which is used to request the direct IP address of the user with the specified nickname. This might be supported by networks that don’t advertise this token.

USERLEN USERLEN=[number]

Examples:

  • USERLEN=12
  • USERLEN=

Indicates the maximum length of an username in octets. If "number" is not specified, there is no limit.

VBANLIST VBANLIST

Examples:

  • VBANLIST

Indicates that list mode sizes may vary from channel to channel. Used by InspIRCd only, always present before v3.4.0, removed in v4.

VLIST VLIST=<modes>

Examples:

  • VLIST=be

Indicates that the specified list modes may be larger than the value specified in MAXLIST. Used by InspIRCd v3.4.0+.

WALLCHOPS WALLCHOPS

Examples:

  • WALLCHOPS

Indicates that the server supports messaging channel operators, either through a command like "WALLCHOPS #channel" or a "STATUSMSG"-like notice like "NOTICE @#channel", with most implementations only handling the latter. This command has been obsoleted by the "STATUSMSG" token and the "STATUSMSG" token seems to be more widely used.

Also see STATUSMSG.

WALLVOICES WALLVOICES

Examples:

  • WALLVOICES

Indicates that the server supports messaging channel voiced users, either through a command like "WALLVOICES #channel" or a "STATUSMSG"-like notice like "NOTICE +#channel", with most implementations only handling the latter. This command has been obsoleted by the "STATUSMSG" token and the "STATUSMSG" token seems to be more widely used. Unlike "WALLCHOPS", this wasn’t included in any of the original drafts and it’s much less common.

Also see STATUSMSG.

WATCH WATCH=<number>

Examples:

  • WATCH=100

Indicates the maximum number of nicknames a user may have in their watch list. The "MONITOR" command is aimed at being a more consistent alternative to this command and documentation for it may be found on the IRCv3 website.

Also see MONITOR.

WHOX WHOX

Indicates that the server supports extended syntax of the "WHO" command.