All communication using the mig33 protocol occurs between client and server. There is no peer to peer communication (at least not with the chat/instant message protocol).
Before any communication can occur between multiple clients, a client must login to the server. The login process takes place as a 3 way challenge - response system. The client first sends information about itself to the server, including its username. The server then sends a challenge asking the client to respond with a hashcode of the clients password concatenated with a randomly generated string from the server. If the client responds successfully, the login process suceeds and the client can officially start chatting.
After logging in the client will have the option of sending private messages, joining chat rooms, and interacting with groups of users as well as individual users. Like IRC channels, mig33 chat rooms offer the ability for users to kick other users. Unlike IRC, it takes a majority of votes to kick a user out of a chat room. Individual clients can be ignored and blocked. A client can also set its "visibility" to other clients.
The mig33 server can be reached by connecting to gateway.mig33.com. The server listens for mig33 data on ports 25, 80, and 9119. In the case of port 80, the mig33 protocol is "embedded" inside HTTP. It is recommended that mobile users avoid using port 80, due to the higher data usage.
Please note that throughout this document, all numbers are in hexadecimal unless stated otherwise. Integers consisting of more than one byte are stored with the most significant byte first, and the least significant byte last. This is often referred to big endian, network byte order. All text strings are preceded by a four byte long TEXT_LEN field, indicating the length of the string.