Channels
A channel is the top-level scoping unit in CRE Connect. Every other resource, including watchers, wallets, operations, queries, and events, lives inside exactly one channel. Channels give you:
- Isolation. Two unrelated business flows, for example a regulated-fund subscription pipeline and a treasury operations pipeline, run side-by-side without sharing event streams or watcher state.
- A single, ordered event stream. All events produced inside a channel, including watcher events, operation status updates, wallet status updates, watcher status updates, and query status updates, arrive through one paginated API and one SDK polling loop.
- A simple lifecycle. A channel is either
activeorarchived. Archiving a channel disables it for future writes; the immutable event history remains queryable.
When to create a separate channel
Use a separate channel whenever you want a separate audit trail, a separate set of subscribers, or a separate set of watchers. Common patterns:
- One channel per environment: a
stagingchannel for testnets and aproductionchannel for mainnets. - One channel per business line: a
dta-fund-Achannel for one tokenized fund and adta-fund-Bchannel for another. - One channel per integration: useful when integrating CRE Connect into multiple downstream services that should not see each other's events.
There is no hard limit on the number of channels per tenant; create as many as your operational model needs.
What lives in a channel
Each channel owns:
- A set of Watchers that monitor on-chain contracts (see Watchers).
- A set of Wallets (Smart Accounts) authorized to execute operations (see Smart Accounts).
- A set of Chain Queries: one-shot, DON-backed blockchain reads (see Chain Queries).
- An ordered, immutable stream of Events in five shapes:
watcher.event,watcher.status,wallet.status,operation.status, andquery.status. Each carries an Off-Chain Reporting (OCR) proof for verification. - A history of submitted Operations and their lifecycle transitions.
Channel lifecycle
Channels move through two states only:
State | Meaning | Allowed actions |
|---|---|---|
active | The channel can accept new watchers, wallets, and operations. | Create / Update watchers, create wallets, submit operations, poll events. |
archived | The channel is read-only. | Get channel, poll historical events. |
A channel cannot be archived while it has active watchers. Archive every watcher in the channel first (see Manage Watcher Lifecycle).
Channel fields
When you create a channel via the SDK or REST API, you provide:
| Field | Required | Constraints |
|---|---|---|
name | Yes | 1–255 characters. Must be unique within your tenant. |
description | No | Free-form text describing the channel's purpose. |
The server returns a UUID id that you use everywhere downstream, when creating watchers, wallets, and operations.
Listing and filtering
When listing channels, you can filter by name (partial match) and status, and paginate through the results. The SDK's channels.ListInput exposes Limit (1–50, default 20) and Offset parameters; see Create and Manage Channels for examples.
Related
- Create and Manage Channels: the SDK and REST workflow.
- Watchers and Smart Accounts: the resources that live inside a channel.
- Poll and Search Events: how the channel-scoped event stream is consumed.