Skip to main content

Stellar Scaffold

Go from an empty directory to a deployed Stellar dApp without wiring the pieces together yourself.

cargo binstall stellar-scaffold-cli
Quickstart →Using AI? Copy our prompt to get started.

Quickstart

Install the CLI, create a project, and get a contract and frontend running against a local network in a few minutes.

Start here →

Tutorial

Build a complete dApp end to end — write the contract, wire up the generated client, add payments, and harden it.

Build a dApp →

CLI reference

Every command in detail: init, build, generate, watch, and upgrade, plus the configuration each one reads.

Look up a command →

Registry

Publish a WASM, deploy named contract instances, and reuse contracts other people have already published.

Publish and deploy →

Building with an AI agent?

Paste this into Claude Code, Codex, Cursor, or another coding agent. It installs Scaffold, asks for your project name, creates the project, and points the agent at our Agent Skill for everything after that.

Help me start a new Stellar Scaffold project.

1. Read the Stellar Scaffold agent skill and follow it for everything below: https://raw.githubusercontent.com/stellar-scaffold/cli/main/skills/stellar-scaffold/SKILL.md
2. Check that I have Rust with the wasm32v1-none target, a C toolchain, the Stellar CLI (`stellar`), Node.js, and Docker running. If anything is missing, tell me how to install it before going further.
3. Tell me that Scaffold works best with Stellar Registry: if I'm going to be deploying to Testnet or Mainnet, I'm going to want stellar-registry-cli in addition to stellar-scaffold-cli. Do I want to install both now?
4. Install Scaffold CLI and, if I opted in, Registry CLI with `cargo binstall stellar-scaffold-cli [stellar-registry-cli]`, installing cargo-binstall first if I don't have it (see https://stellarscaffold.org/docs/quick-start). Confirm it works with `stellar scaffold version` and `stellar registry version`.
5. Ask me for a project name. Ask me if I want a frontend and, if so, do I want React, Svelte, or to use a community template (if the latter, coach me through the `user/repo` shorthand (optionally with a `#branch`/`#tag` suffix) that the `--template` option expects). Ask me if I am ok with NPM or if I'd like another package manager from the `--package-manager` choices.
6. Run `stellar scaffold init <name> --template [my choice] --package-manager [my choice]`. The first run downloads the local network's Docker image and deploys the example contracts, so it can take several minutes. Warn me.
7. For a frontend project, start `npm run dev` in the project. It keeps running, so run it in the background or ask me to run it, then point me to http://localhost:5173.

Then ask me what I'd like to build.
About the Agent Skill →

What is Stellar Scaffold?

Stellar Scaffold is a plugin for the Stellar CLI that scaffolds and maintains full-stack Soroban projects. It generates the Rust contract workspace, a frontend template, and the typed TypeScript clients that connect the two — then keeps the clients in sync as your contracts change.

It is built for the part of the work that is not your idea: local network setup, deploy addresses, client regeneration, environment config. You write contracts and UI; the toolkit keeps the wiring correct.

Read the introduction →

The workflow

Iterate locally as fast as you can save, then deploy to testnet and mainnet when you mean to. Building contracts, running the local network, and generating TypeScript clients happen on their own.

  1. Createstellar scaffold init my-project

    Sets up contracts, a frontend in the framework you pick, and the utility code connecting them, already wired together.

  2. Develop locallynpm run dev

    Runs a local network and watches your code. Every save rebuilds and redeploys the contracts that changed, regenerates their typed clients, and reloads the frontend.

  3. Shipstellar registry publish

    When a contract is ready, publish its Wasm to the Stellar Registry and deploy it by name: to testnet for staging, then to mainnet. These deploys are deliberate steps, never a side effect of saving a file.

While you develop, one committed scaffold.yml declares your networks, accounts, and contracts, so everyone on your team builds the same project, and the same file carries it from local to testnet to mainnet. Config checks catch mistakes before a build runs, and when something does break, Doctor checks your toolchain, config, and local network in one pass and tells you how to fix what it finds.

See every command →