Seamlessly create cross-chain dApps
Assembly is designed to orchestrate a permissionless network of parallelized and interoperable smart contract chains. In simple terms, Assembly will be a network to allow permissionless smart contracts. The IOTA Smart Contract framework allows anyone to launch their own smart contract chain, which is basically a blockchain.
The IOTA Smart Contract framework will allow many independent smart contract blockchains to be run on top of the IOTA Tangle while keeping these independent blockchains fully secured and connected to each other. As a result, developers have complete flexibility to choose their preferred environment, fee structure, and more to set up a perfectly customized backbone for decentralized applications (dApps). As IOTA Smart Contracts are not permissionless, Assembly enables a permissionless environment for smart contracts on IOTA.
Assembly’s architecture offers powerful cross-chain interoperability between all smart contract chains running on IOTA, including permissioned and permissionless chains. Smart contracts within Assembly can interact with each other in two ways:
Calls: A smart contract can call another smart contract on the same chain synchronously like any function since they all work on the same state of the chain. It is also possible to seamlessly transfer funds between smart contracts on the same chain. This kind of token transfer involves settling balances on the smart contract chain without involving token movements between addresses on the IOTA Tangle. This is comparable to what most other smart contract solutions do, (such as Ethereum, for example).
Requests: Smart contracts on different chains can communicate with each other by sending requests. The request is an asynchronous message (in other words, a transaction) on the IOTA Tangle. These requests can include data and asset transfers between the smart contracts.
Cross-chain messaging between smart contracts has the following properties:
- Atomic: When you send the request, it is guaranteed to be processed (settled) on the target chain exactly once.
- Trustless: All smart contracts in the Assembly network can communicate with each other in a trustless and atomic way. This includes asset transfers as well as data. No relays and no bridges needed – IOTA secures everything in a feeless fashion.
- Scalable: With multiple chains, smart contracts can be run in parallel on separate chains, resulting in more scalability.
Trustless asset transfer with native tokens
Assembly will deliver interoperability thanks to IOTA’s native assets. All assets created within a smart contract chain can be wrapped onto the feeless base layer as a native asset token, which can be freely and feelessly transferred to different smart contract chains. These native asset tokens are also feeless and as secure and scalable as the IOTA token.
Connect to other chains with bridges
Parallelized chains provide a functionally rich platform to deploy smart contracts that enable external bridges and cross-chain communication with other DLT networks. For example, a chain may implement a bridge with a public blockchain like Bitcoin or Ethereum, requiring validators to host nodes on both networks and confirm all transactions. The smart contract on the bridge would implement atomic asset swaps with another network. The chain’s governor can make the bridge service available to the whole Assembly ecosystem, making transferred assets fully accessible to all smart contracts within the entire Assembly network. All done without the need for additional trust.
The high degree of flexibility offered to developers together with Assembly’s unique interoperability solution offer a new level of smart contract composability. Developers will be able to launch a new breed of dApps that build on different virtual machines and smart contracts, each specialized in handling a specific aspect of the application. For example, a developer might launch an ERC-20 token or non-fungible token (NFT) on an Ethereum Virtual Machine (EVM) application chain and outsource more expensive computations required for data analytics to a specialized Linux container chain (e.g., Cartesi VM) once those specialized virtual machines are supported and available on IOTA Smart Contracts.
Full EVM compatibility
Assembly is fully compatible with the Ethereum Virtual Machine (EVM). You could easily port any smart contract written in the Solidity programming language and any innovation built on Ethereum and other EVM compatible chains over to the Assembly network. This enables dApps developers to use all the advantages of Assembly with their existing codebase and promotes the rapid growth of the Assembly ecosystem with use cases like NFT marketplaces, decentralized finance (DeFi), decentralized autonomous organizations (DAOs), and a lot more.
Assembly will also enable developers to launch their own governed smart contract chains. These networks will have their own permissioning rules on who can join, participate and govern these chains. It could be DAOs, corporations, or individuals. The added benefit is that these governed chains are connected to a global network and are fully interoperable. This offers great prospects for dApps that need to meet regulatory requirements.
Flexible development environment
Assembly offers you the flexibility and freedom to fully customize the smart contract chains that power your dApps. With Assembly, you will be able to build dApps that are tailored to your needs and the needs of your users. Assembly enables developers to use their preferred programming language and smart contract virtual machine, as well as define execution fees for users and incentives for validators and their committee structures. Additionally, you will be free to define chain governance and permissioning rules. Assembly will take dApp customization and composability to the next level, empowering builders with the right framework to scale. Assembly supports Solidity, Rust, (Tiny)Go, and TypeScript (AssemblyScript) to write smart contracts. We plan to add even more languages and virtual machines in the near future.
If you are interested in discovering more:
- Learn more about the actors in Assembly in the Assembly Wiki
- Participate in the Assembly Discord
- Build your smart contract solution with the VM of your choice using IOTA Smart Contracts
- Visit Assembly website
This is the last blog post in a four-part series introducing the Assembly network: you can find the other parts here:
- Meet Assembly 1: Your Key to Open and Decentralized Worlds
- Meet Assembly 2: Validators and Committees
- Meet Assembly 3: Assembly as a Marketplace