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.
Architecture
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.
Examples
There are several different example applications deployed on the public test-net chain.
Fair Roulette
The Fair roulette example is a simple betting game in which players can bet on a number within a certain range.
- Play with the Live Demo.
- Discover the Code Repository.
More examples for Wasm Smart Contracts written in Rust and Go (TinyGo) can be found in the Wasp code repository.
- Learn more about On-ledger and Off-ledger Requests.
- Participate on the public testnet.
- Build your first dApp with the Schema Tool.