⚠️ 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.
Reference

Reference: Runtime API

Verify signatures against the shipped types. Code examples in these docs illustrate usage and intent. The authoritative signatures are the TypeScript types shipped with @chainrender/client — your editor's autocomplete and the package's .d.ts files are the source of truth. Where an example and the shipped type differ, the shipped type wins.

@chainrender/client/runtime — rendering an app and turning declared actions into wallet transactions.

  • renderComponent({ rpc, router }, hash) → Promise<string> — render an app to HTML via renderHash (a free eth_call).
  • renderComponent({ rpc, hash, context }) — render with a presentation context (theme/palette/dims).
  • buildActionRequest(action, inputs) → { to, data, value } — construct-for-sign: the calldata is exactly the declared selector + args, nothing else.
  • describeAction(action, inputs) → a plain-language description for the user to review before signing.
  • splitArgs(template) — parse an action's arg template ("$amount") into the structured form.
  • Wallet connection (EIP-6963) + the declared-action submit path.

All runtime hooks fail closed: no wallet → safe no-ops; a reverting render → an honest error, never a fabrication.