create-avalanche-app

Scaffold a batteries-included Avalanche dapp: social-login onboarding, deploy-ready, AI-native.

Usage

$ npm create avalanche-app@latest

Or non-interactively:

$ npm create avalanche-app@latest my-app -- --template nft-mint --yes

What you get

Every generated app ships with:

  • A social-login wallet via @avakit/react (plus injected wallets)
  • shadcn/ui with dark/light wired from day one
  • Deploy-ready contracts (where applicable) with bundled bytecode
  • AI context: CLAUDE.md, llms.txt, and .cursor/rules

Templates

Minimalminimal
The smallest real dapp: connect a wallet, read your balance, send a transaction.
NFT mintnft-mint
Deploy an ERC-721 straight from the browser, then mint. No Foundry required to run it.
Token-gated apptoken-gated-app
Unlock content for holders of an access-pass NFT. Deploy, mint, and the gate opens.
ERC-20 tokenerc20-token
Deploy your own ERC-20 from the browser, mint supply, and transfer.
ICM cross-chain messengericm-messenger
Send a message between two Avalanche L1s with Interchain Messaging, over a one-command local devnet.
Confidential token (eERC)eerc-token
Register, mint, and privately transfer tokens with hidden balances using Avalanche's Encrypted ERC standard.
Launch your own L1l1-launch
Spin up your own Avalanche L1 with one command, then explore blocks, send transactions, and deploy a contract in a built-in dashboard.
Cross-chain token bridge (ICTT)token-bridge
Bridge an ERC-20 between two Avalanche L1s with Interchain Token Transfer, over a one-command local devnet.

Next steps

The CLI prints the exact next steps for your choices. Two things vary:

  • Social login works on localhost via a bundled demo key, so there is nothing to set up to try it. Only your own deployment needs a client id — then copy .env.example to .env.local and add it.
  • The icm-messenger, l1-launch, and token-bridge templates run a local devnet first: pnpm run devnet / pnpm run l1 / pnpm run bridge before pnpm dev. These need avalanche-cli and a Unix-like shell (macOS, Linux, or WSL2 on Windows).
The devnet templates use distinct local chain names — icm1/icm2 for icm-messenger and br1/br2 for token-bridge — so you can run both at once. If a stale local network blocks a deploy, reset with avalanche network clean or rebuild in one step with CLEAN=1 pnpm run devnet (or l1 / bridge).

Options

-t, --template <id>     minimal | nft-mint | token-gated-app | erc20-token |
                        icm-messenger | eerc-token | l1-launch | token-bridge
-c, --chain <id>        fuji | c-chain           (default: fuji)
    --pm <manager>      pnpm | npm | yarn | bun
-y, --yes               skip prompts (non-interactive)
    --no-install        do not install dependencies
    --no-telemetry      opt out of anonymous usage counting (persisted)
    --telemetry         opt back in (persisted)

Telemetry

The CLI counts scaffolds anonymously — which template you picked and whether it worked, never your project name, paths, or code. It says so on the first run, and AVAKIT_TELEMETRY_DISABLED=1 turns it off. See Telemetry for the exact payload and the reasoning.