Skip to main content
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

You’ll be prompted for:

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).
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)

  1. Install dependencies:
  2. Set up frontend env vars:
  3. Compile and test the contracts:
  4. (Optional) Deploy — copy contracts/.env.sample to contracts/.env and fill in the key for your target network, then:
    contracts/.env keys, per target network:
    contracts/.env
  5. Start the frontend (set NEXT_PUBLIC_CONFLOTTERY_ADDRESS to 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
Encrypt a value before sending it on-chain, then decrypt results with attestation:
See Encrypting Values and Attested Decrypt for full details.

Choose your wallet provider

Each provider has its own setup. Select one to see the provider configuration and how it integrates with Inco:
rainbowkit

RainbowKit

Multi-wallet connector (recommended)
privy

Privy

Embedded wallets & social login
dynamic

Dynamic

Multi-chain wallet orchestration
reown

Reown

WalletConnect-powered connections
para

Para

Embedded + external wallet support