Decentralized applications (dApps)
One of the main features of blockchains is decentralization: each transaction is verified by multiple nodes and its validation process does not rely on a single trusted third party. Decentralized applications (dApps or Dapps) take advantage of these features to create applications that are independent, transparent, and trustless.
In general, dApps have these parts:
- Frontend: An off-chain component that can act as a user interface to simplify interaction with the on-chain component, run off-chain processing, and get information from sources that are not available to the on-chain component
- Middleware: Optionally, an indexer to interpret the backend information and provide it in a more convenient format for the front-end component
- Backend: An on-chain component that consists of one or more smart contracts
The off-chain component can be nearly any kind of program, including a web application, mobile or desktop app, or command-line interface. It relies on wallets and tools to interact with the smart contracts on behalf of a user's Tezos account.
Some of these tools that allow an off-chain component to interact with smart contracts include:
- Taquito, an SDK for JavaScript/TypeScript applications
- The Tezos SDK for Unity, a toolkit for the Unity game development platform
- Taqueria, a development platform for dApps
The next pages in this section illustrate dApps with examples, detail the main steps when developing dApps such as Connecting to wallets and Sending transactions, and introduce some best practices
Tutorials
These tutorials cover dApps of different complexities:
- For a simple dApp, see Build a simple web application
- For a dApp that mints NFTs, see Mint NFTs from a web app
- For a large dApp that allows users to buy and sell NFTs, see Build an NFT marketplace