Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Channels

A Channel is an isolated trading venue on TxFlow. Multiple channels run on the same L1 — sharing its consensus, clearing, and risk engine — while each channel independently controls its own markets, fees, and authorized operators. This lets brands, partners, or front-ends operate isolated venues on shared infrastructure without standing up their own chain.

What a channel owns

A channel is identified by a numeric channel ID and defines:

PropertyMeaning
instrumentsthe markets that belong to the channel — an instrument joins a channel by referencing its channel ID
fee addressthe address that collects the channel's trading fees
authorized deployersaddresses allowed to list and manage the channel's instruments
authorized oracle feedersaddresses allowed to push prices for the channel's instruments

Instruments with no channel (channel ID absent or 0) belong to the default platform channel.

Channel identifiers

Public requests and protocol records use exchangeId as the channel identifier. An exchangeId of 0 refers to the default platform channel; other values identify independently configured channels.

For outcome markets, an event is identified by (exchangeId, eventSlug). eventSlug is 1–256 bytes of ASCII letters, digits, -, _, ., or :. The same eventSlug may be used in different channels without joining their markets into one event. Each outcome market belongs to exactly one channel, while templates are registered globally and may be reused across channels.

What is shared vs. isolated

Channels are an organizational and permission boundary, not a separate execution environment. Everything below the venue layer is shared:

Shared across all channelsIsolated per channel
consensus & block orderinginstrument set
deterministic state machinefee collection address
margin, liquidation, and ADL logicauthorized deployers / oracle feeders
account model (one account, all channels)fee tiers & referral config
the block stream served to full nodes—

A user has a single TxFlow account; positions and balances are not partitioned by channel. A channel scopes which markets exist, who operates them, and where their fees go — not whose funds they are.

Permission scoping

Channel membership drives several governance permission checks:

  • Instrument deployment — listing or managing an instrument that belongs to a channel requires the signer to be one of that channel's authorized deployers. Without a channel (channel ID absent or 0), platform-level permission is required.
  • Oracle feeds — who may push prices is resolved in priority order: a price feeder pinned on the instrument → the channel's authorized oracle feeders → platform-level signers. When a higher level is configured, it takes precedence. See Oracle.
  • Fees — trading fees for a channel's instruments accrue to that channel's fee address, under its own fee-tier and referral configuration.

Querying by channel

Channel-scoped read queries — positions, open orders, fee tiers — accept a channel filter so an integrator can serve only its own venue's data. See the Info API.

Outcome event and metadata queries use exchangeId explicitly. Event-list and aggregate-metadata responses only include markets from the requested channel.