Scaffold Celo dApps with Celo Composer. Use when starting new Celo projects, creating MiniPay apps, or setting up development environments.
This skill covers using Celo Composer to scaffold Celo dApps with pre-configured templates.
npx @celo/celo-composer@latest create
Follow the prompts to select your options.
npx @celo/celo-composer@latest create my-celo-app
npx @celo/celo-composer@latest create my-celo-app \
--template basic \
--wallet-provider rainbowkit \
--contracts hardhat
npx @celo/celo-composer@latest create my-celo-app --yes
| Template | Description | Use Case |
|---|---|---|
basic | Standard Next.js 14+ dApp | General web3 applications |
minipay | Mobile-first MiniPay app | MiniPay Mini Apps |
farcaster-miniapp | Farcaster SDK + Frame | Farcaster integrations |
ai-chat | Standalone chat application | AI-powered dApps |
npx @celo/celo-composer@latest create -t minipay
npx @celo/celo-composer@latest create -t farcaster-miniapp
| Provider | Description |
|---|---|
rainbowkit | Popular wallet connection UI (default) |
thirdweb | thirdweb Connect SDK |
none | No wallet provider |
| Option | Description |
|---|---|
hardhat | Hardhat development environment (default) |
foundry | Foundry development environment |
none | No smart contracts |
my-celo-app/
├── apps/
│ ├── web/ # Next.js application
│ │ ├── app/ # App router pages
│ │ ├── components/ # React components
│ │ └── ...
│ └── contracts/ # Smart contracts (if selected)
│ ├── contracts/ # Solidity files
│ ├── scripts/ # Deployment scripts
│ └── test/ # Contract tests
├── packages/
│ ├── ui/ # Shared UI components
│ └── utils/ # Shared utilities
├── pnpm-workspace.yaml # Workspace configuration
├── turbo.json # Turborepo configuration
└── package.json
cd my-celo-app
# Install dependencies
pnpm install
# Start development server
pnpm dev
# Build for production
pnpm build
If you selected Hardhat or Foundry:
# Navigate to contracts
cd apps/contracts
# Compile
npx hardhat compile
# Test
npx hardhat test
# Deploy to Celo Sepolia
npx hardhat run scripts/deploy.ts --network celoSepolia
# Navigate to contracts
cd apps/contracts
# Build
forge build
# Test
forge test
# Deploy to Celo Sepolia
forge script script/Deploy.s.sol --rpc-url https://forno.celo-sepolia.celo-testnet.org --broadcast
Create .env.local in apps/web/:
# Required for wallet connection
NEXT_PUBLIC_WC_PROJECT_ID=your_walletconnect_project_id
# Optional: Alchemy API key
NEXT_PUBLIC_ALCHEMY_API_KEY=your_alchemy_key
Create .env in apps/contracts/:
PRIVATE_KEY=your_private_key
CELOSCAN_API_KEY=your_celoscan_api_key
Create files in apps/web/app/:
// apps/web/app/my-page/page.tsx
export default function MyPage() {
return <div>My Custom Page</div>;
}
Add to apps/web/components/ or shared packages/ui/:
// apps/web/components/MyComponent.tsx
export function MyComponent() {
return <div>My Component</div>;
}
ZIP package — ready to use