> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rixxui.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Trusted data

> Keep host and tool data out of generated source and expose it through read-only binding channels.

Pass application data separately from model-generated source. This avoids
serializing sensitive or large tool results into the language channel and lets
the host update values without regenerating UI.

```tsx theme={null}
const source = `root = Metric(label="Open incidents", value=$data.openCount)`;

<RUIRenderer data={{ openCount: incidents.length }}>{source}</RUIRenderer>;
```

## Binding roots

| Root       | Host input                                   |
| ---------- | -------------------------------------------- |
| `$data`    | Read-only committed application or tool data |
| `$context` | Read-only rendering context                  |
| `$draft`   | Read-only host-provided draft values         |
| `$item`    | Current item inside an `Each` template       |

Bindings are values, not expressions. The allowlisted pure functions can
compare, compose booleans, select fallbacks, count or sum values, format values,
and choose responsive values; they cannot perform I/O or mutate state.

<Warning>
  "Trusted data" means the host controls the channel, not that every value is
  safe for every operation. Validate server/tool data before use, minimize
  sensitive fields, and never turn bound strings into HTML, code, URLs, or
  authorization decisions without the relevant policy check.
</Warning>

Host inputs may change while source remains stable. Rixx UI reevaluates bindings
against the new input without asking a model to regenerate the component graph.
