# Introduction

DApp (Decentralized applications) is a computer application that runs on distributed computing system.&#x20;

Normally there're two parts In real word DApp: the on-chain code and the off-chain code. Developers put core application logic in the on-chain code and deploy it to the blockchain. The off-chain code provides a better user interface to make it easy to interact with the on-chain application.&#x20;

Many modern blockchain systems support DApp development by implementing an on-chain virtual machine to run the DApp code and a corresponding programming language to write the on-chain code which are called as Smart Contract.

Ethereum virtual machine(aka EVM) is the most popular and widely used virtual machine. Web3js is the most commonly used js SDK to interact with the smart contract application. Clover implements a fully compatible EVM layer, developers can use web3 to interact with Clover DApp.&#x20;

This tutorial will guide you to create your first DApp step by step. It will cover the essential of creating a DApp from scratch.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.clv.org/portal/development-guide/introduction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
