# Protocol

### Protocol Overview

The **Chroom protocol** is a decentralized Real Time Communication Network operating an algorithmic prosumer marketplace for real-time data, powered by a blockchain and a native protocol token

* **Clients** – representing the demand side – spend tokens to acquire **Chroom** data to power meetings, audio spaces, and other applications requiring real-time data.
* **Media Nodes** – representing the supply side – earn tokens by enabling low-latency real-time data to provision the Clients.

The **Chroom Network** utilizes **Proof of Resource** to ensure fair compensation for Media Nodes and enforce performance standards by tracking and rewarding nodes based on on-chain Quality of Service data, incentivizing high up-time and optimal service quality from node operators.

The network functions as a **multisided algorithmic marketplace**:

* **Supply:** Media Nodes providing network resources (bandwidth, compute).
* **Demand:** Consumer and industrial applications built on the **Chroom Network**.
*

### Chroom Protocol Sketch

<table data-full-width="false"><thead><tr><th>Network</th><th>Media Node</th><th data-hidden></th></tr></thead><tbody><tr><td><p></p><ol><li><p>At request by registry (Smart Con- tracts):                                                          (a) The Rewards Contract queries the Proof of resource Contract for node data</p><p>(b) Rewards for each Media Node are calculated</p><p>(c) The Rewards Contract requests token release from the Reserve Contract</p><p>(d) Tokens are transferred to each Media Node’s pool Contract</p><p>(e) The Pool Contract distributes rewards per its rules</p></li></ol><p></p><p></p></td><td><p></p><ol><li>Listen for requests from Orches- trator</li><li>Process RTC workloads</li><li>Perform QoS Tests on request from Registry Nodes</li></ol><p>at each epoch t: </p><ol><li>For each Client C, Report RTC Usage</li><li>Claim Rewards Earned for giving RTC Usage</li></ol></td><td></td></tr></tbody></table>

<table data-full-width="false"><thead><tr><th>Network</th><th>Orchestrator</th><th data-hidden></th></tr></thead><tbody><tr><td><p></p><p>at any time: at any time:</p><ol><li>Perform QoS Tests on Media Nodes and collect analytics</li><li>Request for Media Nodes from Registry:</li><li>Listen for Media Nodes entry re- quests to the network (a) query Media Nodes from reg- istry based on</li><li>Gossip New Media node entries to the network input parameters</li><li>Verify Media Nodes are Alive 2. Allocate and Balance RTC Work- load on Media Nodes</li><li>Serve latest Media Node entries and metadata to clients</li></ol></td><td><p></p><ol><li>Listen for requests from Orches- trator</li><li>Process RTC workloads</li><li>Perform QoS Tests on request from Registry Nodes</li></ol><p>at each epoch t: </p><ol><li>For each Client C, Report RTC Usage</li><li>Claim Rewards Earned for giving RTC Usage</li></ol></td><td></td></tr></tbody></table>

### Protocol Diagram

<figure><img src="https://3387635455-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0PD5WqPALIYkbBQOSnqh%2Fuploads%2F8vSRXhW4zMuLRsJy8mUH%2Fimage.png?alt=media&#x26;token=fb45219d-5665-4476-a67b-7d1c26e5c049" alt=""><figcaption></figcaption></figure>
