What is a Decentralized Application (DAPP)?

Decentralized applications are a piece of software that communicates with the blockchain, which manages the state of all network actors. The interface of the decentralized applications does not look any different than any website or mobile app today. The smart contract represents the core logic of a decentralized application.