create-inco-app
v0.2.2
Published
Create a full-stack Inco dApp with confidential smart contracts
Maintainers
Readme
create-inco-app
A CLI tool to scaffold full-stack Inco dApps with confidential smart contracts. Create a monorepo with your preferred chain, contract framework, and wallet provider.
Quick Start
# npm
npx create-inco-app
# pnpm
pnpm create inco-app
# yarn
yarn create inco-app
# bun
bun create inco-appOr with options:
# EVM project
npx create-inco-app my-dapp --chain evm --framework hardhat --wallet rainbowkit
# Solana project
npx create-inco-app my-solana-app --chain svm --framework anchor --wallet privyTo scaffold with a specific package manager:
npx create-inco-app my-dapp --use-npm
npx create-inco-app my-dapp --use-pnpm
npx create-inco-app my-dapp --use-yarn
npx create-inco-app my-dapp --use-bunFeatures
- Interactive CLI with beautiful prompts
- Monorepo structure (contracts/programs + frontend)
- EVM support with Hardhat and Foundry
- Solana (SVM) support with Anchor
- Inco confidential smart contracts and programs pre-configured
- Popular wallet providers per chain
- TypeScript + Next.js 15 (App Router)
- Tailwind CSS styling
- Package manager detection (npm, yarn, pnpm, bun)
What is Inco?
Inco enables developers to build confidential smart contracts with private data types, operations, and programmable access control. Build privacy-focused dApps for payments, DeFi, governance, gaming, and more.
Supported Options
Chains
| Chain | Description | |-------|-------------| | EVM | Ethereum, Base, Polygon, etc. (recommended) | | SVM | Solana Devnet (Beta) |
Contract Frameworks
| Framework | Chain | Description | |-----------|-------|-------------| | Hardhat | EVM | JavaScript/TypeScript development environment (recommended) | | Foundry | EVM | Blazing fast Solidity development toolkit | | Anchor | SVM | Solana's Sealevel runtime framework |
Wallet Providers
| Provider | Chains | Description | |----------|--------|-------------| | RainbowKit | EVM | Best UX for connecting wallets (recommended) | | Privy | EVM, SVM | Email, social, and wallet login with embedded wallets | | Dynamic | EVM | Multi-chain auth with embedded wallets and onramps | | Reown | EVM | WalletConnect's official SDK (formerly Web3Modal) | | Para | EVM | Email, social, and wallet login with Para SDK | | Solana Wallet Adapter | SVM | Native Solana wallet connection (Phantom, Solflare, etc.) |
Project Structure
EVM Project
my-dapp/
├── contracts/ # Smart contracts (Hardhat or Foundry)
│ ├── contracts/ # Solidity files with Inco integration
│ │ ├── ConfidentialERC20.sol
│ │ └── ConfidentialLottery.sol
│ ├── test/ # Contract tests
│ ├── ignition/ # Deployment scripts
│ ├── hardhat.config.ts
│ └── package.json
├── frontend/ # Next.js frontend
│ ├── app/
│ ├── components/
│ └── package.json
└── package.json # Workspace rootSVM (Solana) Project
my-solana-app/
├── programs/ # Solana programs (Anchor)
│ ├── programs/
│ │ ├── confidential-token/ # Encrypted token balances & transfers
│ │ └── confidential-pool/ # Privacy-preserving lottery pool
│ ├── tests/ # Program tests
│ ├── Anchor.toml
│ └── Cargo.toml
├── frontend/ # Next.js frontend
│ ├── app/
│ ├── components/
│ ├── hooks/
│ ├── idl/ # Program IDLs (auto-synced)
│ └── package.json
├── scripts/
│ └── sync-programs.mjs # Syncs IDLs & program IDs after deploy
└── package.json # Workspace rootUsage
Interactive Mode
npx create-inco-appYou'll be prompted to:
- Enter your project name
- Choose a chain (EVM or SVM)
- Choose a contract framework
- Pick a wallet provider
CLI Options
npx create-inco-app [project-name] [options]
Options:
-c, --chain <chain> Chain type (evm, svm)
-f, --framework <framework> Contract framework (hardhat, foundry, anchor)
-w, --wallet <provider> Wallet provider to use
-y, --yes Skip prompts and use defaults
--git Initialize a git repository
--install Install dependencies after creation
--use-npm Use npm as the package manager
--use-yarn Use yarn as the package manager
--use-pnpm Use pnpm as the package manager
--use-bun Use bun as the package manager
-h, --help Show help message
-v, --version Show version numberExamples
# Interactive mode
npx create-inco-app
# EVM with Hardhat and RainbowKit (recommended)
npx create-inco-app my-dapp --chain evm --framework hardhat --wallet rainbowkit
# EVM with Privy for embedded wallets
npx create-inco-app my-dapp -c evm -f hardhat -w privy
# Solana with Anchor and Privy
npx create-inco-app my-solana-app --chain svm --framework anchor --wallet privy
# Solana with native wallet adapter
npx create-inco-app my-solana-app --chain svm --framework anchor --wallet solana-wallet-adapter
# Non-interactive with defaults
npx create-inco-app my-dapp --yes
# Create with git and install dependencies
npx create-inco-app my-dapp --git --installAfter Setup
EVM Projects
Navigate and install:
cd my-dapp npm installSet up environment variables:
cp frontend/.env.example frontend/.envCompile and test contracts:
npm run contracts:compile npm run contracts:testStart the frontend:
npm run dev
SVM (Solana) Projects
Navigate and install:
cd my-solana-app npm installSet up environment variables:
cp frontend/.env.example frontend/.envBuild and test programs (deploys to devnet and syncs IDLs + program IDs):
npm run programs:testStart the frontend:
npm run dev
Workspace Scripts
EVM
| Script | Description |
|--------|-------------|
| npm run dev | Start frontend dev server |
| npm run build | Build frontend |
| npm run contracts:compile | Compile smart contracts |
| npm run contracts:test | Run contract tests |
| npm run contracts:node | Start local Inco node |
| npm run contracts:deploy:local | Deploy to local node |
| npm run contracts:deploy:testnet | Deploy to testnet |
SVM
| Script | Description |
|--------|-------------|
| npm run dev | Start frontend dev server |
| npm run build | Build frontend |
| npm run programs:build | Build Anchor programs |
| npm run programs:test | Build, deploy, test, and sync programs |
| npm run programs:deploy | Deploy programs and sync |
| npm run programs:sync | Sync IDLs and program IDs to frontend |
Note: Workspace scripts are automatically configured for your selected package manager during scaffolding.
