# Feature Catalog

Everything ChainRender can do, at a glance. This is the complete feature surface — scan it to see what's available,
then follow the links for detail. Every item here is **built and fully on-chain** unless noted.

## Core

| Feature | What it does | Grade |
|---|---|---|
| Content-addressed apps | An app *is* its hash; immutable, verifiable, permanent | A |
| Free rendering | `renderHash` — a `view` call, no gas, reproducible on any RPC | A |
| Trust grade | Automatic A/B/C grade + itemized deviations, drift-locked to the chain | — |
| Capability enforcer | Refuses unsafe apps at registration (rails R1–R7) | — |
| The floor | Every app has a complete on-chain floor; enhancements fail closed to it | A |

## UI primitives (the vocabulary)

box · text · heading · button · link · icon · input · image · slot · ref — the closed set you compose from. Plus the
structured renderers below.

## Structured components

| Component | Renderer | Notes |
|---|---|---|
| **Charts** | `ChartRenderer` | line / area / bar / scatter / pie / donut; themed; self-correcting layout |
| **Tables** | `TableRenderer` | static / bound / paginated; structured cells |
| **Controls** | `ControlRenderer` | toggle / select / slider / search — bound to display params, never consequences |
| **Layout** | `LayoutRenderer` | stacks / grids / flow + responsive breakpoints |
| **Routes** | `RouteRenderer` | swap route diagrams, any topology (single/multi-hop/split) |
| **Source code** | `SourceRenderer` | render code on-chain, line-numbered, escaped |

## Navigation & composition

| Feature | What it does |
|---|---|
| Multi-view apps | tabs / wizard / master-detail / modal templates (see [App Templates](./templates.md)) |
| Mini-apps | content-addressed, composable app manifests |
| App DNA / forking | forks record their parent on-chain (verifiable lineage) |

## Data & actions

| Feature | Capability |
|---|---|
| Live data binding | on-chain reads via resolvers (READ_CHAIN) |
| Protocol integrations | Chainlink (price + live history chart), Uniswap V3/V4, Aave, Curve, ERC-20/721, ENS, EAS, Proof-of-Reserve, ERC-3643 — see [Data Sources](./data-sources.md) |
| Batched reads | multicall in one round-trip |
| Events | on-chain log reads |
| Declared actions | construct-for-sign; a button can only do what it declares (WRITE_CHAIN) |
| Batched actions | N actions, one signature, individually gated (BATCH_EXECUTE) |
| Typed signing | EIP-712 (SIGN_MESSAGE) · signature verification (ERC-1271/6492) |
| Value transfer | gated by an explicit VALUE declaration |

## Visual & media (all on-chain, Grade A)

Generative art · gradient identicons · high-fidelity vector art · SDF 2D/3D scenes (+ optional GPU enhancement) ·
point clouds · fully on-chain cartography · declarative SVG animation · post-processing effects (CRT/glass/…) ·
on-chain NFT media · media provenance · **p5.js & three.js rich media** (client-side, over an on-chain floor, with the library stored on-chain). See **[Visual & Media Capabilities](../concepts/visual-media.md)** and **[Rich Media: p5.js & three.js](../concepts/rich-media-p5-three.md)**.

## Identity, reputation & privacy

