All communications are contained in XML documents. Each document is inserted into an indexed SSK/KSK depending on the nature of the communications. By polling for these indexed communications, other clients can take action based on the type of communcations and the data it contains.


Each identity has a public/private SSK pair. The public key is used for all identification of that particular identity. Persons who wish to remain anonymous can simply create a new identity SSK for every message they want to send. Other users can learn about identities through someone they already trust, or through an IdentityIntroduction. See the IdentityIntroduction section for the format of such a message.


Messages are inserted into the sending identity's private SSK. Because of the nature of SSKs, clients can be sure that the message was indeed inserted by the owner of the SSK. Clients can gain knowledge of new messages by polling each trusted identity's public SSK individually. See the MessageList, and Message section for the formats of such messages.


Boards are synonymous with Usenet newsgroups. Messages can be posted to one or more boards. Users can gain knowledge of new boards by a list posted through a trusted identity. See the BoardList section for the format of such a message.


Trust is a very important part of the system. Each identity will have 2 trust levels and 2 values will be saved per level. The 2 trust levels are the trust in an identities messages (they won't post spam), and the trust in their opinion (I want to see the trust level they assigned to other identities). Each of these will have 2 values. One value is set by the the user and can only be changed by him. The second value is calculated from those identities whom you trust the opinion of.

Finding Identities

Identities can be found in 2 ways. The first way is from a successful IdentityAnnounce message. The second way is to find new identities in a TrustList that the client download from an identity. Initially the client won't have knowledge of any other identities, so the user will have to manually enter an identity in the client, or have the client pre-seeded with some existing identities.

Finding Messages

Messages can be found in 2 ways. The first way is to poll each identity for a MessageList. The second way is to poll each identity for each individual message, but this is not recommended. Once a message is determined to exist in a MessageList, it can be downloaded from the identity without the need to poll.

Posting Messages

When an identity posts a new message, the message is inserted into the appropriate location in its SSK. A MessageList is also inserted, which lists recent messages posted by this identity and relays recent message indexes from other identities.