Skip to main content

Decentralized Applications

In this article, you will learn decentralized applications (dApps) work and how users can interact with them.

Build dApps on IOTA Smart Contracts

Decentralized applications (dApps) are computer applications that run on a decentralized computing system, like IOTA Smart Contracts.

IOTA Smart Contracts enable you to use your preferred programming language, set a fee model for users, incentives for validators, and committee structure.

There are some exciting aspects of dApps:

  • No downtime: dApps are based on a peer-to-peer system which ensures the dApps will continue to work even if individual computers, or parts of the network, go offline.
  • Censorship-resistant: As there is no single point of failure, and it is based on the Tangle, it is impossible to take over the Network.
  • Open-source: This brings even more trust to dApps. As the source code is publicly available, it can be verified and improved by many developers.


Decentralized applications consist of one or multiple Smart Contracts and a User Interface. The user interface is usually a Website, which interacts with the Smart Contracts.

Interacting With Smart Contracts

There are two ways to interact with IOTA Smart Contracts:

  • On-ledger: Requests to the smart contract are transactions on the Tangle.
  • Off-ledger: The requests are sent using an API call to a Wasp node.

You can configure your Wasp node's API URL, or use the public Wasp REST API.


There are several different example applications deployed on the public test-net chain.

Fair Roulette

Fair Roulette

The Fair roulette example is a simple betting game in which players can bet on a number within a certain range.

More examples for Wasm Smart Contracts written in Rust and Go (TinyGo) can be found in the Wasp code repository.