Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
152 changes: 152 additions & 0 deletions polkadot-development-tools.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
# Polkadot Development Tools & Resources

_Comprehensive toolkit for building on Polkadot ecosystem_

## Core Development Stack (2025)

| Tool | Type | Description | Use Case | Link |
|------|------|-------------|----------|------|
| **PAPI** | Client Library | TypeScript client, light client first, strongly typed | Frontend & Node dApps | [papi.how](https://papi.how) |
| **Dedot** | Client Library | Lightweight, tree-shakable JS client with multi-chain support | Lean multi-chain dApps | [dedotdev/dedot](https://github.com/dedotdev/dedot) |
| **ReactiveDOT** | Frontend Layer | Reactive bindings over PAPI for smooth UI data flows | React/Vue applications | [reactivedot.dev](https://reactivedot.dev/) |
| **kitdot** | Development Tool | Quick project initialization with Hardhat + Polkadot setup | Rapid project setup & configuration | [kitdot](https://www.npmjs.com/package/kitdot) |
| **POP CLI** | Development Tool | Scaffolds chains and contracts, automates local networks | Project scaffolding & deployment | [onpop.io](https://onpop.io/) |
| **Polkadot Deployment Portal** | Deployment Platform | Guided rollup deployment with progress monitoring | Testnet/mainnet rollups | [deploypolkadot.xyz](https://www.deploypolkadot.xyz/) |
| **Paraspell** | XCM SDK | Unified XCM interface supporting PAPI and polkadot.js | Cross-chain transfers | [paraspell/xcm-tools](https://github.com/paraspell/xcm-tools) |
| **Bagpipes** | No-Code Builder | Drag-and-drop cross-chain workflows | Demos & operations | [bagpipes.io](https://bagpipes.io/) |
| **Chopsticks** | Testing Tool | Fork live networks locally for safe testing | Pre-mainnet validation | [AcalaNetwork/chopsticks](https://github.com/AcalaNetwork/chopsticks) |

## Development Environments

| Tool | Type | Description | Best For | Link |
|------|------|-------------|-----------|------|
| **Remix IDE** | Browser IDE | Web-based smart contract development | Quick prototyping | [remix.polkadot.io](https://remix.polkadot.io) |
| **Hardhat** | Development Framework | Local development environment with testing | Complex projects | [hardhat.org](https://hardhat.org/) |
| **Foundry** | Development Toolchain | Smart contract development and testing | Advanced development | [getfoundry.sh](https://getfoundry.sh/) |

## Wallets & Connectivity

| Wallet | Type | Description | Features | Link |
|--------|------|-------------|----------|------|
| **Talisman** | Browser/Mobile | Multi-chain wallet for Polkadot & Ethereum | Substrate + EVM support | [talisman.xyz](https://talisman.xyz/) |
| **Nova Wallet** | Mobile | Next-gen iOS & Android wallet | Advanced staking features | [novawallet.io](https://novawallet.io/) |
| **SubWallet** | Browser/Mobile | Comprehensive Polkadot ecosystem wallet | Multi-chain support | [subwallet.app](https://www.subwallet.app/) |
| **Polkagate** | Browser Extension | Easy-to-use Polkadot extension | Simple interface | [polkagate.xyz](https://polkagate.xyz/) |
| **MetaMask** | Browser Extension | Standard Ethereum wallet | EVM compatibility | [metamask.io](https://metamask.io/) |
| **Fearless Wallet** | Mobile/Browser | DeFi-focused wallet | DeFi integrations | [fearlesswallet.io](https://fearlesswallet.io/) |
| **Polkadot Vault** | Mobile | Air-gapped cold storage | Maximum security | [signer.parity.io](https://signer.parity.io/) |

## Frontend Libraries

| Library | Language | Description | Use Case | Link |
|---------|----------|-------------|----------|------|
| **Ethers.js** | JavaScript | Contract interaction library | Standard Web3 apps | [docs.ethers.org](https://docs.ethers.org/) |
| **Web3.js** | JavaScript | Web3 interaction library | Legacy Web3 apps | [web3js.org](https://web3js.org/) |
| **Viem** | TypeScript | Modern Web3 library | Type-safe development | [viem.sh](https://viem.sh/) |
| **Wagmi** | React | React hooks for Web3 | React applications | [wagmi.sh](https://wagmi.sh/) |
| **Web3.py** | Python | Python Web3 library | Python backends | [web3py.readthedocs.io](https://web3py.readthedocs.io/) |
| **Polkadart** | Dart | Dart library for Polkadot | Flutter applications | [leonardocustodio/polkadart](https://github.com/leonardocustodio/polkadart) |

## Smart Contract Development

| Tool | Language | Description | Use Case | Link |
|------|----------|-------------|----------|------|
| **ink!** | Rust | Rust smart contract language | Native Polkadot contracts | [use.ink](https://use.ink/) |
| **Solidity** | Solidity | Ethereum-compatible contracts | EVM-compatible development | [soliditylang.org](https://soliditylang.org/) |
| **OpenZeppelin (Polkadot)** | Solidity | Size-optimized contract library | Standard implementations | [papermoonio/openzeppelin-contracts-polkadot](https://github.com/papermoonio/openzeppelin-contracts-polkadot) |
| **PAPI ink! Support** | TypeScript | Type-safe ink! contract interaction | ink! frontend integration | [papi.how/ink](https://papi.how/ink) |

## Testing & Simulation

| Tool | Type | Description | Use Case | Link |
|------|------|-------------|----------|------|
| **Chopsticks** | Network Fork | Fork live networks for testing | Safe testing environment | [AcalaNetwork/chopsticks](https://github.com/AcalaNetwork/chopsticks) |
| **Zombienet** | Network Simulator | Ephemeral test networks | Multi-node testing | [paritytech/zombienet](https://github.com/paritytech/zombienet) |
| **Simnode** | Testing Framework | Simulation testing for parachains | Parachain testing | [polytope-labs/sc-simnode](https://github.com/polytope-labs/sc-simnode) |
| **Fudge** | Database Tool | Interact with Substrate databases | Database manipulation | [centrifuge/fudge](https://github.com/centrifuge/fudge) |

## Monitoring & Analytics

| Tool | Type | Description | Use Case | Link |
|------|------|-------------|----------|------|
| **Subscan** | Block Explorer | Comprehensive blockchain explorer | Transaction monitoring | [subscan.io](https://subscan.io/) |
| **Statescan** | Block Explorer | Alternative blockchain explorer | Block exploration | [statescan.io](https://www.statescan.io/) |
| **Polkawatch** | Analytics | Decentralization measurement tool | Network analysis | [polkawatch.app](https://polkawatch.app/) |
| **Ocelloids** | Data Streaming | Real-time data streams for multi-chain | Cross-chain monitoring | [ocelloids.net](https://www.ocelloids.net/) |
| **XCM Tracker** | XCM Monitor | Track cross-chain messages | XCM debugging | [xcm-tracker.ocelloids.net](https://xcm-tracker.ocelloids.net/) |

## Infrastructure & Deployment

| Tool | Type | Description | Use Case | Link |
|------|------|-------------|----------|------|
| **Polkadot Cloud** | Cloud Platform | Managed Polkadot infrastructure | Production deployment | [polkadot.cloud](https://polkadot.cloud/) |
| **Substrate Connect** | Light Client | Browser-based light client | Decentralized apps | [substrate.io/developers/substrate-connect](https://substrate.io/developers/substrate-connect/) |
| **Smoldot** | Light Client | Alternative light client implementation | Embedded applications | [smol-dot/smoldot](https://github.com/smol-dot/smoldot) |

## Cross-Chain & Interoperability

| Tool | Type | Description | Use Case | Link |
|------|------|-------------|----------|------|
| **XCM Playground** | Development Tool | Test XCM functionality | XCM development | [paraspell/xcm-tools](https://github.com/paraspell/xcm-tools) |
| **Snowbridge** | Bridge | Ethereum <> Polkadot bridge | ETH interoperability | [Snowfork/snowbridge](https://github.com/Snowfork/snowbridge) |
| **Bagpipes** | Workflow Builder | No-code XCM workflow builder | Cross-chain operations | [xcmsend.com](https://xcmsend.com/) |

## Utilities & Helpers

| Tool | Type | Description | Use Case | Link |
|------|------|-------------|----------|------|
| **SS58 Transform** | Address Tool | Convert between address formats | Address conversion | [polkadot.subscan.io/tools/ss58_transform](https://polkadot.subscan.io/tools/ss58_transform) |
| **Polkadot Faucet** | Testnet Tool | Get testnet tokens | Development testing | [faucet.polkadot.io](https://faucet.polkadot.io/) |
| **Sub.ID** | Identity Tool | Unified identity across chains | Identity management | [sub.id](https://sub.id/) |
| **Multix** | Multisig Tool | Simple multisig management | Multi-signature wallets | [multix.chainsafe.io](https://multix.chainsafe.io/) |

## Community Tools

| Tool | Type | Description | Use Case | Link |
|------|------|-------------|----------|------|
| **Polkassembly** | Governance | Discussion platform for proposals | Governance participation | [polkadot.polkassembly.io](https://polkadot.polkassembly.io/) |
| **Subsquare** | Governance | Proposal discussion and voting | Community governance | [subsquare.io](https://www.subsquare.io/) |
| **Staking Dashboard** | Staking Tool | Participate in staking | Token staking | [staking.polkadot.network](https://staking.polkadot.network/) |
| **DotApps** | Portal | Polkadot ecosystem app directory | App discovery | [dotapps.io](https://dotapps.io/) |

## Development Resources

| Resource | Type | Description | Link |
|----------|------|-------------|------|
| **Polkadot Docs** | Documentation | Official development documentation | [docs.polkadot.com](https://docs.polkadot.com/) |
| **Substrate Docs** | Documentation | Substrate framework documentation | [docs.substrate.io](https://docs.substrate.io/) |
| **Polkadot Wiki** | Knowledge Base | Comprehensive ecosystem guide | [wiki.polkadot.network](https://wiki.polkadot.network/) |
| **OpenGuild Learning** | Education | Rust and Polkadot learning platform | [openguild.wtf/learn](https://openguild.wtf/learn) |
| **DotCodeSchool** | Education | Web3 development tutorials | [dotcodeschool.com](https://dotcodeschool.com/) |

## Template Projects

| Template | Technology | Description | Link |
|----------|------------|-------------|------|
| **create-polkadot-dapp** | React + Hardhat | Full-stack dApp template | [create-polkadot-dapp](https://www.npmjs.com/package/create-polkadot-dapp) |
| **hardhat-polkadot-example** | Hardhat | Smart contract examples | [UtkarshBhardwaj007/hardhat-polkadot-example](https://github.com/UtkarshBhardwaj007/hardhat-polkadot-example) |
| **Polkadot Next.js** | Next.js | Frontend starter template | [niklasp/polkadot-nextjs-starter](https://github.com/niklasp/polkadot-nextjs-starter) |
| **Uniswap V2 Port** | Solidity | DeFi protocol example | [papermoonio/uniswap-v2-polkadot](https://github.com/papermoonio/uniswap-v2-polkadot) |

## Recommended Development Stack

### For Beginners
- **IDE:** Remix IDE (browser-based)
- **Wallet:** Talisman or MetaMask
- **Testing:** Built-in Remix tools
- **Resources:** Official tutorials and documentation

### For Experienced Developers
- **Framework:** Hardhat + @parity/hardhat-polkadot
- **Client Library:** PAPI or Dedot
- **Frontend:** ReactiveDOT for React/Vue
- **Testing:** Chopsticks for network forking
- **Deployment:** POP CLI → Polkadot Deployment Portal
- **Cross-chain:** Paraspell XCM SDK

### For Production Applications
- **Infrastructure:** Polkadot Cloud
- **Monitoring:** Subscan + custom analytics
- **Security:** Multi-signature wallets
- **Cross-chain:** Battle-tested bridges (Snowbridge)
- **User Experience:** Light client integration
27 changes: 27 additions & 0 deletions polkadot-hub-devs.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,17 @@ Please provide **feedback** on your experience deploying smart contracts on Polk

*Refer to the [**known issues**](https://docs.google.com/document/d/1j5hnQZRqlbVagW28dC24OVAF8uRih5jWubBxy5PlMYc/edit?usp=sharing) document if you're running into issues deploying contracts or using any of the tools below. If you have a new bug or problem, please raise an issue in the [Contracts Bug tracker](https://github.com/paritytech/contract-issues) on Github.*

### ⚡ Quick Start with kitdot

Use [**kitdot**](https://www.npmjs.com/package/kitdot) to initialize your project with zero configuration:

```bash
npx kitdot@latest init my-project
cd my-project
```

**Why kitdot?** Eliminates setup headaches with automatic Hardhat + Polkadot configuration, proper network settings, correct dependencies, and multiple project templates. Includes AI agent context files (see [AI Configuration](#vibe-coding-with-ai-llm-configuration-helper) below). Perfect for hackathons and rapid development.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since kitdot is a library, I think it makes sense to list it alongside the other libraries on this page. I'd remove as much boilerplate as possible so we can keep the survival guide minimal. The same applies to polkadot-development-tools; it seems a bit redundant to include that file since most of those tools are listed here.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the feedback @nhussein11 , I had just addressed kitdot with minimal changes

### 🚀 Quick Start with DevContainers

- To speed things up and have your "batteries included" dev environment, you can use [DevContainers](https://code.visualstudio.com/docs/devcontainers/containers). They are regularly maintained and tested by the ecosystem professionals. You can find the configuration for Polkadot smart contract development in the [smart-contracts-devcontainer](https://github.com/paritytech/smart-contracts-devcontainer) repository.
Expand Down Expand Up @@ -51,6 +62,18 @@ Several libraries can be used to interact with smart contracts deployed on Polka

- ⚒️ [**Pop CLI**](https://learn.onpop.io/welcome/hackathon-guide#contract-development)

### 🛠️ Comprehensive Development Tools & Resources

For a complete reference of Polkadot development tools, libraries, and infrastructure, see the [**Polkadot Development Tools Guide**](polkadot-development-tools.md). This comprehensive resource includes:

- **Core Development Stack**: PAPI, Dedot, ReactiveDOT, kitdot, POP CLI
- **Development Environments**: Remix, Hardhat, Foundry configurations
- **Wallets & Connectivity**: Talisman, Nova, SubWallet, Polkagate
- **Frontend Libraries**: Ethers.js, Viem, Wagmi, PAPI integrations
- **Testing & Deployment**: Chopsticks, Zombienet, deployment portals
- **Cross-Chain Tools**: XCM SDK, Paraspell, Bagpipes
- **Monitoring & Analytics**: Subscan, Statescan, XCM Tracker

### 📚 Tutorials and Guides

Here you can find some useful tutorials and resources to help you get started with smart contract development on Polkadot:
Expand All @@ -77,6 +100,8 @@ Here you can find some useful tutorials and resources to help you get started wi

You can use any **Ethereum-compatible wallet** wallet to connect to Polkadot Hub Testnet. Follow the [Connect your Wallet](https://docs.polkadot.com/develop/smart-contracts/connect-to-polkadot/) guide to connect using MetaMask. We also recommend using [Talisman](https://talisman.xyz/), which is built for both Polkadot and Ethereum.

**Quick Setup**: Use [**Chainlist**](https://chainlist.org/?search=passet) to automatically configure Passet Hub in your wallet with one click.

```
Testnet details:
* Network name: Passet Hub
Expand Down Expand Up @@ -106,4 +131,6 @@ Jumpstart your **smart contract dApp** with these templates:

- If using AI tools like LLMs, remember to direct them to use the most [up-to-date documentation](https://docs.polkadot.com/).

- **For AI Coding Assistants**: Use the [**Agents.md**](https://github.com/w3b3d3v/kitdot/blob/main/templates/llms/AGENTS.md) file as context for your coding agents (Claude Code, Cursor, etc.). This comprehensive guide includes network configurations, deployment strategies, common errors, and troubleshooting steps. Copy it to your project root or reference it in your AI assistant's context. **Note:** kitdot automatically includes this file in new projects.

- Especially if you are using Claude, [this document](https://www.kusamahub.com/downloads/LLMCONTRACTS.md) contains configuration settings for using the testnet to deploy smart contracts, and we recommend informing your LLM to refer to it.