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 contract 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 Unity applications
- Taqueria, a development platform for dApps
Sample dApps
For example dApps, see Sample dApps.
Best practices
Good programming and design practices make dApps easier to use and provide a better user experience. See Best practices and avoiding flaws.
dApp tasks
For information on typical tasks that dApps do, see:
Tutorials
These tutorials cover dApps of different complexities:
- For a simple dApp, see Build your first app on Tezos
- 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