Skip to content

Choosing a Project Scaffold ​

Caatinga offers three ways to start a new project. Pick the path that matches how much UI and ZK tooling you want on day one.

Install the CLI and prerequisites first — see Getting started — Prerequisites.

Which path? ​

  • Need a browser UI on day one? → Template or ZK template
  • CLI + contract only? → Minimal
  • Need Groth16 proofs on Soroban? → ZK template or ZK minimal

Paths ​

Template ​

bash
ctg init <dir>

Vite + React, wallet and bindings pre-wired. No ZK.

→ Template project

Minimal ​

bash
ctg init <dir> --minimal

CLI + app stub only. You pick the UI stack later.

→ Minimal project

ZK template ​

bash
ctg zk init <dir>

zk-starter: Vite UI + verifier contract + multiplier circuit. Hybrid CLI + browser flow.

→ ZK project

ZK minimal ​

bash
ctg zk init <dir> --minimal

Verifier + identity circuit only. No frontend — add UI yourself.

→ ZK project

Aliases ​

  • ctg init --empty is the same as --minimal.
  • ctg zk init with no project name adds ZK files to the current directory (see ZK project).

Official templates ​

  • react-vite-counter (default) — npx ctg init my-dapp — stable; recommended for the first walkthrough
  • zk-starter — npx ctg zk init my-zk-dapp — stable ZK example with Vite + React shell

See Templates for manifest details and package-manager notes.