| Name | Description | Variable Arguments |
| SILC_NOTIFY_TYPE_NONE | A message from server that usually does not include any critical information. Application may ignore this or display it for the user. The 'message' argument may be NULL. | char *message |
| SILC_NOTIFY_TYPE_INVITE | Sent to the client if the user is invited on a channel. The 'channel_name' argument may be NULL. | SilcClientChannel channel, char *channel_name, SilcClientEntry inviter |
| SILC_NOTIFY_TYPE_JOIN | Sent when someone joins to a channel. | SilcClientEntry joining_client, SilcChannelEntry channel |
| SILC_NOTIFY_TYPE_LEAVE | Sent when someone leaves (parts) the channel. | SilcClientEntry leaving_client, SilcChannelEntry channel |
| SILC_NOTIFY_TYPE_SIGNOFF | Sent when someone signoff the SILC network. The 'signoff_message' may be NULL. The 'leaving_client' SilcClientEntry may be incomplete and contain NULL pointers, application must check it's pointers before attempting to display for example nickname information. | SilcClientEntry signoff_client, char *signoff_message |
| SILC_NOTIFY_TYPE_TOPIC_SET | Sent when the topic of a channel is set/changed. The 'setter_id_type' is used to check what type of pointer the 'setter_entry' is. For SILC_ID_CLIENT SilcClientEntry, for SILC_ID_SERVER SilcServerEntry and for SILC_ID_CHANNEL SilcChannelEntry. | SilcIdType setter_id_type, void *setter_entry, char *topic, SilcChannelEntry channel |
| SILC_NOTIFY_TYPE_NICK_CHANGE | Sent when someone changes their nickname. The 'old_client_entry' includes the old nickname and the 'new_client_entry' includes the new nickname. Application must understand that the 'old_client_entry' pointer becomes invalid after returning from the function. Note that this notify is not delivered when user changes its own nickname. | SilcClientEntry old_client_entry, SilcClientEntry new_client_entry |
| SILC_NOTIFY_TYPE_CMODE_CHANGE | Sent when channel's mode has changed. The 'changer_id_type' is used to check what type of pointer the 'changer_entry' is. For SILC_ID_CLIENT SilcClientEntry, for SILC_ID_SERVER SilcServerEntry and for SILC_ID_CHANNEL SilcChannelEntry. The 'mode' is the mode mask after the change. The `cipher_name' is the cipher set for the channel. The `hmac_name' is the HMAC set for the channel. The `passphrase' is the passphrase that was set for the channel. The `founder_key' is the founder's public key when it was set for the channel. The `channel_pubkeys' is an Argument List Payload where each argument is Public Key Payload containing one channel public key. The arguments 'cipher_name', 'hmac_name', 'passphrase', 'founder_key' and 'channel_pubkeys' may be NULL. | SilcIdType changer_id_type, void *changer_entry, SilcUInt32 mode, char *cipher_name, char *hmac_name, char *passphrase, SilcPublicKey founder_key, SilcBuffer channel_pubkeys, SilcChannelEntry channel |
| SILC_NOTIFY_TYPE_CUMODE_CHANGE | Sent when a users mode on a channel has changed. The 'changer_id_type' is used to check what type of pointer the 'changer_entry' is. For SILC_ID_CLIENT SilcClientEntry, for SILC_ID_SERVER SilcServerEntry and for SILC_ID_CHANNEL SilcChannelEntry. The 'mode' is the mode mask after the change. The 'target_client' is the client whose mode was changed. | SilcIdType changer_id_type, void *changer_entry, SilcUInt32 mode, SilcClientEntry target_client, SilcChannelEntry channel |
| SILC_NOTIFY_TYPE_MOTD | Message of the Day from the server. | char *motd |
| SILC_NOTIFY_TYPE_CHANNEL_CHANGE | Sent when a channel's Channel ID changes. It is possible that channel's ID changes and this notify is sent by the server when this happens. Usually application does not need to handle this notify type and may safely ignore it when received. | SilcChannelEntry channel |
| SILC_NOTIFY_TYPE_SERVER_SIGNOFF | Sent when a server quits the network. The 'clients' is an array SilcClientEntry pointers of size of 'clients_count'. Each client in the entry is one client signing off from the SILC network. | NULL, SilcClientEntry *clients, SilcUInt32 clients_count |
| SILC_NOTIFY_TYPE_KICKED | Sent when a client (possibly our client) is kicked from a channel. The 'kick_message' may be NULL. If our client was kicked then 'kicked' is our local SilcClientEntry pointer. | SilcClientEntry kicked, char *kick_message, SilcClientEntry kicker, SilcChannelEntry channel |
| SILC_NOTIFY_TYPE_KILLED | Sent when a client (possibly our client) is killed from the network. The 'kill_message' may be NULL. If our client was killed then 'killed' is our local SilcClientEntry pointer. The 'killer_type' is used to check what type of pointer the 'killer' is. For SILC_ID_CLIENT SilcClientEntry, for SILC_ID_SERVER SilcServerEntry and for SILC_ID_CHANNEL SilcChannelEntry. | SilcClientEntry killed, char *kill_message, SilcIdType killer_type, void *killer, SilcChannelEntry channel |
| SILC_NOTIFY_TYPE_ERROR | Sent when an error occurs while handling some operation (except command) from the client. Application usually cannot handle this notify type and may safely ignore it. | SilcStatus error |
| SILC_NOTIFY_TYPE_WATCH | Sent to notify some status change of a client we are wathing. The SILC_COMMAND_WATCH is used to manage clients we are wathing and this notify type is used to deliver information about that client. If the client just changed nickname the 'new_nickname' includes the new nickname. Otherwise this pointer is NULL. The 'user_mode' is the client's mode in the SILC network. The 'notification' contains the notify type that happened for the 'watched_client' (for example SILC_NOTIFY_TYPE_NICK_CHANGE if the client changed their nickname). | SilcClientEntry watched_client, char *new_nickname, SilcUInt32 user_mode, SilcNotifyType notification, SilcPublicKey public_key |