Minimal React + Vite + TypeScript template wired to the Host API for account access from Polkadot Desktop. A starting point for building Polkadot dapps.
A live deployment runs at playground.dot.li — open it inside Polkadot Desktop to see the template connect to the Host API, surface your SS58 + EVM (H160) addresses, and sign a message end-to-end.
This repo is meant to be forked, gutted, and turned into your own dapp. The pieces you'll most likely want to swap or extend:
- Account panel (src/App.tsx) — replace the address display + sign demo with whatever your app actually does. The
SignDemocomponent is a working reference for callingsignerManager.signRaw(...)once you have a selected account. - App shell (src/App.tsx, src/App.css) — header, layout, and theme are intentionally tiny so you can rip them out. The
#root { max-width: 520px }cap is just a default; widen or remove it for dashboards / multi-column layouts. - Stack additions —
polkadot-apifor chain RPC,@polkadot-apps/bulletinfor off-chain storage,@dotdm/cdmfor smart contracts,@polkadot-apps/statement-storefor P2P pub/sub. See CLAUDE.md for the full stack table.
When you're ready, deploy your fork to your own <name>.dot domain (see below) — no servers, no hosting bill.
- React 19 + Vite + TypeScript
@polkadot-apps/signer— Host API login
npm install
npm run devRuns on http://localhost:5173. Must be opened inside Polkadot Desktop for Host API login to work.
src/
├── App.tsx # Header + account selector + your app shell
├── utils.ts # SignerManager + small helpers
└── main.tsx # Vite entry
A /deploy <name> slash command is wired up for Claude Code users — it runs dot deploy against <name>.dot using the phone signer. Standalone:
npm run build
dot deploy --no-build --buildDir dist --domain <name>.dot --signer phone --playground