Overview
Welcome to Jabber, a mobile application for on-chain messaging available on Solana. Jabber is the first of this type of implementation on ANY blockchain.
Jabber can be used to send encrypted P2P messages and unencrypted group messages to .sol domain name owners.

Encryption

All messages are encrypted end to end (E2EE) using Diffie-Hellman, the encryption happens in your browser before sending the message on-chain. This means that all the data sent on-chain is always encrypted and only the receiver of the messages can decrypt the message.
All media sent via the messaging app are also encrypted using Diffie-Hellman, however, the media itself is not on-chain, it’s uploaded on IPFS and only the hash is sent via the on-chain messaging app, the flow is slightly different:
  • Encrypt media
  • Upload encrypted media on IPFS (IPFS returns a hash)
  • Send a message that contains the hash (also encrypted)
However, group messages remain unencrypted. Despite being technically possible, encrypted groups are not implemented yet. The reason for this is that encryption works differently with groups. Indeed, unlike DMs where only two people need to have the asymmetric keys to encrypt/decrypt a message, every group member needs to have the keys, therefore Diffie-Hellman key derivations do not work anymore. More complex encryption methods like the double Ratchet algorithm will be implemented in the future in order to make this possible.
This means members of the group chat have the ability to share the contents of the chat with external parties. This is a benefit for organizers who wish to hold an Ask Me Anything (AMA) on-chain.

On-Chain Messaging Costs

The only fees associated with the messaging service are transactional costs associated with processing any transaction over the blockchain.
Transactional costs start at approximately 0.0015 SOL. The total cost is determined by the total number of characters you use in your message.
Sending audio, images, or video by message is cheap because the contents are uploaded on IPFS and the hash is sent by message.
Below is a predictive table for estimating the cost of a message:
Message Length (Characters)
Transaction Fee (SOL)
100 characters
~0.002 SOL
200 characters
~0.0026 SOL
500 characters
~0.00469 SOL
1,000 characters
~0.0082 SOL
2,000 characters
~0.015 SOL