用途
Celo Composer 用于通过预配置模板快速搭建 Celo dApp。适用场景包括:启动新的 Celo 项目、创建 MiniPay 小程序、设置 Farcaster Miniapp,以及需要预配置的 Next.js + Web3 开发环境时。
主要能力
模板
| 模板 | 说明 | 使用场景 |
|---|---|---|
| basic | 标准 Next.js 14+ dApp | 通用 Web3 应用 |
| minipay | 移动优先的 MiniPay 应用 | MiniPay 小程序 |
| farcaster-miniapp | Farcaster SDK + Frame | Farcaster 集成 |
| ai-chat | 独立聊天应用 | AI 驱动的 dApp |
配置选项
钱包提供方:
| 提供方 | 说明 |
|---|---|
| rainbowkit | 常用的钱包连接 UI(默认) |
| thirdweb | thirdweb Connect SDK |
| none | 不使用钱包提供方 |
智能合约:
| 选项 | 说明 |
|---|---|
| hardhat | Hardhat 开发环境(默认) |
| foundry | Foundry 开发环境 |
| none | 不使用智能合约 |
使用方式
快速开始
交互模式:
npx @celo/celo-composer@latest create
按提示选择选项。
指定项目名称:
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
创建 MiniPay 应用:
npx @celo/celo-composer@latest create -t minipay
创建 Farcaster Miniapp:
npx @celo/celo-composer@latest create -t farcaster-miniapp
项目结构
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
使用合约
如果选择了 Hardhat 或 Foundry:
Hardhat:
# 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
Foundry:
# 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
环境变量
在 apps/web/ 中创建 .env.local:
# 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
在 apps/contracts/ 中创建 .env:
PRIVATE_KEY=your_private_key
CELOSCAN_API_KEY=your_celoscan_api_key
自定义
添加新页面,在 apps/web/app/ 中创建文件:
// apps/web/app/my-page/page.tsx
export default function MyPage() {
return <div>My Custom Page</div>;
}
添加组件,放到 apps/web/components/ 或共享的 packages/ui/:
// apps/web/components/MyComponent.tsx
export function MyComponent() {
return <div>My Component</div>;
}
技术栈
- 框架:Next.js 14+ 配合 App Router
- 样式:Tailwind CSS
- 组件:shadcn/ui
- Monorepo:Turborepo + PNPM workspaces
- 语言:TypeScript
- Web3:viem + wagmi(或 thirdweb)
要求
- Node.js 18.0.0 或更高版本
- PNPM(推荐)或 npm/yarn
其他资源
- templates.md - 详细的模板文档
限制
关于收费、价格、平台支持范围等信息,资料中暂未提供。