WebSocket Protobuf is the realtime companion for typed ConnectRPC and SDK integrations. It uses binary Protobuf payloads over WebSocket while ConnectRPC continues to handle request-response calls.
When to use Protobuf channels
Choose WebSocket Protobuf when:
- you use an official SDK realtime client
- your application already uses generated Protobuf message types
- compact typed payloads matter more than direct inspection
- the required stream is available only as Protobuf
Encoding support is channel-specific. A Protobuf channel does not guarantee an equivalent JSON
channel. The realtime stream reference lists every channel with its
parameters, encodings, and message type. Protobuf channel names end in :proto.
These streams are published only as Protobuf: API key updates, API policy updates, address book invalidations, Subaccount policy updates, Subaccount updates, spot trigger updates, and public identity updates.
Channel implementation
Choose a Protobuf channel
Use the official SDK product method or identify the exact channel and published message type for a custom client.
Decode with generated types
Decode each binary publication with the message type assigned to that channel. Apply the integer and identifier conventions defined by the field contract.
Event channels publish a batch message. Its field 1, events, repeats the event message in order:
| Stream | Batch message |
|---|---|
| Market trades | marketdata.v1.MarketTradeBatch |
| User trade executions | orders.v1.UserTradeBatch |
| Ledger transfers | ledger.read.v1.TransferRowBatch |
| Trigger events | triggers.v1.TriggerEventBatch |
Apply the event stream rules.