Skip to content

Architecture

Vue 3 + Vite explorations app. Each protocol change gets a self-contained folder; routes come from REGISTRY.ts with lazy-loaded widgets.

When briefing an agent, internalize this model first — taxonomies and reuse rules matter more than stack details.

Content model

Explorations

The core unit: an interactive widget for an EIP, ERC, or research topic.

src/explorations/eip-7883/
├── info.ts         # Metadata
├── MyC.vue         # Widget
├── examples.ts     # Presets
└── tests.spec.ts   # Tests

REGISTRY.ts assembles all explorations into routes — no manual route registration.

Topics

Strategic pillars — static curated set, not added with regular explorations. Each exploration has exactly one topic in info.ts. Valid IDs live in TOPICS.ts.

IDTitleDescription
scalingScalingData availability, throughput, L2 enablement
privacyPrivacyZK-proofs, homomorphic encryption, private mempools
uxUXAccount abstraction, wallet infrastructure, signature schemes
securitySecurityValidator incentives, cryptographic agility, MEV mitigations
robustnessRobustnessGas cost accuracy, EVM semantics hardening, spec clarity
interoperabilityInteroperabilityCross-chain standards, bridge infrastructure

When instructing an agent: pick the topic that best reflects the primary concern of the change.

Timeline

Maturity + hardfork placement — one entry per exploration in TIMELINE.ts. Hardfork names follow Ethereum upgrade cities; categories like research and ideas are stable. New hardfork entries can be added as the schedule evolves.

Tags

Reusable technical concepts (max 3–4 per exploration). Tags can grow when rules are met:

RuleExample
Reusable beyond one explorationEVM yes — EIP-7883 no
Short form preferredEVM yes — Ethereum Virtual Machine no
No redundancy with existing tagsdon't add Gas if GasCosts exists
Prefer the generic conceptGasCosts yes — Gas Increases no

Valid values: TAGS.ts enum (alphabetical, lint-enforced).

E-Components

Reusable Ethereum-domain widgets in src/eComponents/<name>EC/. Each packages a recurring pattern (precompile interface, bytecode stepper, …). The exploration supplies execution (EVM, run callbacks); the E-Component supplies chrome and shared UI.

Brief agents: check Available E-Components before custom UI. One primary E-Component per exploration today — see E-Components for composition direction.

Design decisions

Folder-per-exploration — isolated deps; one REGISTRY.ts import to publish.

Dynamic viewsExplorationView.vue loads the right MyC.vue; no static per-EIP view files.

Lazy loading — each exploration is its own chunk; users download only what they visit.

Testing — Vitest for units; Cypress for lean navigation smoke tests.

Video pipeline

Short-form exploration videos: isolated video/ package, overlay via ?fyp-video=1. Operational detail: Video pipeline.

Structural base v0.1.3 — latest docs always apply. See changelog for history.