Documentation 2.0Soroban CLI Orchestrator

Deployment Orchestration for Soroban

Build. Deploy. Version. Interact. Caatinga automates your Stellar smart contract pipeline with type-safe artifacts and multi-contract dependency resolution.

$npx ctg init my-dappv1.0

The Six-Stage Pipeline

From fresh scaffold to on-chain read & invocation, Caatinga standardizes every step.

Interactive Workflow Pipeline

Click through the Caatinga execution stages to see how orchestration flows from init to read.

Command
npx ctg init my-dapp
Purpose

Scaffold a new Soroban project with caatinga.config.ts, contracts workspace, and ready-to-use tooling.

Input

Project name, template selection (react-vite-counter, minimal, zk-starter)

Output

my-dapp/ directory structure, caatinga.config.ts, contracts/

Core Mental Model

What is Caatinga?

Caatinga is a deployment orchestrator and versioned artifact manager designed specifically for Stellar Soroban smart contracts.

Instead of manually compiling Rust crates, keeping track of contract IDs in arbitrary environment files, or writing ad-hoc deploy scripts, Caatinga gives you a structured workflow backed by caatinga.config.ts and caatinga.artifacts.json.

Deterministic Artifacts

Track every WASM hash, network deployment, contract ID, and upgrade history in version-controlled JSON artifacts.

TypeScript-Native Binding Generation

Automatically generate strongly-typed TypeScript client packages directly from deployed contract specs.

Engineered for Soroban Developers

Everything you need to orchestrate complex multi-contract architectures.

01. Dependency Graphs

Automatic Resolution

Define contract dependencies with dependsOn and let Caatinga deploy in exact topological order.

02. In-Place Upgrades

Managed Contract Upgrades

Upgrade contract WASM code in-place while keeping identical Contract IDs, or trigger full redeployments with full history.

03. Identity Management

Safe Stellar Identities

Strictly enforce identity aliases (e.g. alice) from Stellar CLI, preventing hardcoded secret keys.

04. Client Integration

@caatinga/client

Plug-and-play client library with wallet adapters for Freighter and Stellar Wallets Kit.

05. Zero-Knowledge

ZK Scaffold Support

Built-in workflows for Circom circuits, Groth16 proof generation, and Soroban verifier integration.

06. CI/CD Ready

Automated Pipelines

Deterministic CLI commands (doctor, smoke, ci) built for GitHub Actions.

caatinga.config.ts

Declarative Configuration

Define contracts, dependencies, network parameters, and post-deploy hooks in type-safe TypeScript.

Type checked with Zod schemas
Environment variable synchronization
Cycle detection before deployment
caatinga.config.tsTypeScript
import { defineConfig } from "@caatinga/cli";

export default defineConfig({
  project: { name: "my-dapp" },
  contracts: {
    token: { path: "contracts/token" },
    vault: {
      path: "contracts/vault",
      dependsOn: ["token"],
    },
  },
  networks: {
    testnet: {
      rpcUrl: "https://soroban-testnet.stellar.org",
      networkPassphrase: "Test SDF Network ; September 2015",
    },
  },
});

Ready to Build on Soroban?

Explore our step-by-step documentation, architecture guides, and CLI references to streamline your deployment flow.