[4] These tokens are distributed according to a programmed algorithm to the users of the system, diluting ownership and control of the DApp.
[5] DApps are divided into numerous categories: exchanges, businesses, gambling, games, finance, development, storage, wallet, governance, property, identity, media, social, security, energy, insurance, health, etc.
[6][clarification needed] There are a series of criteria that must be met in order for an application to be considered a DApp.
[4] DApps also have a public, decentralised blockchain that is used by the application to keep a cryptographic record of data, including historical transactions.
Smart contracts are used by developers to maintain data on the block chain and to execute operations.
[6] The amount of gas required of a DApp's functions is dependent on the complexity of its smart contracts.
[6] A complex smart contract of a DApp that operates on the Ethereum blockchain may fail to be deployed if it costs too much gas, leading to lower throughput and longer wait times for execution.
[9] Proof-of-stake is a consensus mechanism that supports DApps through validators that secure the network by having a stake and percent ownership over the application.
[8] In mining, tokens are distributed as per a predetermined algorithm as rewards to miners that secure the network through transaction verification.
[8] Then, required software and scripts are made available to the miners and stakeholders that support the validation and fundraising of the network.
A DApp can have frontend code and user interfaces written in any language that can make calls to its backend.
Additionally, the user experience for DApps is often poor, as they are often developed to prioritize functionality, maintenance and stability.
[full citation needed] A notable example was the DApp CryptoKitties, which heavily slowed down the Ethereum network at the height of its popularity.