Here we provide a list of tools available for your development needs. They are sorted by context. If you're actively maintaining a tool that might be useful to other Polkadot, Kusama or Substrate developers, feel free to add it in.
- Polkadot-JS Apps Explorer - Polkadot dashboard block explorer. Currently connects to Kusama by default, but can be configured to connect to Polkadot, Westend, or other remote or local endpoints.
- Polkascan - Blockchain explorer for Polkadot, Kusama, and other related chains. Repo.
- Subscan - Blockchain explorer for Substrate chains. Repo.
See the Wallets page.
Network Monitoring & Reporting
- Polkadot Telemetry Service - Network information including what nodes are running the chain, what software versions they are running, sync status, and location.
- Polkabot - Polkadot network monitoring and reporting using Matrix (Riot / Element) chat. Users may create custom bot plugins. Blogpost.
- Ryabina's Telegram Bot - A Telegram bot for monitoring on-chain events of Substrate chains. Github Repository
- PolkaStats - Polkadot network statistics (includes Kusama). Shows network information and staking details from validators and intentions. Github Repository.
- Panic - A node monitoring and alert server for validators.
- OpenWeb3/Guardian - A CLI tool and JS library to monitor on chain states and events.
- Polkadot - The original Rust implementation of the Polkadot Host.
- Kagome - A C++ Polkadot implementation of the Polkadot Host developed by Soramitsu.
- Gossamer - A Go implementation of the Polkadot Host developed by ChainSafe Systems.
- TX Wrapper - Helper functions for offline transaction generation.
- Substrate - Blockchain development platform written in Rust. The Rust version of the Polkadot Host is being built with Substrate.
- Substrate Knowledge Base - Comprehensive documentation and tutorials for building a blockchain using Substrate.
- Substrate VSCode plugin.
- Substrate Debug Kit - A collection of debug tools and libraries around substrate chains. Includes tools to calculate NPoS elections offline, disk usage monitoring, test templates against chain state and other pallet-specific helper.
- Diener - A tool for easy changing of Polkadot or Substrate dependency versions.
- Polkadot Launch - A tool to easily launch custom local parachain-enabled Polkadot versions.
- Halva - A Truffle-inspired local development environment for Substrate.
- Fork-off Substrate - Copies the state of an existing chain into your local version and lets you further experiment on it.
- srtool - A tool for verifying runtime versions against on-chain proposal hashes.
- sub-bench - A tool to spam your node with transactions for the sake of benchmarking.
- sub-flood - A tool to benchmark Substrate by flooding it with requests.
- Polkadash - VueJS-based starter kit for custom user interfaces for Substrate chains. Tutorials.
- Polkadot JS Apps UI - Repository of the polkadot.js.org/apps UI.
- Substrate Front-end Template - ReactJS-based starter UI for custom user interfaces for Substrate chains.
- Polkadot JS Browser Extension - Key management in a Chrome extension.
Polkadot-JS Common provides various utility functions that are used across all projects in the
@polkadot namespace and is split into a number of internal utility packages. The documentation and
usage instructions are provided at
Polkadot-JS/Common API Documentation.
- @polkadot/util Utility functions like checking if a string is hex-encoded.
- @polkadot/util-crypto Useful cryptographic utilities for developing with Polkadot.
- @polkadot/api-cli Command line interface for the polkadot API. Documentation.
- @polkadot/monitor-rpc An RPC monitor for Polkadot. See the RPC tools below for additional information.
- @polkadot/signer-cli A Tool to construct, sign, and broadcast transactions. Signing can be done offline.
- Polkadot API Cpp - A С++ API for Polkadot, can
clip, a command line tool.
Webassembly related tools and projects.
- ink! - An eDSL to write WebAssembly based smart contracts using the Rust programming language.
- parity-wasm - Low-level WebAssembly format library.
- wasm-utils - Collection of WebAssembly utilities used in pwasm-ethereum and substrate contract development.
- wasmi - A WebAssembly interpreter conceived as a component of parity-ethereum (Ethereum-like contracts in Wasm) and Substrate.
RPC and API Tools
- @polkadot/api/rpc-provider Demonstrates how the JS tools interact with the node over RPC.
- RPC documentation - Documentation of Substrate RPC methods.
- Polkadot API Server by SimplyVC - A wrapper around the Polkadot API which makes it easier to make Polkadot API calls from any programming language.
- Go: Subscan API - Go API for Polkadot.
- C++ Polkadot API - С++ API for Polkadot.
- .NET Polkadot API - Polkadot Substrate API for .NET.
- Python Polkadot API - Polkadot library for Python.
- GSRPC - Substrate RPC client in Go, a.k.a. GSRPC.
- Substrate API Sidecar - An HTTP wrapper for Substrate, abstracting some complex RPC calls into simple REST calls.
- Subxt - A Rust library to submit extrinsics to a Substrate node via RPC.
The SCALE (Simple Concatenated Aggregate Little-Endian) Codec is a lightweight, efficient, binary serialization and deserialization codec.
It is designed for high-performance, copy-free encoding and decoding of data in resource-constrained execution contexts, such as the Substrate runtime. It is not self-describing in any way and assumes the decoding context has all type knowledge about the encoded data.
It is used in almost all communication to/from Substrate nodes, so implementations in different languages exist:
Data Crawling and Conversion
The following tools help you extract and structure data from a Substrate node.
- Polkascan PRE Harvester (matching explorer for harvested data) - Transforms raw blockchain data into relational data.
- Parity's Substrate Archive - Can be run alongside a Substrate node to archive all blocks, state, and extrinsic data into PostgreSQL database.
- Hydra: GraphQL Builder - Generate a GraphQL database from a Substrate chain's data.
- Polka-store - A tool which scans a Substrate chain and stores balance-relevant transactions in an SQLite database.
- Substrate-graph - A compact indexer for Substrate based nodes providing a GraphQL interface.