What is the difference between the nick, username, and real name in IRC, and what is the password?

The nickname supplied with NICK is the name that's used to address you on IRC. The nickname must be unique across the network, so you can't use a nickname that's already in use at the time.

The username supplied with USER is simply the user part in your user@host hostmask that appears to others on IRC, showing where your connection originates from (if you've never seen these, then your client may be hiding them). In the early days of IRC it was typical for people to run their IRC client on multi-user machines, and the username corresponded to their local username on that machine. Some people do still use IRC from multi-user shell servers, but for the most part the username is vestigal.

The real name supplied with USER is used to populate the real name field that appears when someone uses the WHOIS command on your nick. Unlike the other two fields, this field can be fairly long and contain most characters (including spaces). Some people do put their real name here, but many do not.

The PASS command is optional. It is used to supply a password if the IRC server you are using requires one. Some servers will use the password supplied to attempt to log you on to IRC services.

Note that the RFC2812 does not represent a consensus view of IRC - it is an update to the standard authored by and focussed on one particular implementation of IRC. RFC1459 is still the lingua franca of IRC.


I've done some experimentation and the only thing that seems to matter is the nick. The password is indeed used to register you, and is associated with the nick, not the username or the real name. At least on Foonetic.

First, I logged in with nick "Iggle", and some random other data:

PASS stuff
NICK Iggle
USER whatever 0 * somerealname

Then I registered

PRIVMSG nickserv register pinetree [email protected]

And verified it. So now "pinetree" is the password for Nick: Iggle, Username: whatever, Real name: somerealname.

I disconnected and reconnected.

PASS something
NICK Iggle
USER whatever 0 * somerealname

It logged me in but complained about an invalid password. Okay:

PRIVMSG nickserv identify pinetree

That worked, and it gave me +r. So the PASS command does indeed correspond to the password you register with NickServ. Doing WHOIS Iggle showed a username of "whatever" and a real name of "some real name". I disconnected and reconnected again.

PASS pinetree
NICK Iggle
USER canada 0 * ghana

That logged me in and didn't complain about the password, giving me +r straight away! This confirms that the PASS command is the same as the password given to nickserv, and since I used a different username and real name, it shows that neither of those have anything to do with the password - only the nick matters. WHOIS Iggle showed a username of "canada" and a real name of "ghana", no mention of the data I used on the previous log-in. So you can even use a different username and real name every time you connect to the server and nobody seems to even notice.

Conclusion: The nick seems to be the only thing that matters at all. It's permanently attached to a password once registered with nickserv, and the username and real name don't matter and can be changed at every log in. They don't even seem to be stored anywhere by the server.

Tags:

Irc