Introduction to dapps

A decentralized application (dapp) is an application built on a decentralized network that combines a smart contract and a frontend user interface. On Ethereum, smart contracts are accessible and transparent – like open APIs – so your dapp can even include a smart contract that someone else has written.

Before learning about dapps, you should cover the blockchain basics and read about the Ethereum network and how it's decentralized.

Definition of a dapp

A dapp has its backend code running on a decentralized peer-to-peer network. Contrast this with an app where the backend code is running on centralized servers.

A dapp can have frontend code and user interfaces written in any language (just like an app) to make calls to its backend. Furthermore, its frontend can get hosted on decentralized storage such as IPFS (opens in a new tab)

On smart contracts

To introduce dapps, we need to introduce smart contracts – a dapp's backend for lack of a better term. For a detailed overview, head to our section on smart contracts.

A smart contract is code that lives on the Ethereum blockchain and runs exactly as programmed. Once smart contracts are deployed on the network you can't change them. Dapps can be decentralized because they are controlled by the logic written into the contract, not an individual or company. This also means you need to design your contracts very carefully and test them thoroughly.

Benefits of dapp development

Drawbacks of dapp development

More of a visual learner?

Tools for creating dapps

Create Eth App - Create Ethereum-powered apps with one command.

One Click Dapp - FOSS tool for generating dapp frontends from an .

Etherflow - FOSS tool for Ethereum developers to test their node, and compose & debug RPC calls from the browser.

thirdweb - SDKs in every language, smart contracts, tools, and infrastructure for web3 development.

Crossmint - Enterprise-grade web3 development platform to deploy smart contracts, enable credit-card and cross chain payments, and use APIs to create, distribute, sell, store, and edit NFTs.

Know of a community resource that helped you? Edit this page and add it!