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 is based on Rust, a programming language known for its performance and safety. It's almost impossible to make a programming mistake that the compiler won't catch before you deploy your smart contract. Additionally, given the object-centric approach, assets that reside in your account can't be accessed without your account keys. These features allow for more complex smart contract applications, as any mistakes outside implementation logic will be caught before deploying.
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 processes production transaction blocks. 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
IOTA EVM and IOTA Identity are not available on the IOTA Move Testnet.
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 and Shimmer EVM
IOTA EVM and Shimmer EVM are two distinct Layer 2 EVMs running on top of the IOTA Mainnet.
IOTA EVM Testnet
IOTA EVM and IOTA Identity are not available on the IOTA Move Testnet.
IOTA EVM Testnet is the Layer 2 EVM running on top of the IOTA Testnet network. This network is subject to occasional resets (no data retention), 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 on the IOTA network must secure a certain amount of IOTA tokens on the IOTA Mainnet to demonstrate their commitment to the network's security. This approach aligns the interests of all validators with those of IOTA users, ensuring an efficient and secure blockchain without the high energy demands of earlier blockchains.