ENS profiles (live on-chain identity UI) · attested identity claims (EAS) · selective-disclosure credentials (ZK,
member-of-set) · bound single-use credentials · **EFP social graph** (forward follow/tag/block/mute reads, Grade A) ·
**delegated address vouching** (ownerless `rep-vouch`/`rep-tally`, ≤ C) · **cross-source reputation aggregate**
(`rep-aggregate`, grade = weakest source) · **ERC-725Y / ERC-735 account** claim reads (via `staticread`, same-chain, ≤ C — the standard behind LUKSO Universal Profiles; LUKSO's chain is not integrated).
Unified via a common privacy convention and the reputation resolver family. See
**[Reputation Capabilities](../concepts/reputation-capabilities.md)**.

## Presentation & theming

Design-token system (W3C-aligned) · light / dark / high-contrast presets · render-time theming (zero-gas) ·
whole-page zero-gas UX iteration · ThemeSets (theme registry) · series palettes · contrast + legibility invariants.
See **[Theming](../concepts/theming.md)** and **[Themes in Depth](./theming-in-depth.md)**.

## Naming, versioning & trust signals

Component annotations (ownerless append-only metadata) · Subnames under `chainrender.eth` (ownerless registrar + ENSIP-10 wildcard) · versioned names (append-only +
timelock) · advisories (alert) · attestations (vouch).

## Storage & serving

SSTORE2 content storage · paginated chunked reads (`IChunkedRender`) · web3:// serving (ERC-5219/4804).

## Developer tooling

`@chainrender/client` SDK (core + `/runtime` + `/react` + `/miniapp`) · `create-chainrender` scaffolder · **`@chainrender/mcp`** (AI builds apps via MCP tools) · **app-builder skill** ·
local grade/preview/validate before deploy · Farcaster Mini App distribution. Every integration is indexed for the
builder + AI in **[Integrations & Libraries](./integrations.md)**.

## Deployment

Register-once/render-free · multichain (portability, not bridging) · ownerless immutable contracts throughout.

---

**Legend:** Grade A = fully on-chain, trustless. A dependency that reaches off-chain (a declared `CLIENT_FETCH`)
lowers the grade and is disclosed — see **[The Trust Grade](../concepts/trust-grade.md)**.


## Recently added

- **On-chain icons** -- ~500 Lucide icons stored on-chain, used via the `icon` node, theme-adaptive. See [On-Chain Icons](../concepts/icons.md).
- **Apps directory** -- a header-linked page listing deployed apps (read on-chain from `SceneComponentRegistry`, self-updating) + first-party tools. See [The Apps Directory](../concepts/apps-directory.md).
- **Human-readable action decoding** -- a plain-English "you see what you sign" decode of any declared action, with a swap honesty flag. See [Actions & Signing](../concepts/actions.md).
- **Uniswap V4 price rendering** + generic hook/contract reads (`staticread`). See [Rendering Uniswap Hooks](../concepts/rendering-uniswap-hooks.md).
- **Optional project encryption** in the builder (opt-in, WebCrypto, no fake recovery). See [Privacy & Credentials](../concepts/privacy.md).
- **AI-assisted repair** -- when a generated sketch errors, a "Fix with AI" loop feeds the error back to the model.
- **Two-layer test harness** -- headless integration checks + a browser smoke test. See [Testing](../concepts/testing.md).

- **DeFi frontends (comprehensive)** — render market prices, a user's LP + lending positions (with health factor), pre-trade quotes, approval state, and portfolio totals; declare swaps/approves/deposits as decoded actions. Full guide: [DeFi Capabilities](../concepts/defi-capabilities.md).

- **Payments (crypto + optional card on-ramp)** — add a payment to any app: the crypto payment is a trustless on-chain action (Grade A), and an optional fiat/card on-ramp (your chosen provider) is honestly graded off-chain (≤ C). Non-native users get a card path without overstating the on-chain guarantee. See [Payments](../concepts/payments.md).

- **Reputation (EFP + delegated vouching + aggregate)** — render an address's on-chain social graph via EFP (forward follow/tag/block/mute, Grade A), delegated vouches under caller-chosen topics (`rep-vouch`/`rep-tally`, ≤ C), and a transparent cross-source aggregate whose grade is capped at the weakest source (`rep-aggregate`) — plus ERC-725Y / ERC-735 account claim reads (same-chain, ≤ C; the standard behind LUKSO Universal Profiles, though LUKSO's chain is not integrated). Read + render reputation, never mint a score. Full guide: [Reputation Capabilities](../concepts/reputation-capabilities.md).

- **RWA (real-world assets)** — render Proof-of-Reserve coverage (reserves ÷ supply, with freshness; `por-coverage`/`por-reserves`/`por-supply`, Grade A), ERC-3643 (T-REX) compliance state (verified/frozen/can-transfer; `erc3643-*`, display-only, ≤ C), and issuer-bound credential lifecycle (`cred-status`/`cred-valid`). Display compliance, never *become* the compliance authority. Full guide: [RWA Capabilities](../concepts/rwa-capabilities.md).
