Skip to content
Permissionless Web

Generated — do not edit. Source: /Users/returniflost/abstract/terp-core/.worktrees/terp-core-lean-v6/crates/lean-cw-ffi/docs/pages/protocol/fold.mdx. Change the crate/repo, then rebuild this site.

Fold

Terp Lean is a research product that decides who may vote from membership, not from staked tokens. A fold is many statements checked with one verify, so the chain does not run a separate proof check for every leaf.

STWO is the named proof system: prover 2, field M31 (curve id 5). Proofs are produced off-chain. They are verified in-process by the app VM. That VM is zk-wasmvm: the host API already running inside the terpz process. The native Lean module calls that API. This is not a stored CosmWasm contract sudo.

Dummy proofs use magic DSTW. They always fail. Concatenating Dummy proofs is not a fold. Dummy is not STWO.

The public Terp chain (terpd) is a different product. You run this locally.

Loading diagram...

Same-kind statements compose, then one verify. Dummy copies are rejected.

What can go wrong

  • Calling Dummy a STWO proof because both can stamp prover 2 and curve 5. The magic bytes decide: STWO versus DSTW.
  • Concatenating N Dummy proofs and treating the blob as a fold. That must fail.
  • Instantiating a stored CosmWasm contract and treating that as verify. The native module calls the host API.

See LNPR for where proofs ride. See SSLE for a STWO proof that reveals the proposer.