Overview
To develop on IOTA, you’ll need to install:- Rust - Required for building and running the IOTA CLI and smart contracts
- IOTA CLI - Command-line tool for managing networks, keys, and transactions
- TypeScript SDK (optional) - For building applications with JavaScript/TypeScript
Choose your installation path based on your development needs. Smart contract developers need Rust and the CLI, while application developers may only need the TypeScript SDK.
Install Rust
The IOTA CLI and Move smart contracts require Rust to build and run.Install Rust using rustup
The recommended way to install Rust is through rustup:Follow the on-screen instructions to complete the installation.
Configure your shell
Add Rust to your PATH by running:Or restart your terminal to apply the changes.
Verify the installation
Check that Rust is installed correctly:You should see version information for both commands.
Install the IOTA CLI
The IOTA CLI provides tools for interacting with the IOTA network, managing keys, and developing Move smart contracts.Build the IOTA CLI
Build the CLI from source using Cargo:This will compile the IOTA binary and place it in
target/release/iota.Add to PATH (optional)
To use the Or create a symlink:
iota command from anywhere, add it to your PATH:Install the TypeScript SDK
For building applications with JavaScript or TypeScript, install the IOTA SDK from npm.Check Node.js version
The IOTA TypeScript SDK requires Node.js v20 or higher:If you need to upgrade, use nvm or download from nodejs.org.
Install the SDK
Install the IOTA TypeScript SDK in your project:
The SDK is published to npm with a bi-weekly release cycle aligned with the Devnet validators.
For local development (optional)
If developing against a local network, use the experimental tag:The experimental tag contains the latest changes from the
main branch.Additional development tools
Install pnpm (for monorepo development)
If you’re working with the IOTA monorepo, you’ll need pnpm:Install dprint (for TOML formatting)
For formatting TOML configuration files:IDE configuration
For the best development experience, configure your IDE:VS Code
Add to your.vscode/settings.json:
Run a local network
For development and testing, run a local IOTA network:Start the local network
- A local validator
- A fullnode RPC server on
http://127.0.0.1:9000 - A faucet server for requesting test tokens
The
--force-regenesis flag creates a fresh network state. Remove it to persist data between restarts.Verify your installation
Test that everything is working correctly:Platform-specific notes
macOS
-
If you encounter issues with OpenSSL, install it via Homebrew:
- For Apple Silicon (M1/M2), Rust should automatically detect and use the correct architecture.
Linux
- You may need to install build dependencies:
Windows
- Install Visual Studio Build Tools with C++ development tools
- Use PowerShell or Windows Terminal for the best experience
- Some Rust crates may require additional configuration
Next steps
Quickstart
Execute your first transaction and learn the basics
Move language
Learn Move to write smart contracts
TypeScript SDK
Explore the complete SDK documentation
Local network guide
Advanced local network configuration
Troubleshooting
Build fails with linker errors
Ensure you have the required build tools installed for your platform (see Platform-specific notes above).cargo build is very slow
The first build compiles many dependencies and can take 10-20 minutes. Subsequent builds are much faster. Consider:- Using
cargo build(debug mode) instead ofcargo build --releaseduring development - Enabling parallel compilation with more CPU cores
”command not found: iota”
Either:- Use the full path:
./target/release/iota - Add the binary to your PATH
- Create a symlink as shown in the installation steps
SDK version mismatches
When using a local network, install the experimental SDK version that matches your local build:Getting help
- GitHub Issues - Report bugs or request features
- IOTA Documentation - Comprehensive guides and references
- Developer Discord - Community support and discussions