A powerful CLI tool to generate starter applications with Dynamic's web3 authentication. Quickly bootstrap projects using your preferred frameworks, libraries, and blockchain networks.
- Create Dynamic App
You can use Create Dynamic App directly with npx:
npx create-dynamic-app my-project-name
Or install it globally:
npm install -g create-dynamic-app
create-dynamic-app my-project-name
# Create a new project with interactive prompts
npx create-dynamic-app my-web3-app
# Follow the prompts to select:
# 1. Framework (Next.js, React, React Native)
# 2. Blockchain chains to support
# 3. Library preferences (Viem/Ethers, Wagmi)
- Multiple Framework Support: Generate applications using Next.js, React, or React Native
- Blockchain Flexibility: Choose from 7 different blockchain networks to include
- Library Options: Select your preferred Ethereum libraries (Viem or Ethers.js)
- Wagmi Integration: Optional Wagmi support for enhanced React hooks
- Ready-to-use Components: Includes auth components and chain-specific utility methods
- Dark/Light Mode: Built-in theme support that respects system preferences
The CLI supports the following blockchain networks:
Chain | Package | Features |
---|---|---|
Ethereum | @dynamic-labs/ethereum |
Full wallet connection, signing, transactions |
Solana | @dynamic-labs/solana |
Wallet connection, signing, program interactions |
Flow | @dynamic-labs/flow |
Wallet integration and authentication |
Starknet | @dynamic-labs/starknet |
Layer 2 integration and account management |
Algorand | @dynamic-labs/algorand |
Wallet connection and transaction signing |
Cosmos | @dynamic-labs/cosmos |
Multi-chain Cosmos ecosystem support |
Bitcoin | @dynamic-labs/bitcoin |
Basic Bitcoin wallet connectivity |
- Next.js: Server-side rendering, file-based routing, optimized for production
- React: Client-side SPA with Create React App configuration
- React Native: Mobile application support with Expo
When including Ethereum support, you can choose:
- Viem: Modern, lightweight TypeScript library for Ethereum
- Ethers.js: Popular, full-featured Ethereum library
- Wagmi: React hooks for Ethereum (can be combined with either Viem or Ethers)
# To create a specific Next.js project
npx create-dynamic-app my-next-app --framework nextjs --chains ethereum,solana --library viem --wagmi
# To create a specific React project
npx create-dynamic-app my-react-app --framework react --chains ethereum --library ethers
# Generate all variations for testing
npm run generate:all
The generated projects follow best practices for their respective frameworks:
my-next-app/
├── app/ # Next.js app directory
│ ├── components/ # React components
│ ├── page.tsx # Main application page
│ └── layout.tsx # Root layout
├── lib/ # Utility functions
│ ├── dynamic.ts # Dynamic SDK exports
│ ├── providers.tsx # Context providers
│ └── wagmi.ts # Wagmi configuration (if selected)
├── public/ # Static assets
└── package.json # Dependencies and scripts
my-react-app/
├── public/ # Static assets
├── src/ # Source code
│ ├── App.js # Main application component
│ ├── Main.js # Content component
│ ├── Methods.js # Chain-specific utility methods
│ └── index.js # Application entry point
└── package.json # Dependencies and scripts
Issue: Error installing dependencies with npm
Solution: Try using --legacy-peer-deps
flag or use yarn:
cd my-dynamic-project
npm install --legacy-peer-deps
Issue: Conflicts with Solana dependencies Solution: The generator adds necessary overrides. If you have issues, manually set:
"overrides": {
"rpc-websockets": "7.10.0",
"@solana/web3.js": "1.91.6"
}
Issue: Environment ID is missing Solution: Replace the placeholder in providers.tsx/App.js:
environmentId: "YOUR_ENVIRONMENT_ID", // Get from Dynamic dashboard
Contributions are welcome! To contribute:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Make your changes
- Run tests and linting (
npm run lint && npm test
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
ISC License - see the LICENSE file for details.