pm/FURPS/application/chat_sdk.md
2025-06-10 22:00:17 +10:00

1.6 KiB

Chat SDK

Functionality

  1. Accounts can be created in a permissionless way, to communicate on the network.
  2. Accounts can send messages to conversations with one other participant.
  3. All conversations benefit from forward secrecy and post-compromise security.
  4. Sender gets confirmation of message reception by recipient device.
  5. Developers can create their own payload types or use supplied basic types.
  6. Sdk contains a default message database for developers.
  7. Sdk contains a default secrets database for developers.

Usability

  1. Secure session setups are non-interactive, allowing messages to be sent without waiting for the recipient's device to come online.
  2. Conversations are initiated by sharing invite links out-of-band.
  3. Minimal example of the ChatSDK is no more than 25 lines of code.

Reliability

  1. Participants in a conversation can eventually determine whether they missed messages.

Performance

  1. 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

  1. Messaging integrates RLN-like rate limit, limiting outbound messages per epoch.
  2. Payload definitions are versioned to support future protocol updates.
  3. library can be used in Go applications
  4. library can be used in Rust applications

+Privacy

  1. Non-participants in the conversation cannot correlate individual messages to a sender.
  2. Non-participants in the conversation cannot correlate conversation to participants.
  3. Network observers cannot aggregate account holder activity.