⚠️ Alpha · testnets only. ChainRender is in active alpha and deployed on testnets only — Ethereum Sepolia, the Robinhood Chain Testnet, and the Circle Arc Testnet — not on any mainnet. Contracts, addresses, and APIs may change. Do not use with real funds or production assets.
Resources

Comparison to Alternatives

ChainRender Traditional dApp frontend IPFS-hosted frontend
UI location On-chain Centralized server IPFS (content-addressed files)
Can the UI change under you? No (content-addressed, on-chain) Yes (server-controlled) No, but discovery/pinning is off-chain
Renders from A free eth_call A web server An IPFS gateway
Trust disclosure Graded (A/B/C) + itemized None None
Action safety Declared + enforced on-chain App-defined (opaque calldata possible) App-defined
Themeable without redeploy Yes (render-time) Yes (it's just a server) No (new CID)
Verifiable by a user Yes (recompile + re-render) No Partially (CID matches files)

When to use ChainRender: when the interface needs the same trust properties as the contract — canonical frontends for protocols, transaction-signing UIs where spoofing is a real risk, apps that must outlive their authors. When not to: rich, general-purpose web apps that need arbitrary code and don't need on-chain trust — a normal frontend is simpler.