Practical, tested recipes for Polkadot SDK development
Browse Recipes • Contribute a Recipe • Documentation
The Polkadot Cookbook provides recipes across 5 pathways of Polkadot development:
Build custom FRAME pallets and runtime logic with Rust.
| Recipe | Description | Difficulty |
|---|---|---|
| Basic Pallet | Create a custom FRAME pallet with storage and events |
Deploy and interact with Solidity contracts using pallet-revive.
| Recipe | Description | Difficulty |
|---|---|---|
| Simple Counter | A simple counter smart contract using pallet-revive |
Single-chain transaction submission and state queries with PAPI.
| Recipe | Description | Difficulty |
|---|---|---|
| Coming soon | Balance transfers, batch operations, proxy calls | - |
Asset transfers and cross-chain communication with Chopsticks.
| Recipe | Description | Difficulty |
|---|---|---|
| Teleport Assets | Teleport assets between parachains using XCM v5 and PAPI |
Zombienet and Chopsticks configurations for network testing.
| Recipe | Description | Difficulty |
|---|---|---|
| Coming soon | Parachain test network, fork testing setups | - |
![]()
Want to share your knowledge? See Contributing a Recipe
Each recipe is self-contained with working code and tests:
git clone https://github.com/polkadot-developers/polkadot-cookbook.git
cd polkadot-cookbook/recipes/basic-pallet
# Run tests
cargo test
# Build the pallet
cargo build --releaseDownload pre-built binary (Recommended):
# Linux (x86_64)
curl -L https://github.com/polkadot-developers/polkadot-cookbook/releases/latest/download/dot-linux-amd64.tar.gz | tar xz
sudo mv dot /usr/local/bin/
# macOS (Apple Silicon)
curl -L https://github.com/polkadot-developers/polkadot-cookbook/releases/latest/download/dot-macos-apple-silicon.tar.gz | tar xz
sudo mv dot /usr/local/bin/Or build from source:
cargo build --release --bin dot
# Binary will be at ./target/release/dot# Setup and verify your environment
dot setup
dot doctor
# Create a new recipe (interactive mode)
dot recipe create
# Test your recipe
dot recipe test my-pallet
# Validate recipe structure
dot recipe validate my-pallet
# Run linting checks
dot recipe lint my-pallet
# List all recipes
dot recipe list
# Submit your recipe as a pull request
dot recipe submit my-palletThe CLI supports five recipe pathways:
- Runtime Development - Build custom FRAME pallets with Rust
- Smart Contracts - Deploy Solidity contracts with pallet-revive
- Basic Interactions - Single-chain transactions with PAPI (TypeScript)
- XCM - Cross-chain messaging with Chopsticks (TypeScript)
- Testing Infrastructure - Zombienet and Chopsticks configurations
Interactive CLI Features:
Title-first workflow (auto-generates slugs)
Difficulty levels (Beginner/Intermediate/Advanced)
Content types (Tutorial/Guide)
Automatic git branch creation
Automatic dependency installation
New: No proposal required! Submit recipes directly via PR using the dot recipe submit command.
See CONTRIBUTING.md for the complete guide.
- Contributing Guide - How to create and submit recipes
- CLI Tool - Command-line tool for creating recipes
- SDK Library - Programmatic API for tool developers
- Architecture - System design and architecture
- Testing - Testing guide
- Workflows - CI/CD and automation
We welcome all contributions:
Recipe - Share your Polkadot knowledge (most welcome!)
Bug Report - Help us improve
Feature - Suggest tooling improvements
Documentation - Make things clearer
See CONTRIBUTING.md to get started.
MIT OR Apache-2.0

