---
name: channel
kind: syntax
since: 0.1
stability: stable
---

Typed channel declaration (Fase 13 mobile channels).

```axon
channel Name {
  message:     PayloadType
  qos:         at_least_once
  lifetime:    affine
  persistence: ephemeral
  shield:      OptionalShield
}
```

Every channel pins four mandatory fields plus an optional
`shield` reference for capability extrusion. `qos` ∈
`{at_most_once, at_least_once, exactly_once}`. `lifetime` ∈
`{linear, affine, persistent}`. `persistence` ∈
`{ephemeral, persistent_axonstore}`.

Once declared, the channel is referenced by name from handler
bodies via `emit`, `listen`, `publish`, and `discover`. Type
mismatches between `message:` and `emit`/`listen` are
compile-time errors.
