Skip to main content
Connection to a broker is done over WebSockets. Connection URL format is as follows:
  • wss - indicates that the connection is secure
  • hostname - the hostname of the broker
  • port - the port number of the broker
  • protocol - the protocol version of the broker
Once the connection is established, the client must send a sequence of messages to the broker to authenticate itself. Once the broker has verified the client's identity, the client can start sending and receiving messages.
This process is demonstrated in the following diagram:
  actor Worker
  par Connection Initiation
    Worker->>+Broker: Hello
    Broker->>-Worker: KOSK Challenge
    activate Worker
    Worker->>Broker: KOSK Response
    deactivate Worker
    Consumer->>+Broker: Hello
    Broker->>-Consumer: KOSK Challenge
    activate Consumer
    Consumer->>Broker: KOSK Response
    deactivate Consumer
    Consumer->>Broker: Subscribe
  loop Send Verified Data
      Worker-->>Consumer: Send Data Through Broker

Unchained Connection Initiation Sequence

The Hello message structure is as follows:
type Signer struct {
  Name           string
  EvmWallet      string
  PublicKey      [96]byte
  ShortPublicKey [48]byte
type Challenge struct {
  Passed    bool
  Random    [128]byte
  Signature [48]byte