create-sbc-app
Version:
Scaffold a new SBC App Kit project with one command.
254 lines (179 loc) • 7.38 kB
Markdown
# create-sbc-app
The easiest way to get started with SBC Account Abstraction. Create feature-complete applications with gasless transactions in seconds.
## Quick Start
```bash
# Create a new SBC app
npx create-sbc-app my-app
# Or specify a template directly
npx create-sbc-app my-app --template react
# Navigate to your app
cd my-app
# Install dependencies
pnpm install # or npm install
# Start development server
pnpm dev # or npm run dev
```
## CLI Options
```bash
Usage: npx create-sbc-app [project-directory] [options]
Create a new SBC App Kit project with an opinionated template
Arguments:
project-directory Directory to create the new app in
Options:
-V, --version output the version number
-t, --template <type> Template to use: react, react-dynamic, react-para, or react-turnkey
-c, --chain <chain> Chain to use: baseSepolia, base, or radiusTestnet
--api-key <apiKey> Your SBC API key for immediate configuration
--wallet <wallet> Wallet integration (not yet implemented)
-h, --help display help for command
Examples:
$ npx create-sbc-app my-app
$ npx create-sbc-app my-app --template react --chain radiusTestnet
$ npx create-sbc-app my-app --template react-dynamic --chain base
$ npx create-sbc-app my-app --template react-para --api-key your-key
$ npx create-sbc-app my-app --template react-turnkey --chain base
Available Templates:
- react React + Vite template with SBC integration
- react-dynamic React + Vite with Dynamic wallet integration
- react-para React + Vite with Para wallet integration
- react-turnkey React + Vite + Express backend with Turnkey embedded wallets
Available Chains:
- baseSepolia Base Sepolia testnet (default)
- base Base mainnet
- radiusTestnet Radius testnet (react template only - not supported by Dynamic, Para, or Turnkey)
```
## ✨ Features
The React template includes comprehensive, production-ready examples:
### 🔋 Core Functionality
- **Smart Account Management** - Automatic account creation and management
- **Gasless Transactions** - Send ETH and interact with contracts without gas fees
- **Gas Estimation** - Preview transaction costs before sending
- **Batch Transactions** - Send multiple operations in a single transaction
- **Real-time Balance Tracking** - Monitor account balances and transaction status
- **Error Handling** - Comprehensive error messages and recovery suggestions
### 🎨 User Experience
- **Modern UI Design** - Beautiful, responsive interfaces
- **Form Validation** - Real-time address and input validation
- **Loading States** - Clear feedback during operations
- **Success/Error Feedback** - Visual confirmation of transaction status
- **Block Explorer Integration** - Direct links to view transactions
- **Copy-to-Clipboard** - Easy address and hash copying
### 🛠️ Developer Experience
- **TypeScript Support** - Full type safety
- **Environment Configuration** - Secure API key and settings management
- **Debug Logging** - Comprehensive development logging
- **Hot Reload** - Fast development iteration
- **Production Ready** - Optimized builds and deployment preparation
## 🚀 Templates
### React Template (Default)
**Best for:** Client-side applications, rapid prototyping, and production use
```bash
npx create-sbc-app my-app
```
**Supported Chains:** Base Sepolia, Base, Radius Testnet
**Features:**
- Fast development setup
- Hot module replacement
- Direct wallet connection (MetaMask, Coinbase, WalletConnect)
- Built-in testing framework
- Easy deployment to static hosts
- Modern React patterns and hooks
### React + Dynamic Template
**Best for:** Applications requiring embedded wallets with social logins
```bash
npx create-sbc-app my-app --template react-dynamic
```
**Supported Chains:** Base Sepolia, Base (Radius Testnet not supported)
**Features:**
- Dynamic SDK integration for embedded wallets
- Social login support (Google, Twitter, Discord, etc.)
- Email/SMS wallet creation
- All standard SBC features
**Additional Requirements:** Dynamic Environment ID from [Dynamic Dashboard](https://app.dynamic.xyz/)
### React + Para Template
**Best for:** DeFi applications leveraging EIP-2612 permits
```bash
npx create-sbc-app my-app --template react-para
```
**Supported Chains:** Base Sepolia, Base (Radius Testnet not supported)
**Features:**
- Para wallet integration
- EIP-2612 permit signatures
- Gasless token approvals
- All standard SBC features
**Additional Requirements:** Para API Key from [Para](https://para.xyz/)
### React + Turnkey Template
**Best for:** Production applications requiring embedded wallets with biometric authentication and backend infrastructure
```bash
npx create-sbc-app my-app --template react-turnkey
```
**Supported Chains:** Base Sepolia, Base (Radius Testnet not supported)
**Features:**
- Turnkey embedded wallet integration with passkey authentication
- Express backend server for secure Turnkey API operations
- Two authentication methods: biometric passkeys (Face ID/Touch ID) or wallet connection (MetaMask/Coinbase)
- Account history and multi-account management
- Full-stack development with `dev:fullstack` script
- ERC-4337 smart accounts with gasless transactions
- All standard SBC features
**Additional Requirements:**
- Turnkey Organization ID and API Keys from [Turnkey Dashboard](https://app.turnkey.com)
- Backend deployment for production use (Railway, Render, Vercel, etc.)
**Architecture:**
- Frontend: React + Vite (port 5173)
- Backend: Express server (port 3001)
- Runs both services concurrently with `npm run dev:fullstack`
## 📝 Configuration
### Environment Variables
The template includes comprehensive environment configuration:
#### Required
```bash
# Your SBC API key (get from SBC dashboard)
VITE_SBC_API_KEY=your_api_key_here
# Supported chains: "baseSepolia" | "base" | "radiusTestnet"
VITE_CHAIN="baseSepolia"
```
## 📱 UI Components
The template includes:
- Account information display with copy functionality
- Transaction forms with validation
- Gas estimation interfaces
- Success/error feedback with block explorer links
- Responsive design with dark mode support
## 🚀 Development Workflow
### 1. Create Your App
```bash
npx create-sbc-app my-sbc-app
cd my-sbc-app
```
### 2. Set Up Environment
```bash
# Copy environment template
cp .env.template .env
# then ensure your .env has the environment variables set up
# Supported chains: "baseSepolia" | "base" | "radiusTestnet"
VITE_CHAIN="baseSepolia"
# Custom RPC URL (optional) - e.g. get one from Alchemy at https://dashboard.alchemy.com/apps
VITE_RPC_URL=
# Get your SBC API Key at https://dashboard.stablecoin.xyz
VITE_SBC_API_KEY=
```
### 3. Start Development
```bash
npm install
npm run dev
```
### 4. Test Features
- Connect and view your smart account
- Try sending test transactions
- Experiment with gas estimation
- Test batch transactions
### 5. Customize and Build
- Modify the UI to match your needs
- Add your own smart contract interactions
- Build for production
## 📚 Documentation
- **[SBC Documentation](https://docs.stablecoin.xyz)** - Official docs
- **[GitHub Repository](https://github.com/stablecoinxyz/app-kit)** - AppKit API Reference. Source code and examples
## 📄 License
MIT - Built with ❤️ by the SBC team