The fastest way to create Solana apps π
Run one command to generate a new project:
# npm
npm create solana-dapp@latest
# pnpm
pnpm create solana-dapp@latest
# bun
bun create solana-dapp@latest
# yarn (only supports the 'latest' tag)
yarn create solana-dappThis is a CLI that automates the initialization of predefined Solana templates (see below).
The official create-solana-dapp templates can be found in
this repository.
You can also use create-solana-dapp to create projects using external templates:
The --template (or -t) flag supports anything that giget supports
# npm
npm create solana-dapp@latest -t <github-org>/<github-repo>
# pnpm
pnpm create solana-dapp@latest -t <github-org>/<github-repo>
# yarn
yarn create solana-dapp -t <github-org>/<github-repo>Template authors can add an init script to the package.json file to help set up the project.
Use this script to return instructions to the user, check the anchor and solana versions, and replace text and files
in the project.
Pass template-defined options as boolean long flags when creating the project:
pnpm create solana-dapp@latest my-inference-app \
--template pay-gate-inference \
--ollamaWhen no flag is passed for an option group, the group's default option is selected. Passing another option from that
group, such as --llamacpp, replaces the default.
Contributions are welcome! Please see CONTRIBUTING.md for more info.
Tip
This project uses pnpm as the package manager. If you don't have it, you can install it using
corepack:
corepack enable
corepack prepare pnpm@10 --activateTo install the project locally, run the following commands:
git clone https://github.com/solana-foundation/create-solana-dapp.git
cd create-solana-dapp
pnpm install
pnpm buildDetailed instructions on the local development workflow are outlined in the Development Workflow section of the CONTRIBUTING guidelines.
{ "name": "your-template", "create-solana-dapp": { // These instructions will be returned to the user after installation "instructions": [ "Run Anchor commands:", // Adding a '+' will make the line bold and '{pm}' is replaced with the package manager "+{pm} run anchor build | test | localnet | deploy", ], // Optional. Force this template to use an installed package manager. // An explicitly selected different package manager will stop installation. "packageManager": "bun", // Rename is a map of terms to rename "rename": { // Rename every instance of counter "counter": { // With the name of the project "to": "{{name}}", // In the following paths "paths": ["anchor", "src"], }, }, // Optional. If omitted, the default Solana skill is installed. // Set to [] to skip skill installation, or provide one or more skill repo URLs to replace the default. "skills": ["https://github.com/org/skill-repo"], // Optional boolean CLI flags declared by this template. "options": { // `--ollama` is selected when no option in the "engine" group is passed. "ollama": { "default": true, "description": "Configure the template for Ollama", "group": "engine", "instructions": ["Start Ollama"], "rename": { "__MODEL__": { "to": "qwen3:0.6b", "paths": ["request.json"], }, }, }, // Passing `--llamacpp` replaces the default from the same group. "llamacpp": { "description": "Configure the template for llama.cpp", "group": "engine", "instructions": ["Start llama-server"], "rename": { "__MODEL__": { "to": "local-model", "paths": ["request.json"], }, }, }, }, // Check versions and give a warning if it's not installed or the version is lower "versions": { "adb": "33.0.0", "anchor": "0.30.1", "solana": "1.18.0", }, }, }