Skip to main content
Version: v6

Welcome to the ink! documentation, the Rust-based smart contract language for the Polkadot ecosystem. This documentation will take you from your first "Hello, World!" contract to building sophisticated decentralized applications.

Overview

Getting Started

Begin your ink! journey with setup instructions, creating your first contract, and deploying it to a blockchain. Perfect for newcomers to both ink! and smart contract development.

Basics

Master the fundamental concepts of ink! development including storage, contract interactions, events, and the ABI system that enables interoperability with other languages like Solidity.

Testing

Learn comprehensive testing strategies from unit tests to end-to-end testing, including working with testing tools like DRink! for robust contract development.

Debugging

Discover tools and techniques for debugging your contracts, from event logging to tracing execution and using development tools.

Macros & Attributes

Deep dive into ink!'s powerful macro system that transforms your Rust code into smart contracts, including storage annotations, message definitions, and event handling.

Storage & Data Structures

Understand how to efficiently store and manage data in your contracts, from simple values to complex mappings and custom data structures.

Linter

Utilize ink!'s built-in security linter to identify common smart contract vulnerabilities and ensure your code follows best practices.

Frontend Development

Connect your contracts to web applications using TypeScript/JavaScript libraries, React hooks, and various SDK options for building complete dApps.

Technical Background

Understand the deeper technical aspects including why Rust and RISC-V were chosen, how ink! compares to other smart contract languages, and when to choose smart contracts vs. parachains.