About IOTA
The IOTA ecosystem enables programmability in both Layer 1 and Layer 2 using Move and EVM/Solidity smart contracts respectively.
Layer 1
Move
Move is a powerful, secure programming language designed specifically for digital asset management and smart contracts. Its unique features make it an ideal choice for developers working in the blockchain space. Here are the key features of Move:
Object-Centric Design
Move is fundamentally object-centric, allowing developers to intuitively model complex data structures and interactions. In Move, you can define objects representing assets, users, contracts, and more, facilitating a natural and straightforward way to manage state and behavior.
Performance
Move is based on the object model, not a shared global state. This allows transactions to be executed in parallel, which translates into a network with high throughput, less congestion, and therefore lower gas fees.
Security
Move prioritizes safety and efficiency, with Rust’s ownership model inspiring Move’s approach to memory management and resource control. The compiler enforces strict rules to prevent common programming errors, ensuring that assets remain secure within user accounts and cannot be accessed without the correct keys. While the compiler catches many potential issues before deployment, developers should still be mindful of logical errors, arithmetic overflows, and other runtime concerns when implementing smart contracts.
While the Move compiler catches many development mistakes, smart contracts can still have unintended edge cases and issues within their written logic. For this reason, it's still highly recommended to have smart contracts audited and double-checked, even when written in Move.
Networks
IOTA Mainnet
The IOTA Mainnet runs the Stardust Protocol.
The IOTA Mainnet is the L1 "production" network of IOTA. The IOTA Mainnet's tokens have a real-world value, so we recommend that you use the IOTA Testnet or Devnet to develop your application.
IOTA Testnet
The IOTA Testnet serves as a staging network and quality assurance. You can use this network to test your dApps and verify that planned changes do not adversely impact performance before deploying them to production.
IOTA Devnet
The IOTA Devnet is used to develop new features. You can use this network to code with the latest planned features of IOTA.
Layer 2
EVM
EVM stands for "Ethereum Virtual Machine" and is currently the tried and tested virtual machine running most smart contract networks.
Solidity is the programming language of choice for the EVM. It was created for this specific purpose.
The main benefit of using EVM/Solidity is its sheer amount of resources from years of development. The IOTA Smart Contracts implementation is fully compatible with these resources, allowing you to leverage all existing EVM developer tools for developing on the IOTA EVM. Any contracts you've previously written can be deployed on IOTA Smart Contracts without modification.
Keep in mind that while EVM has become a standard for smart contract execution on L2s, it is not inherently designed for the unique features and capabilities of L1s like Move smart contracts. Move, with its focus on asset safety, resource management, and formal verification, offers a fundamentally different approach at the L1 level.
Networks
IOTA EVM
IOTA EVM is the distinct Layer 2 EVM running on top of the IOTA Mainnet.
IOTA EVM Testnet
IOTA EVM Testnet is a distinct Layer 2 EVM running on top of the Stardust protocol network, which is separate from the IOTA Rebased Testnet.
This network is subject to occasional resets (no data retention) which are usually announced with a one-week grace period.
IOTA Tokens
The IOTA token is the main token in the IOTA ecosystem. One IOTA can be divided into smaller units called NANOs, with one IOTA being equivalent to one billion NANOs.
Gas on IOTA
Transactions on the IOTA network require gas fees, which are paid using IOTA or NANOs.
Consensus on IOTA
IOTA uses a delegated proof-of-stake (DPoS) consensus mechanism to validate on-chain transaction blocks. Validators must secure a certain amount of IOTA tokens to participate in the network, where they actively run the Mysticeti protocol to finalize transactions. This approach incentivizes honest behavior, enhances security, and ensures an efficient and scalable blockchain while avoiding the high energy demands of Proof-of-Work (PoW) systems, which rely on computationally intensive mining.