Learn INK with Real Code Examples
Updated Nov 25, 2025
Practical Examples
Simple key-value store
ERC-20-like token
NFT minting and transfer
Voting and governance module
Cross-contract calls for DeFi pools
Troubleshooting
Check Rust compiler errors
Ensure ink! macros used correctly
Verify storage types
Validate event definitions
Test cross-contract calls
Testing Guide
Write Rust unit tests in tests/ folder
Use cargo-contract test
Validate storage updates
Check event emissions
Test cross-contract interactions
Deployment Options
Local Substrate node
Polkadot testnet
Kusama parachain
Polkadot.js deploy
CI/CD pipelines with cargo-contract
Tools Ecosystem
cargo-contract CLI
Substrate node template
Polkadot.js front-end
Ink! unit testing in Rust
ink! playground (online)
Integrations
Polkadot and Kusama chains
Substrate-based parachains
Frontends via Polkadot.js
Off-chain workers
Cross-contract modules within Substrate
Productivity Tips
Leverage ink! macros
Write modular contracts
Unit-test extensively
Keep Wasm code minimal
Use cargo-contract CLI efficiently
Challenges
Rust complexity for beginners
Wasm contract size limits
Cross-contract interaction nuances
Limited pre-built libraries
Debugging Wasm can be tricky