---
description: 'Smart contracts are applications you can trust that run on a distributed network with multiple validators
all executing and validating the same code.'
image: /img/Banner/banner_wasp_core_concepts_smart_contracts.png
keywords:

- smart contracts
- blockchain
- parallel
- scaling
- explanation

---

# Smart Contracts

![Wasp Node Smart Contracts](/img/Banner/banner_wasp_core_concepts_smart_contracts.png)

## What Are Smart Contracts?

Smart contracts are software applications that run on a distributed network with multiple validators executing and
validating the same code. This ensures the application behaves as expected and that there is no tampering in the
program's execution.

### Applications You Can Trust

As you can be certain that the executed code is always the same (and will not change), this results in
applications you can trust. This allows you to use smart contracts for applications with a trust issue. The
smart contract rules define what the contract can and can not do, making it a decentralized and predictable
decision-maker.

You can use smart contracts for all kinds of purposes. A recurring reason to use a smart contract is to automate
specific
actions without needing a centralized entity to enforce this specific action. A good example is a smart contract
that can exchange a certain amount of IOTA tokens for land ownership. The smart contract will accept
both the IOTA tokens and the land ownership, and will predictably exchange them between both parties without the risk of
one of the parties not delivering on their promise. **With a smart contract, code is law**.

### Scalable Smart Contracts

Anyone willing to pay the fees for deploying a smart contract on a public blockchain can deploy one. Once your smart
contract has been deployed to the chain, you no longer have the option to change it, and you can be sure that your
smart contract application will be there as long as that blockchain exists. Smart contracts can communicate with one
another, and you can invoke programmed public functions on a smart contract to trigger actions on a smart contract, or
address the state of a smart contract.

Because smart contracts do not run on a single computer but on many validators, a network of smart contracts can only
process so many smart contracts at once, even if the software has been written optimally. This means smart contracts are
expensive to execute, and do not scale well on a single blockchain, often resulting in congested networks and costly
fees for executing functions on smart contracts. **By allowing many blockchains executing smart contracts to run in
parallel** and communicate with one another, **IOTA Smart Contracts solves this scalability problem.**

At the same time, ISC provides advanced means of communication between its chains and preserves the ability to create
complex, composed smart contracts.
