# Channels
Source: https://docs.chain.link/crec/concepts/channels
Last Updated: 2026-08-31

> For the complete documentation index, see [llms.txt](/llms.txt).

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 `active` or `archived`. 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 `staging` channel for testnets and a `production` channel for mainnets.
- **One channel per business line**: a `dta-fund-A` channel for one tokenized fund and a `dta-fund-B` channel 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](/crec/concepts/watchers)).
- A set of **Wallets** (Smart Accounts) authorized to execute operations (see [Smart Accounts](/crec/concepts/smart-accounts)).
- A set of **Chain Queries**: one-shot, DON-backed blockchain reads (see [Chain Queries](/crec/concepts/queries)).
- An ordered, immutable stream of **Events** in five shapes: `watcher.event`, `watcher.status`, `wallet.status`, `operation.status`, and `query.status`. Each carries an Off-Chain Reporting (OCR) proof for [verification](/crec/concepts/event-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](/crec/guides/watchers/manage-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](/crec/guides/channels/manage-channels) for examples.

> **TIP: Channels and rate limits**
>
> A channel is also the unit at which event polling and search are scoped. A high-throughput watcher and a
> low-throughput watcher placed in the same channel will share the same polling loop on the client side. If the volume
> mix is very uneven, consider separating them into different channels so each can be polled at its own cadence.

## Related

- [Create and Manage Channels](/crec/guides/channels/manage-channels): the SDK and REST workflow.
- [Watchers](/crec/concepts/watchers) and [Smart Accounts](/crec/concepts/smart-accounts): the resources that live inside a channel.
- [Poll and Search Events](/crec/guides/events/poll-and-search): how the channel-scoped event stream is consumed.