Skip to content

ZEVM Maintainer Decisions

This file is a non-normative historical decision log.

Normative ZEVM contract sources are only:

  1. docs/specs/prd.md
  2. docs/specs/json-rpc-contract.md

Entries here record rationale/history and must not be treated as a third spec layer.

Drift Control (Non-Normative Process Rules)

Section titled “Drift Control (Non-Normative Process Rules)”
  • update normative contract docs first when behavior changes
  • keep this log at policy/rationale level and point to normative sources for exact tuples, hashes, method inventories, payloads, and errors
  • if a prior decision is superseded, append a new decision rather than rewriting history to mirror every contract edit
  • if wording here diverges from normative docs, normative docs win
Decision IDTopicNormative anchor
DEC-001docs are full-spec artifacts, not conceptual sketchesdocs/specs/prd.md; docs/specs/json-rpc-contract.md
DEC-002one binary, two modes, and forking stays inside trusted modedocs/specs/prd.md (purpose/scope/runtime modes)
DEC-003transport contract locationdocs/specs/prd.md (transport section); docs/specs/json-rpc-contract.md (envelope/transport tuples)
DEC-004notification semanticsdocs/specs/json-rpc-contract.md (notification and id semantics)
DEC-005trusted-mode block tagsdocs/specs/prd.md (trusted block tags); docs/specs/json-rpc-contract.md (mode-gated selector behavior)
DEC-006exact managed dev-wallet contractdocs/specs/prd.md (managed dev-wallet contract)
DEC-007light-mode checkpoint precedencedocs/specs/prd.md (startup precedence); docs/specs/json-rpc-contract.md (startup semantics)
DEC-008light-mode checkpoint file contractdocs/specs/prd.md (persisted checkpoint file contract); docs/specs/json-rpc-contract.md (checkpoint input rules)
DEC-009light-mode readiness surfacedocs/specs/prd.md (light readiness rules); docs/specs/json-rpc-contract.md (zevm_lightSyncStatus, readiness-gated methods)
DEC-010deferred surfacesdocs/specs/prd.md (in/out-of-scope); docs/specs/json-rpc-contract.md (supported/deferred methods)
DEC-011installation distribution promisedocs/specs/prd.md (phase-1 source-build installation contract)
DEC-012exact nonstandard trusted-mode method inventory and alias policydocs/specs/prd.md (namespace policy); docs/specs/json-rpc-contract.md (canonical method/alias inventory)
DEC-013exact trusted-mode config JSON subshapes for mining/fork objectsdocs/specs/prd.md (config schema and trusted object sub-shapes)
DEC-014decision-log rolethis file header + docs/specs/prd.md/docs/specs/json-rpc-contract.md as sole normative sources
DEC-015compatibility aliases share ZEVM semanticsdocs/specs/json-rpc-contract.md (alias tuples and shared semantics)
DEC-016light-mode checkpoint startup failures vs reserved RPC codesdocs/specs/prd.md (checkpoint age/startup failures); docs/specs/json-rpc-contract.md (error code table and mode gating)
DEC-017authoritative trusted-mode runtime and config modeldocs/specs/prd.md (startup/config/runtime mode contract)
DEC-018light-mode checkpoint age boundary and non-strict branchdocs/specs/prd.md (checkpoint age policy); docs/specs/json-rpc-contract.md (startup checkpoint-age semantics)
DEC-019light-mode numeric block-selector contractdocs/specs/prd.md (light block selectors/history semantics); docs/specs/json-rpc-contract.md (numeric selector/error tuples)
DEC-020baked checkpoint defaults are precedence inputs, not frozen public hashesdocs/specs/prd.md (checkpoint precedence/default semantics); docs/specs/json-rpc-contract.md (checkpointSource semantics)
DEC-021light-mode eth_blockNumber readiness and head meaningdocs/specs/prd.md (light readiness + eth_blockNumber); docs/specs/json-rpc-contract.md (eth_blockNumber tuple)
DEC-022exact --config loader failure behaviordocs/specs/prd.md (startup failure behavior)
DEC-023exact empty-batch [] transport behaviordocs/specs/prd.md (transport requirements); docs/specs/json-rpc-contract.md (empty-batch envelope tuple)
DEC-024release-metadata/provenance contract is explicit and auditable, including correction-release supersession-note value requirementsdocs/specs/prd.md (section 3.4 release metadata/provenance + supersession-note contract)
DEC-025release qualification must be verifiable from default zig build test execution plus explicit shipped-surface coverage mappingdocs/specs/prd.md (section 3.5 release qualification criteria)
DEC-026release qualification obligations include listener/socket smoke coverage for trusted and light modes plus canonical ZEVM transport/parser shipping path with notification-only request/batch HTTP 204 empty-body behaviordocs/specs/prd.md (section 3.5 listener/socket smoke and transport/parsing verification criteria)
DEC-027phase-1 releaseIdentifier discovery is deliberately operator-provenance-only (no runtime/CLI reporting surface)docs/specs/prd.md (section 3.4 release metadata/provenance boundary; section 3.5 qualification acceptance)