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-starternpx ctg zk init my-zk-dapp — stable ZK example with Vite + React shell

See Templates for manifest details and package-manager notes.