# IRC services

IRC services is a set of features implemented on many Internet Relay Chat networks. Services are automated bots with special status which are generally used to provide users with access with certain privileges and protection. They usually implement some sort of login system so that only people on the access control list can obtain these services.

## Components

The most popular style of services uses a number of fake clients whose names end in "Serv". The four below are nearly always seen in services of this style.
* ChanServ, a channel service bot, is used to protect channel operators and help run the channel. This is convenient for the operators because they do not need to have an operator on the channel all of the time to keep their status.
* NickServ, a nickname service bot, is used to register and protect user nicknames.
* MemoServ, a memo service bot, is used to record and deliver messages to users who are currently offline.
* OperServ is used by IRC operators to perform administrative functions. Also known as AdminServ, RootServ, or OpServ (srvx).
Some others are also seen following this naming convention in some services packages including:
* BotServ, a bot which allows channel operators to assign bots to their channels. These bots are mostly a ChanServ representative in the channel.
* HelpServ, the help service bot, is used to provide help on a variety of IRC topics.
* HostServ, a host service bot, is used to allow general users to register a vhost so that their real IP address on IRC is hidden.
* RootServ, used on specific networks, is utilized by Services Root Administrators to perform Root Administrative functions for the IRC Network and Services Program.
* SpamServ, used to protect channels against spam.
* StatServ, a statistic services bot, is used to perform various statistical analysis on the IRC Network.
Other commonly used services bots:
* Global, a message agent, is a specific service that is used to send global messages via services. This agent is usually given a global IRC Operator status as to be able to perform the function. This service must be on a U-lined server so it has the ability to spoof nicknames. This service is often renamed to the name of the network (e.g. DalNet or Xevium).

## History

The original NickServ was written by Armin Gruner at the Technical University of Munich in 1990. The original intention was to give out friendly warnings that somebody else already likes to use a specific nickname, since the IRC protocol has no built-in provision to protect electronic identities.
NoteServ and MsgServ followed up soon after the introduction of NickServ, and had a similar job to today's MemoServ.
It was considered acceptable behavior simply to /ignore NickServ's notices, but an operator decided to /kill NickServ and use the nickname NickServ himself, subsequently collecting all identify passwords from users and being amused by that. This led to a public debate over the usefulness and safety of services and the discontinuation of NickServ on EFnet, and EFnet's current Nicknames are not owned policy arose.
In 1995 DALnet invented ChanServ, then re-implemented NickServ and MemoServ. Today, EFnet and IRCnet are the last large IRC networks which stick to their policy of living without identity protection. Some debate still remains over the value and benefits of Services on IRC, although they are generally considered essential to providing a pleasant chatting experience. This is proven in the fact that most service-less networks have died out.
Many variants of services have been implemented over time, so each IRC network speaks a different service dialect, making it close to impossible for client developers to implement unified graphical interfaces to the various registration procedures. Still, most of them are inspired by DALnet's and Armin's original works, only Undernet and QuakeNet stick out with a completely different approach.

## ChanServ

ChanServ, on many IRC networks, is an IRC service which maintains channel registration and access information. If a channel is registered with ChanServ, its owners (and those they have designated) can use ChanServ to obtain control over the channel, gaining channel operator privileges. Most channel service bots also allow other sorts of channel management options, such as topic locks (in addition to +t), mode locks, and providing users automatically with operator status, half-operator status, voice, or other access, as designated by the channel owners. They may also provide some form of automated ban-list management.
There are several implementations of IRC services which have a ChanServ bot; some other services use other names, such as CS. The exact commands and features available depend on the service implementation and the network in question.

### Access levels

* Founder
* Super operator (often written as SOP or SOp)
* Auto operator (often written as AOP or AOp)

## OperServ

OperServ is a component of most IRC services packages used to help administer an Internet Relay Chat network. It provides IRC operators with functions to help monitor and maintain the network, manage the other services, and deal with problematic users.
Some of the more infamous functions of OperServ are the "lines", such as the K-line and G-line. These are used to discipline troublesome network users, however, other network lines are available for use. The exact features available depend upon a particular operator's permissions, and the specific implementation in use.
On DALnet a similar concept known as an "AKill" was used instead of a G-line. The term AKill comes from an earlier implementation in which the IRC services would automatically "kill" (disconnect) the user remotely upon login, rather than the individual servers simply denying the connection.
On OpenNap networks, OperServ is a pseudo-user which allows users above a specific permission level to execute server administration commands. Although primarily intended to supplement clients without built-in support for such actions, there are no restrictions on its use.

## IRC services software packages

There are several software packages that implement services. Some of the popular ones include srvx, Atheme, DalekIRC Services, ChatServices, Hybserv (developed for use with the Hybrid IRCd software), Epona, Anope, and IRC Services 5 (supporting a wide range of IRC daemons, considered the "original" IRC Services). While some of these packages provide excellent features in the eyes of many users, some network operators decide to write their own services, with the most important reasons being flexibility, customization, and often, mostly on smaller networks, fun also plays an important role. Not all packages implement the above service bots. Also, sometimes the bots have different names, and may or may not implement these functions in the form listed above. Even so, the above form is the most common.