Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

FAQ

What is Cambrian?

A language for stateful, message-based programs (entities, routes, and member transforms). One .cam source can target Solidity-EVM and Lean-EVM backends.

How do I run tests?

  • EVM: cambrian-transpiler … --target evm then forge test in the output directory.
  • Lean: --target lean then lake build, or pass --check-lean.

See Testing.

What is Lean-EVM?

--target lean shares the EVM domain with Solidity (calls, value, CREATE2 rules) but emits Lean 4 for machine-checked reasoning instead of Solidity text.

Do I need project.yaml?

Single-file programs can be passed directly on the CLI. Multi-entity apps, deterministic addresses, Foundry/Lean knobs, shared source lists, and library search roots (library_paths / imports) use project.yaml (reference).

Why did the compiler reject min(a, b)?

Bare stdlib names are invalid (V49). Write std::math::min(a, b).

Is Cambrian open source?

No. The language, transpiler, and cambrian-lang workspace are developed in proprietary mode and are not published for public download. This book is the public language guide; access to the toolchain is arranged separately. If you are interested in collaborating with the development team, contact [TBD].

Where is the language specified?

This book is the public guide. The cambrian-lang repo also maintains docs/LANGUAGE.md, docs/STDLIB.md, and the parser grammar — when docs disagree with code, trust the transpiler and fix the docs.

Can I mix hand-written Solidity with Cambrian?

Yes, via extern entity (and optional @solidity_import) and Foundry remappings for dependencies. See Extern Entity and the governor / OZ integration examples in the lang repo.