Start a working XCM app in minutes, with the stack and capabilities you choose.
Website · Documentation · XCM Tools
pnpm create-paraspellThe wizard helps you choose what to build, shows you the final setup, creates the project, and installs its dependencies. When it finishes:
cd my-xcm-app
pnpm devUse npm, Yarn, or Bun instead if that is what your project uses:
npm create paraspell@latest
yarn create paraspell
bun create paraspellRequires Node.js 24 or newer.
| XCM SDK | XCM API | |
|---|---|---|
| Best for | Calling ParaSpell directly in your app | Keeping XCM logic outside your app |
| Integration | PAPI, Polkadot.js, or Dedot | Package-less HTTP API |
| Apps | React, Vue, or Node.js | React, Vue, or Node.js |
The generated app comes with a transfer flow already wired up. Add any of these when you need them:
- Swap for cross-chain swaps
- EVM for EVM origin chains
- Snowbridge for transfers between Ethereum and Polkadot
React and Vue projects include a Vite app with wallet integration. Node.js projects include a headless Express server and optional development wallet setup.
The interactive flow asks only what matters for the project you selected:
- Choose XCM SDK or XCM API.
- Choose React, Vue, or Node.js.
- Pick a Polkadot client when using the SDK.
- Choose the Swap, EVM, and Snowbridge extensions you need.
- Name the project and choose a package manager.
- Optionally configure a development wallet for Node.js.
- Review everything before files are written.
Project creation and dependency installation include live progress. If installation fails, your generated project is kept and the CLI prints the manual command to continue.
Prefer explicit commands in CI or when you already know the setup you want:
# React app using the XCM SDK and PAPI
npx create-paraspell@latest sdk react \
--name my-xcm-app \
--client papi \
--package-manager pnpm
# Vue app using the XCM API with EVM origins and swaps
npx create-paraspell@latest api vue \
--name my-xcm-api \
--extensions evm,swap \
--package-manager npm
# Headless SDK server with swaps
npx create-paraspell@latest sdk node \
--name my-xcm-server \
--client dedot \
--extensions swapNon-interactive environments use sensible defaults and leave dependency installation as an explicit CI step.
create-paraspell --help
create-paraspell sdk --help
create-paraspell api --helpNode.js projects can write a Substrate mnemonic and EVM private key to the
generated .env. Wallet setup is optional, values are entered through masked
prompts, and .env is gitignored.
Use a development account such as //Alice. The generated Node.js server can
sign and submit live XCM transfers when you call POST /.
Avoid secret flags in shared shells or CI logs; command-line values may be saved
in shell history. Prefer the interactive prompt or edit .env yourself.
pnpm install
pnpm build
pnpm startUseful checks:
pnpm compile
pnpm lint
pnpm format:check
pnpm build
pnpm test
pnpm test --coverage
pnpm test:e2eMIT licensed.
