Client–Relay Core Objects
This directory describes objects shared by clients and relays for discovery, authentication, account state and profile management, and message transport. RelayDescriptor binds relay identity, endpoints, and protocol capabilities. Account and device objects establish account identity, device permissions, and profile state. Message objects carry end-to-end encrypted content and define the cryptographic construction of recipient and sender key boxes.
| Core objects | Authoritative definition |
|---|---|
RelayDescriptor, Peer ID, and relay endpoints |
Relay descriptor |
Account ID, device ID, DeviceCertificate, AccountDeviceState, AccountProfile |
Account profiles and device certificates |
MessageEnvelope, encryption components, recipient and sender key boxes |
Message envelopes and end-to-end encryption |
DirectMessage, DirectMessageReference, DeviceStateChanged |
Plaintext message objects |
MessageBody, attachment hash references |
Message body |
ContentReference and ContentEncryption |
External content references |