Tor Chat is a decentral anonymous Instant Messenger that uses Tor hidden services as its underlying Network. It can be used for text messaging and to transfer files to other users. The characteristics of Tor’s hidden services take care that all traffic between the clients is encrypted and that it is extremely difficult (if not impossible) to tell who is communicating with whom and where a given client is physically located.
In TorChat every user has a unique alphanumeric ID consisting of 16 characters. This ID will be randomly created by Tor when the client is started the first time, it is basically the .onion address of a hidden service. TorChat clients communicate with each other by using Tor to contact the other’s hidden service (derived from his ID) and exchanging status information, chat messages and other data over this connections. Since Tor hidden services can receive incoming connections even if they are behind a router doing Network Address Translation, TorChat doesn’t need any Port Forwarding to work.
TorChat is licensed under the GNU General Public License. The first public version of TorChat was released in November 2007 by Bernd Kreuß and has since then been constantly developed further. It is written in Python and uses the cross platform GUI toolkit wxPython which makes it possible to support a wide range of platforms and operating systems. At the moment there are stable versions available for Microsoft Windows and Linux.
The windows version of TorChat is built with py2exe and comes bundled with a copy of the Tor onion router readily configured so that it can be run as a portable application right off an USB flash drive without any installation, configuration or account creation.