Questions to Confirm
1. Target classification is clear
Confirm:- EVM is a direct compiler target.
- NEAR/CosmWasm are Wasm host targets.
- Solana is a binary toolchain target.
- Sui/Aptos are Move source-generation targets.
- Psy/DPN is a ZK circuit source-generation target.
2. Capabilities are explicit
Every chain-facing operation used by a contract should be listed via capability ids from capability-registry.md:- storage
- caller/signer
- value/native token
- events/logs
- cross-contract call / CPI / submessage
- account/object/resource
- crypto / precompile / syscall
3. Solana is not EVM-shaped
Solana review focus:- Accounts must be explicit.
- Instruction data must be explicit.
- PDAs must be explicit.
- CPI must be explicit.
- Do not hide Solana state as generic contract storage.
4. Wasm family separates host ABIs
NEAR and CosmWasm are both Wasm but must not share one target id. Confirm:- NEAR has its own method exports, host KV, promises.
- CosmWasm has instantiate/execute/query, region ABI, submessages.
- Wasm runtime may be shared; host bridges must be separate.
5. Move uses source generation
First Move phase generates Move source/packages, not a full Lean runtime on MoveVM. Confirm:- Lean proofs finish before codegen.
- Move carries executable logic only.
- IR expresses resource/object/ability explicitly.
- Sui and Aptos are handled separately.
6. ZK targets do not pretend to be Yul targets
Psy/DPN review focus:- Generate
.psysource first. - Treat DPN circuit JSON as an artifact, not ProofForge’s own IR.
- Keep ZK/circuit capabilities explicit.
- Do not directly emit Psy internal structures until the public compiler API is stable enough.
7. Artifact metadata from day one
Every target build should emit:- target id
- artifact path and hash
- source module
- capabilities used
- toolchain versions
- proof/check status
- warnings
Recommended Review Order
- RFC 0001 — vision and boundaries.
- RFC 0002 — targets and pipelines.
- Portable IR and capability registry.
- Implementation backlog — task slices.
- Target notes:
- Shared scenario: Counter.
Recorded Decisions
See decisions.md for:- Phase 1 before non-EVM spikes
- Parallel CosmWasm + Solana spikes
solana-sbpf-linkeras primary Solana path- Aptos-first Move POC
psy-dpnas Experimental-stage ZK circuit sourcegen target
Do Not Do Yet
- Cloud platform UI before two Experimental targets exist.
- Automatic Solana account inference.
- Direct Move bytecode generation as the first Move path.
- One Wasm target id for all Wasm chains.
- Direct Psy DPN internal emission before generated
.psysource works. - Promise “any Lean code runs on every chain.”
Good vs Bad Signals
Good:- EVM baseline stays stable.
- Each new target has a smoke test.
- Unsupported capabilities produce clear errors.
- Artifact metadata converges across targets.
- Shared scenario works on at least two very different targets.
- Backends accumulate special-case
if target == ...branches. - Capability ids are inconsistent across docs.
- Solana account logic hides in runtime.
- Move codegen is string templates without IR constraints.
- ZK targets hide proof/circuit restrictions from the capability checker.
- Docs and CLI drift apart.