Skip to main content
Status: Research (docs-first candidate) Candidate target id: tezos-michelson-ligo This note records the first ProofForge classification for Tezos smart contracts, with LIGO as the preferred first source-generation path and Michelson as the target execution/artifact boundary. It does not add a Lean target profile yet. Primary sources:

Classification

Tezos should be treated as a Michelson source/artifact target, with LIGO as the first practical source-generation language. It is not EVM, Wasm-host, Move, Solana sBPF, TVM, AVM, UTXO script, or ZK circuit sourcegen.
Michelson is a typed stack-based language and Tezos contracts return updated storage plus a list of operations. That effect shape should be explicit in ProofForge metadata.

Why This Matters For ProofForge

ProofForge should not model Tezos as an EVM-like account contract even though it has persistent storage and entrypoints. Target-specific concerns:
  • entrypoints receive parameters and return an operation list plus new storage;
  • storage is a typed Michelson/Micheline value, not a slot map;
  • big_map has target-specific persistence and indexing behavior;
  • contract views and events are distinct public surfaces;
  • tickets, Sapling, delegation, and tokens are native Tezos features that need explicit capability review before broad support;
  • fees, gas, and storage burn differ from EVM gas semantics;
  • testing should use LIGO/Octez or a Tezos sandbox path before claiming output.

Candidate Target Family

Candidate family:
Candidate artifact shape:

Candidate Capabilities

Some existing capabilities have rough Tezos interpretations, but they need review: Candidate capabilities that may need explicit ids later: Do not add these ids to ProofForge.Target.Capability until a target profile and lowering rules are reviewed.

Implementation Road

Road 1: LIGO Sourcegen

This is the most conservative first spike. First spike:
  • choose a simple Counter contract with one increment entrypoint and one view;
  • generate or wrap LIGO source;
  • compile to Michelson;
  • run a local test or sandbox flow that calls the entrypoint and checks storage;
  • record source, Michelson, storage/parameter schema, operations, tool versions, and validation result in artifact metadata.

Road 2: Restricted Michelson IR

This road should follow only after the LIGO package route proves the artifact shape. First spike:
  • define a restricted stack/effect IR for Michelson;
  • model parameter unpacking, storage update, operation list production, and views;
  • keep tickets, Sapling, FA2 integration, and advanced contract origination out of the first direct path.

Non-Goals For The First Pass

  • Do not add tezos-michelson-ligo to the code registry yet.
  • Do not classify Tezos as EVM, Wasm-host, Move, Solana, TVM, AVM, UTXO, or ZK.
  • Do not hide operation-list semantics behind generic cross-contract calls.
  • Do not treat big_map, tickets, or Sapling as ordinary maps/assets.
  • Do not claim direct Michelson emission before the LIGO sourcegen route is validated.

Research Exit Criteria

Tezos can leave Research only when we have:
  • a reviewed target profile proposal;
  • a decided first spike path, likely LIGO sourcegen;
  • a minimal Counter-like scenario with storage, one entrypoint, and one view;
  • a parameter/storage schema policy;
  • an operation-list and gas/storage-burn policy;
  • a documented toolchain requirement set;
  • at least one reproducible local validation command;
  • artifact metadata for source, Michelson, schema, operations, toolchain versions, and validation result.