Skip to main content

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:

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: