# Channels

## Overview

Messages between participating gateways are structured and organized in distinct channels corresponding to specific use cases or business processes.

Channels are created and managed in the Client Gateway by Admin Users, and defined by the following properties:

* `Format`: Messaging (individual messages with payload structured as JSON objects) or File Transfer (bulk data transfer via .csv or .xml files)
* `Type`: Publish (send) or Subscribe (receive)
* `Namespace`: A unique, non-numeric name to identify the channel
* `Settings`: The following settings can be enable/disabled when creating a channel:
  * `Use Anonymous Channel`: Anonymizes the identities of recipients (for Publish channels) or senders (for Subscribe channels)
  * `Payload Encryption`: Encrypts the payload of messages using the public key of the Sender's client gateway and private key of the recipient's gateway.
  * `Form Builder`: Provides a dynamic form based on the topic schema for users to manually send messages in the gateway UI.
* `Restrictions`: A list of specific identities or roles who are authorized to receive messages (for Publish channels) or send messages (for Subscribe channels); restrictions can be defined by specific identities, or by role.
* `Topics`: One or more standardized data schemas.

In order to access certain channels and gain permissions to send and/or receive specific message types, participants must [acquire roles](https://docs-launchpad.energyweb.org/energy-solutions/digital-spine-by-energy-web/component-guides/self-sovereign-identities/technical-guide/roles-and-iam) that reflect their role within the market (or use case), using credentials attached to their self-sovereign identity. Credentials are granted by a platform governing body and determine the ability to send messages to other participants using channels (what messages are sent and received) and topics (data schemas that define the payload of a message).

***

## User Guide

### Pre-requisites

* Authorization to Client Gateway

### Create a Channel

1. Navigate to `Channel Management` and click `Create`

<figure><img src="https://4257445316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fnf3YeoQlQerc93GsC2Me%2Fuploads%2FyPAn1aorgn7CtRSexlsl%2FScreenshot%202025-05-07%20at%203.14.48%E2%80%AFPM.png?alt=media&#x26;token=e1279e5d-b164-43a6-94ca-9babb377632b" alt=""><figcaption><p>Channel management</p></figcaption></figure>

2. Fill up the new channel details and click `Next`&#x20;

{% hint style="success" %}
For `Messaging`,  you can utilize the dynamic message form by enabling `Enable Message Form` option
{% endhint %}

<figure><img src="https://4257445316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fnf3YeoQlQerc93GsC2Me%2Fuploads%2FsKjuka2CmxQu0uua4EGP%2FScreenshot%202025-05-07%20at%204.25.06%E2%80%AFPM.png?alt=media&#x26;token=b4045c8a-eb01-4c8e-a0fe-752cc82858aa" alt=""><figcaption><p>Channel details</p></figcaption></figure>

2. Add channel restrictions. DIDs can be entered manually or chosen from address book contacts. You can also define which roles are permitted to access the new channel. Click `Save` after adding each new DID or role to update the restriction list

<figure><img src="https://4257445316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fnf3YeoQlQerc93GsC2Me%2Fuploads%2FdvJGVmpkd41JZ8CdSxf6%2FScreenshot%202025-05-07%20at%204.55.15%E2%80%AFPM.png?alt=media&#x26;token=b6636e9d-f15b-4359-80b1-a14ccfeeca0d" alt=""><figcaption><p>Add channel restriction</p></figcaption></figure>

3. Review the restriction list. Use the action buttons located at the end of each restriction to update or remove it. Click `Next` to proceed to the next step

<figure><img src="https://4257445316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fnf3YeoQlQerc93GsC2Me%2Fuploads%2Fd3Au7Pp2T2XOWVIMtmV0%2FScreenshot%202025-05-07%20at%204.56.56%E2%80%AFPM.png?alt=media&#x26;token=279d5d4b-d817-421f-8bd6-838618814883" alt=""><figcaption><p>Restriction list</p></figcaption></figure>

4. Add topics by using the `Select Application` and `Select Topic` dropdowns. Review the list of added topics, then use the action buttons to select response topics, edit or remove topic, or expand section to view the added response topics. Click `Next` to proceed to the last step

<figure><img src="https://4257445316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fnf3YeoQlQerc93GsC2Me%2Fuploads%2FZwHoep8vxIa3X9ga4p5j%2FScreenshot%202025-05-07%20at%205.06.21%E2%80%AFPM.png?alt=media&#x26;token=ecb871cc-6d97-4dc4-9032-6ed774f85f9b" alt=""><figcaption><p>Add topics</p></figcaption></figure>

5. Review the channel details. Switch to `Topics` tab to see the topic list. Click `Back` to edit any of the details or `Submit` to create channel

<figure><img src="https://4257445316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fnf3YeoQlQerc93GsC2Me%2Fuploads%2FU48sXhtuJpcaxUKmc1ZA%2FScreenshot%202025-05-07%20at%205.08.14%E2%80%AFPM.png?alt=media&#x26;token=187b388c-5092-4fb2-890e-d8ff01a2f96a" alt=""><figcaption><p>Review channel details</p></figcaption></figure>

6. Success message will be shown, click `Dismiss` to close modal and view the channel list

<figure><img src="https://4257445316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fnf3YeoQlQerc93GsC2Me%2Fuploads%2FFZwbrF0fSwtCMmxnrlcO%2FScreenshot%202025-05-07%20at%205.11.01%E2%80%AFPM.png?alt=media&#x26;token=d037a05f-c191-47b6-9a60-5d8aa164d6f9" alt="" width="375"><figcaption><p>Successfully created channel</p></figcaption></figure>

### Modify a Channel

1. Search for the channel that you would like to modify. Click on the `︙` button at the end of the record row and choose `Update`&#x20;

<figure><img src="https://4257445316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fnf3YeoQlQerc93GsC2Me%2Fuploads%2FB0RvWpeXUvkG868R4XRm%2FScreenshot%202025-05-07%20at%205.12.36%E2%80%AFPM.png?alt=media&#x26;token=72213db1-5bb4-46ce-bcf2-fb69829ae8c6" alt=""><figcaption><p>Update channel action</p></figcaption></figure>

2. Add or update restrictions and click `Next` to go to the next step

<figure><img src="https://4257445316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fnf3YeoQlQerc93GsC2Me%2Fuploads%2FzCEz96e40HGNeFiV40fj%2FScreenshot%202025-05-07%20at%205.19.25%E2%80%AFPM.png?alt=media&#x26;token=c77094c5-39d0-4db7-a314-eb602d2de3d6" alt=""><figcaption><p>Update restrictions</p></figcaption></figure>

3. Add or update topics and then click `Save` to update channel

<figure><img src="https://4257445316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fnf3YeoQlQerc93GsC2Me%2Fuploads%2F2mRwYFyMXvtLOXWs8Rc8%2FScreenshot%202025-05-07%20at%205.22.08%E2%80%AFPM.png?alt=media&#x26;token=e95614b3-cb7d-474a-9526-06b0d853239e" alt=""><figcaption><p>Update topics</p></figcaption></figure>

4. Success message will be shown, click `Dismiss` to close modal and view the channel list

<figure><img src="https://4257445316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fnf3YeoQlQerc93GsC2Me%2Fuploads%2FryFqmGWh2cBXzl3NlI5K%2FScreenshot%202025-05-07%20at%205.24.14%E2%80%AFPM.png?alt=media&#x26;token=aea47ebd-14c4-4083-b06c-b5817c16554a" alt="" width="375"><figcaption><p>Successfully updated channel</p></figcaption></figure>

### Remove a Channel

1. Search for the channel that you would like to remove. Click on the `︙` button at the end of the record row and choose `Remove`&#x20;

<figure><img src="https://4257445316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fnf3YeoQlQerc93GsC2Me%2Fuploads%2FQnWMOSn61JjIb37324mo%2FScreenshot%202025-05-07%20at%205.25.44%E2%80%AFPM.png?alt=media&#x26;token=e0ce0009-5b11-490e-8918-f41273f54c2c" alt=""><figcaption><p>Remove channel action</p></figcaption></figure>

2. A confirmation modal will appear, click `Confirm` to remove the channel or `Cancel`&#x20;

<figure><img src="https://4257445316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fnf3YeoQlQerc93GsC2Me%2Fuploads%2FcvGTCRBNtPqH59k8aZEM%2Fimage.png?alt=media&#x26;token=4196ce6d-7daf-47cb-9b6f-921c953dd549" alt="" width="375"><figcaption><p>Delete channel confirmation</p></figcaption></figure>

3. Success message will be shown, click `Dismiss` to close modal and view the channel list

<figure><img src="https://4257445316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fnf3YeoQlQerc93GsC2Me%2Fuploads%2FCRk9E2PXDHAMQJzs80Wz%2Fimage.png?alt=media&#x26;token=a034ff83-fa38-48c3-b60e-304f9d4fe339" alt="" width="375"><figcaption><p>Successfully deleted channel</p></figcaption></figure>
