create-inco-app is the fastest way to start building on Inco. It scaffolds a confidential project — a monorepo with Solidity contracts and a Next.js frontend, or just the contracts, or just the frontend — pre-wired with the Inco SDK, your contract framework, and a wallet provider.
Basic usage
Scaffold modes
Choose what to generate with--template (or the second prompt). Contracts-only and frontend-only are scaffolded at the project root (no monorepo wrapper).
- Full monorepo (default)
- Contracts only
- Frontend only
Contracts and frontend in one workspace.
Reference
Networks
The project targets Base Sepolia by default and supports Base Mainnet. The frontend selects the network from a single env var — no code changes needed:frontend/.env
lib/network.ts reads it and returns the matching Inco Lightning client (Lightning.baseSepoliaTestnet() or Lightning.baseMainnet()).
After setup (monorepo)
-
Install dependencies:
-
Set up frontend env vars:
-
Compile and test the contracts:
-
(Optional) Deploy — copy
contracts/.env.sampletocontracts/.envand fill in the key for your target network, then:contracts/.envkeys, per target network:contracts/.env -
Start the frontend (set
NEXT_PUBLIC_CONFLOTTERY_ADDRESSto your deployed address first):Open http://localhost:3000.
Workspace scripts (monorepo)
deploy:token:local / :testnet / :mainnet variants deploy only the ConfidentialERC20 token. Each deploy reads its key from contracts/.env by target chain (PRIVATE_KEY_ANVIL / PRIVATE_KEY_BASE_SEPOLIA / PRIVATE_KEY_BASE).Inco SDK integration
The frontend talks to Inco through@inco/lightning-js. The network-aware client comes from lib/network.ts:
lib/network.ts
Choose your wallet provider
Each provider has its own setup. Select one to see the provider configuration and how it integrates with Inco:RainbowKit
Multi-wallet connector (recommended)
Privy
Embedded wallets & social login
Dynamic
Multi-chain wallet orchestration
Reown
WalletConnect-powered connections
Para
Embedded + external wallet support