Functionality §
- Accounts can be created in a permission-less way, to communicate on the network.
- Accounts can send messages to conversations with one other participant.
- All conversations benefit from forward secrecy and post-compromise security.
- Sender gets confirmation of message reception by recipient device.
- Developers can create their own payload types or use supplied basic types.
- Sdk contains a default message database for developers.
- Sdk contains a default secrets database for developers.
Usability §
- Secure session setups are non-interactive, allowing messages to be sent without waiting for the recipient’s device to come online.
- Conversations are initiated by sharing invite links out-of-band.
- Minimal example of the ChatSDK is no more than 25 lines of code.
Reliability §
- Participants in a conversation can eventually determine whether they missed messages.
- 10K active SDK users on a single shard add no more than an average of 10Mbps to the total bandwidth; based on clients generating 100 character chat messages, 4 times per minute.
Supportability §
- Messaging integrates RLN-like rate limit, limiting outbound messages per epoch.
- Payload definitions are versioned to support future protocol updates.
- library can be used in Go applications; available on pkg.go.dev.
- library can be used in Rust applications; import via git path.
+ (Privacy, Anonymity, Deployments) §
- Non-participants in the conversation cannot correlate individual messages to a sender.
- Non-participants in the conversation cannot correlate conversation to participants.
- Network observers cannot aggregate account holder activity.
- Nimble package manager is used to build.