Contracts: Architecture
The on-chain system, in layers:
- Storage — component bytes stored via SSTORE2 (
SourceStore/ChunkedStore): pay gas once to write, render free forever. - Registry —
ComponentRegistrymaps a hash → its bytes (content-addressed).AppRegistry,CompositionRegistrytrack apps, mini-apps, and fork lineage. - Interpreter / Router —
RenderRouter+OpcodeInterpreterV3Htmlwalk the byte tree and emit HTML/SVG; aviewcall, deterministic, fail-closed. - Resolvers — the data/media library, each a small
viewcontract. - Enforcer —
TrustGrade+ActionVocab: grades and refuses, on-chain, drift-locked with the SDK. - Theming —
ThemeTokens+ThemeCssViewgenerate CSS from tokens;PresentationContextapplies theme at render time. - Registries (governance-free) —
SubnameStakeRegistrar(names),SubnameVersionRegistry(versions),ThemeSetRegistry(themes),AdvisoryRegistry/AttesterRegistry(advisories/attestations).
Every contract is ownerless and immutable — no admin, no upgrade key. Verify once, rely forever.