# Building DApp

[Decentralized Applications (or DApps)](https://ethereum.stackexchange.com/questions/383/what-is-a-dapp) are applications that do not rely on a centralized backend running in a server that power traditional web and mobile applications (outside of hosting the frontend code itself). Instead, the frontend application interacts directly with blockchain over an API.

A typical DApp should contain:

* Smart contract(s) that help frontend app to interact with blockchain. To build smart contract on KardiaChain, please refer to [Smart contract development](https://docs.kardiachain.io/docs/archived-docs/tutorials/smart-contract-development) section.
* Data indexing service (such as graph from The Graph)
* Frontend interface (web or mobile app) for user to interact with DApp.
