Skip to main content
The create-inco-app CLI allows you to create a new full-stack confidential dApp with a Next.js frontend, Anchor programs (Rust), and the Inco Solana SDK. It is the easiest way to get started building on Inco for Solana.

Basic usage

On installation, you’ll see the following prompts:
After the prompts, create-inco-app will create a folder with your project name and install the required dependencies.

Scaffold modes

Choose what to generate with --template (or the second prompt). Programs-only and frontend-only are scaffolded at the project root (no monorepo wrapper).
Anchor programs and frontend in one workspace.

Reference

The following options are available:
OptionDescription
-h or --helpShow all available options
-v or --versionOutput the version number
-t or --template <value>Scaffold type (monorepo, contracts, frontend)
-f or --framework <value>Contract framework (anchor)
-w or --wallet <value>Wallet provider (solana-wallet-adapter, privy)
-c or --chain <value>Chain type (svm)
-y or --yesSkip prompts, use defaults
--installAuto-install dependencies after scaffolding
--gitInitialize a git repository
--use-npmExplicitly tell the CLI to bootstrap using npm
--use-pnpmExplicitly tell the CLI to bootstrap using pnpm
--use-yarnExplicitly tell the CLI to bootstrap using Yarn
--use-bunExplicitly tell the CLI to bootstrap using Bun

Project Structure

The scaffolded project is a monorepo with two workspaces:
The frontend is pre-configured for Solana devnet. All wallet providers connect to devnet by default, no network configuration changes are needed.

Examples

With default options

With Anchor and Solana Wallet Adapter

With Anchor and Privy

Build & Test Programs

Run the test command from the project root — it builds, deploys to a local validator, runs tests, and automatically syncs the program IDs and IDLs to the frontend:
After the test completes, the frontend .env is automatically updated with the deployed program IDs. Then run the frontend:
Open http://localhost:3000 to see your dApp.
For Privy, you need a Privy App ID with Solana (SVM) enabled. Set NEXT_PUBLIC_PRIVY_APP_ID in frontend/.env.local before running the frontend. For Solana Wallet Adapter, no additional configuration is needed — it works out of the box.

Inco Solana SDK Integration

The scaffolded app uses @inco/solana-sdk for client-side encryption. On-chain, the Anchor programs use inco-lightning CPI for encrypted operations.

Client-side encryption

On-chain encrypted operations (Rust)

See Encryption and Attested Decrypt for full details.

Choose Your Wallet Provider

Each wallet provider has its own setup. Select one to see the provider configuration:
solana

Solana Wallet Adapter

Native Solana wallets (Phantom, Solflare)
privy

Privy

Embedded wallets & social login

Quick Reference

CommandDescription
npm run programs:testBuild, test, and sync programs to frontend
npm run programs:buildBuild Anchor programs only
npm run programs:syncSync IDLs and program IDs to frontend
npm run devStart frontend