ERC-8039

  • Name: ERC-8039 (ZK Proof Verification for Smart Accounts)
  • URL: https://ethereum-magicians.org/t/erc-8039-zk-proof-verification-for-smart-accounts-programming-smart-account-logic-with-zk-circuits/27919
  • Category: zk-proof-verification interface standard / smart-account proof adapter standard / programmable-ownership primitive
  • Summary: ERC-8039 is best understood not as a proof system, wallet product, or zkVM, but as a lower-layer interface standard for letting smart accounts verify succinct zero-knowledge proofs onchain. Its core move is to standardize an ERC-1271-style verifyProof(publicInputs, proof) flow with a magic-value return, while separating technical proof-type identification from human-readable statement metadata. That makes ERC-8039 a useful comparison point for ERC-1271, smart-account modules, zk-signer systems, and proof-carrying authorization middleware because the real control surfaces are not just which proof system gets used, but which verifier adapter is trusted, how public inputs are sourced, how replay protection is embedded into the circuit, and how much semantic meaning gets pushed into application-specific verifier contracts.
  • What it does:
    • Defines a minimal verifyProof(bytes publicInputs, bytes proof) interface for smart accounts to check succinct zero-knowledge proofs without reverting on failure
    • Returns a magic value on successful verification, following the same general interaction pattern that ERC-1271 uses for signature validation
    • Adds getProofType() so tooling can identify the technical proof-system implementation behind a verifier adapter
    • Adds metadata() so operators and interfaces can see a human-readable description of what statement or relation the verifier is meant to prove
    • Keeps the standard proof-system agnostic by allowing verifier-specific decoding of publicInputs and proof, with examples for HONK, Groth16, and SP1 adapters
    • Leaves replay protection and public-input construction out of scope, forcing applications to bind proofs to the right context themselves
  • Key claims:
    • ERC-8039 clears the bar because it turns proof-bound smart-account control into a comparison-ready lower layer instead of leaving it buried inside one zk-wallet implementation.
    • The most important mechanism is the ERC-1271-style magic-value pattern. The draft explicitly chooses non-reverting validation so proof checks can compose with existing smart-account patterns and batch-style workflows.
    • The split between getProofType() and metadata() is analytically useful because it separates technical implementation identity from the semantic statement being proven. That makes it easier to reason about proof routing, auditing, UI labeling, and circuit upgrades as different layers.
    • The standard is deliberately narrow about public-input sourcing. The draft says implementers are free to obtain or compute the instance however they want, which means verifier adapters and surrounding account logic remain the real integration chokepoints.
    • ERC-8039 also makes an important specialization choice: each verifier contract is meant to target a single proof-system implementation and a single statement or relation. That keeps adapters simple, but it also means application-specific verifier contracts become the place where meaning, versioning, and trust accumulate.
    • The security section is one of the strongest reasons to keep the draft in the corpus. Replay protection is not solved by the interface itself; the draft explicitly pushes nonce / account / chain / timestamp binding into circuit and public-input design, which makes account-context binding a first-class comparison surface.
    • Microchain ZK Signers gives the draft a concrete use case beyond abstract standardization. Its README positions ERC-8039 as the proof-verification layer behind privacy-preserving multisig smart accounts, showing how the interface can sit beneath private signer sets, threshold proofs, and state-root-based account control.
    • ERC-8039 belongs in the active corpus because it gives the smart-account cluster a lower-bound proof-verification interface, useful for comparing zk signers, session-key systems, proof-based policy engines, and future programmable-ownership wallets without flattening them into generic wallet abstraction.
  • Whitepaper: No standalone ERC-8039 whitepaper surfaced in this pass. The strongest primary materials were the draft ERC text, the Ethereum Magicians discussion thread, and the Microchain ZK Signers reference materials collected in ../../whitepapers/erc-8039-primary-sources-2026-05-13.md.
  • Sources:
  • Last reviewed: 2026-05-13 UTC