The first thing a user must do is to authenticate using your username and password. You must first munge your clear text password (see MungedPassword()). This allows you to preserve the password for later use without storing it as clear text.
CheckForResponse() allows you to check the status of your authentication. A response of "true" indicates a successful auth. Exceptions can also be thrown to indicate the errors.
Next, you then request a list of friends via RequestBuddyList(), followed by AnnounceInSim(), which causes you to appear "online."
At this point, you can SendInstantMessage() to a friend, by first looking up their UUID via LookupId(). If you know the UUID of the non-friend avatar, you can offer friendship via OfferFriendship(). When sent an offer, you can either AcceptFriendship() or DeclineFriendship(). There are also signals that you receive when you are offered friendship, or an offer is accepted or declined.
You can listen to various callbacks. See the individual documentation for each callback to understand what it does.