What You Can Build
ChainRender scales from a single element to a full multi-view application. Understanding the levels helps you pick the right starting point. They're the same primitives at different scales — a bigger thing is a composition of smaller things.
1. Components
The atom. A single, self-contained UI element rendered from the vocabulary — a button, a card, a chart, an identity badge, a piece of generative art. A component:
- compiles to a content-addressed hash,
- renders from a free
eth_call, - can bind live on-chain data and declare a safe action,
- carries its own trust grade.
Build a component when you want one on-chain UI element — e.g. an on-chain tokenURI image, a live price
badge, a claim button — that you can drop into an existing site or embed anywhere.
2. Mini-apps
A composition of components with its own identity. A mini-app is content-addressed, forkable (it records its parent on-chain), and has an aggregated capability envelope and grade. It's a self-contained, composable unit — the natural size for a focused tool (a swap widget, a governance vote card, a credential check).
Build a mini-app when you want a small, complete, shareable app that others can discover, use, and fork — and that composes into larger apps.
3. Standalone (multi-view) apps
A full application with multiple views and in-app navigation (tabs, wizard, master-detail, modal). A standalone app has a shell, several views, on-chain-enforced reachability (no stranded views), and a unified envelope across everything. This is a complete dApp frontend — canonical, un-spoofable, permanent.
Build a standalone app when you want a real product frontend — the flagship swap app (Quote / Venues / Route tabs) is exactly this shape.
4. Distributed forms
Any of the above can also be shipped as:
- a Farcaster Mini App (via the miniapp adapter),
- an on-chain NFT (
tokenURIreturns a ChainRender component), - an embedded widget (render the HTML into any page),
- a web3:// served resource (ERC-5219/4804).
The app doesn't change to take these forms — it's the same on-chain component with a distribution wrapper.
How to choose
| You want… | Build a… | Start with |
|---|---|---|
| One on-chain UI element | Component | create-chainrender → Single component (T1) |
| A focused, shareable tool | Mini-app | create-chainrender → Mini-app (T2) |
| A full product frontend | Standalone app | create-chainrender → DeFi app (T3) |
| Farcaster distribution | any of the above + adapter | create-chainrender → Farcaster Mini App |
Everything composes: components → mini-apps → standalone apps. Start small, grow by composition — you never outgrow the model.
Related
DeFi dashboards & apps
A fully on-chain DeFi frontend: render a user's LP and lending positions (including health factor / liquidation
risk), live prices, pre-trade quotes, and portfolio totals — then let them swap, approve, deposit, or claim via
decoded actions. Rendering is a free view; only signing an action costs gas. See
DeFi Capabilities for the complete guide.
Apps with payments (incl. non-native users)
Add a payment to any app with the crypto payment as the trustless floor and an optional card/fiat on-ramp as an honestly-graded off-chain enhancement — so users without crypto can still pay by card while the on-chain guarantee is never overstated. Combined with an embedded-wallet SDK (email login → invisible wallet) and a paymaster (sponsored gas), non-native users can onboard end to end. See Payments.
RWA (real-world asset) dashboards
A fully on-chain frontend for tokenized real-world assets: render Proof-of-Reserve coverage (reserves vs. supply), ERC-3643 (T-REX) compliance state (verified / frozen / can-transfer), and issuer-bound credential lifecycle (valid / expired / revoked) — each honestly graded, and compliance shown, never enforced by ChainRender. The reserve read is Grade A; a compliance verdict is a faithful render of a mutable authority (≤ C), labeled as such. See RWA Capabilities.
Reputation & social apps
Render an address's on-chain reputation: its EFP social graph (does this list follow / tag / block / mute a target —
forward reads, Grade A), delegated vouches under a caller-chosen topic (rep-vouch / a transparent k-of-n
rep-tally), and a cross-source aggregate (rep-aggregate) whose grade is capped at its weakest input. ChainRender
reads and renders reputation — it never mints a score, ranks addresses, or blesses an attester. Follower counts and
reverse lookups are off-chain (indexer) and graded ≤ C, never presented as an on-chain fact. See
Reputation Capabilities.
Identity & profile apps
Build an identity UI over live on-chain sources: ENS profiles (forward-verified reverse resolution, records, ENS-v2),
EAS attestations, ZK selective-disclosure credentials (member-of-set, bound single-use), and ERC-725Y / ERC-735
account claim reads (the standard behind LUKSO Universal Profiles) via staticread today — read against a
co-located account (same chain the resolver is deployed on); a typed reader is planned. LUKSO's own chain is not
integrated as of now — a live LUKSO Universal Profile would require ChainRender deployed on LUKSO; today's reach is
same-chain ERC-725Y/735 accounts. Owned/mutable identity sources render as "the current claim of authority Y" (≤ C),
never as proof — the honest boundary throughout. See
Reputation Capabilities and
Privacy & Credentials.