⚠️ 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: The Vocabulary

The vocabulary is the closed set of everything a ChainRender app can express. It's machine-readable via vocabulary(), and it's closed by design — that closure is what makes apps analyzable and safe.

Node types (primitives)

box, text, heading, button, link, image, input, and the structured renderers: chart, table, controls (toggle, select, slider, search), layout (stack/grid/flow), multi-view.

Capabilities

READ_CHAIN (read state), WRITE_CHAIN (send a tx), VALUE (move ETH), SIGN_MESSAGE (typed signing), BATCH_EXECUTE (atomic multi-action), CLIENT_FETCH (off-chain fetch — drops the grade), GPU_EXECUTE (client GPU enhancement, fails closed to a poster). An app declares its envelope; the enforcer verifies it.

Resolver kinds

Each resolver declares which kinds it serves. vocabulary().resolverKinds lists them — never hardcode a kind string; read it from here.

Call vocabulary() for the exact, current schema — it's generated from the real on-chain constants, drift-locked.