Skip to content
arealive edited this page Sep 26, 2017 · 11 revisions

Dapp is an abbreviated form for decentralized application, and is a smart contract. It is an Ethereum account controlled by code, and executed in the EVM.

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) that can make calls to its backend. Furthermore, its frontend can be hosted on decentralized storage such as Swarm or IPFS.1

A dapp/contract generally serve four purposes:

  • Maintain a data store representing something which is useful to either other contracts or to the outside world;

  • Serve as a sort of externally owned account with a more complicated access policy; this is called a "forwarding contract" and typically involves simply resending incoming messages to some desired destination only if certain conditions are met;

  • Manage an ongoing contract or relationship between multiple users. Examples of this include a financial contract, an escrow with some particular set of mediators, or some kind of insurance.

  • Provide functions to other contracts; essentially serving as a software library.2

Messages can be sent between dapps using Whisper.

[1] https://ethereum.stackexchange.com/questions/383/what-is-a-dapp

[2] https://github.com/ethereum/wiki/wiki/Ethereum-Development-Tutorial

Clone this wiki locally