LogoLogo
WebsiteSubstrate Block ExplorerEVM Block ExplorerFaucet
  • Learn
    • Architecture
    • Staking
      • Proof of stake
    • Smart Contracts
    • Accounts
    • Infrastructure
      • Nodes
      • Agents
      • Models
      • IPFS
    • Security
      • OPOC
      • TSS
      • IPFS Integrity
      • Model Updates Integrity
    • Fees
    • Finney Testnet RPC Endpoints
  • Build
    • Address format
    • ink! Environment
    • Wasm Smart Contracts
      • Smart Contract Stack
      • Domain-Specific Languages (DSLs)
      • ink! Development
      • ask! Development
      • Basic ink! Contract
    • EVM Smart Contracts
      • Introduction to EVM Smart Contracts
      • HardHat
      • Your first EVM Smart Contract
      • Debug EVM Transactions
      • Precompiles
        • SR25519
        • Substrate ECDSA
        • XC20
    • Run a node
      • Run an archive node
        • Binary
      • Run a full node
      • Become a validator
        • Learn about Validators
        • Validator requirements
        • Spin up a validator
        • Set your identity
    • Build an Agent
      • Introduction
      • Development
      • Installing WASP
      • Agents API Reference
      • Available AI Models
Powered by GitBook
On this page
  • Introduction
  • Key Features
  • Development Resources
Export as PDF
  1. Build
  2. Wasm Smart Contracts

ink! Development

Introduction

ink! is a Rust-based eDSL (embedded Domain-Specific Language) developed by Parity Technologies for writing smart contracts on Substrate's pallet-contracts.

💡 Why ink!? ink! is currently the most widely supported eDSL for Substrate-based smart contracts, with strong backing from both Parity and the builder community.

Key Features

ink! provides developers with powerful tools and features:

Core Capabilities

  • Write smart contracts using idiomatic Rust code

  • Leverage ink! macros and attributes via #[ink::contract]

  • Utilize trait definitions and implementations

  • Create upgradeable contracts through delegate calls

  • Interact with Substrate pallets using Chain Extensions

  • Perform off-chain testing with #[ink(test)]

Development Tools

  • Procedural macros for simplified development

  • Comprehensive crate ecosystem

  • Reduced boilerplate code requirements

⚙️ Getting Started For installation instructions, visit the ink! Environment section.

Development Resources

Official Documentation

Key Topics

PreviousDomain-Specific Languages (DSLs)Nextask! Development

Last updated 3 months ago

GitHub Repository
Introduction Guide
Official Documentation
Rust Documentation
Contract Macros & Attributes
Trait Support
Upgradeable Contracts
Chain Extensions