A decentralized application (dApp, Dapp, or DApp) is an application software that is run by many users on a decentralized network with trustless protocols. They are designed to avoid any particular single point of failure. They typically have tokens to reward users for providing computing power, services or other benefit. 
The definition of a decentralized application is still in development and the subject of debate. The term traces its origins to Decentralized Application Corporation and decentralized autonomous organization.  :1-8
- The code is open-source model and managed autonomously
- Records and data are stored using blockchain, which provides trustless interaction and avoiding any single point of failure
- Use security protocol reward users providing computing power, services or other benefit.
- Tokens generated through a cryptographic algorithm