# Prerequisites

Developing a DApp requires you familiar with several tools. We'll use some tools in this tutorial but we assume you have at least basic knowledge with them.&#x20;

### :tools: [Solidity](https://docs.soliditylang.org/en/v0.7.5/)

{% hint style="info" %}
Solidity is an object-oriented, high-level language for implementing smart contracts. Smart contracts are programs which govern the behavior of accounts within the Clover state.
{% endhint %}

&#x20;We'll use to solidity as the programming language to write on-chain logic.&#x20;

### :pineapple: [Javascript](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Introduction)

{% hint style="info" %}
JavaScript is a cross-platform, object-oriented scripting language used to make webpages interactive (e.g., having complex animations, clickable buttons, popup menus, etc.). There are also more advanced server side versions of JavaScript such as Node.js, which allow you to add more functionality to a website than downloading files (such as realtime collaboration between multiple computers). Inside a host environment (for example, a web browser), JavaScript can be connected to the objects of its environment to provide programmatic control over them.
{% endhint %}

We'll implement the frontend UI logic using javascript.&#x20;

### :watermelon: [Reactjs](https://reactjs.org/)

{% hint style="info" %}
React is a declarative, efficient, and flexible JavaScript library for building user interfaces. It lets you compose complex UIs from small and isolated pieces of code called “components”.&#x20;
{% endhint %}


---

# 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/prerequisites.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.
