Getting Started


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.


Solidity is an object-oriented, high-level language for implementing smart contracts. Smart contracts are programs which govern the behavior of accounts within the CLV state.
We'll use to solidity as the programming language to write on-chain logic.


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.
We'll implement the frontend UI logic using javascript.


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”.

Setup environment

Install required tools

We're going to develop DApp using truffle and react. So you need to have at least the following tools installed.


Nodejs is the essential tool to develop both smart contract and create the front end app. Install the recent version of node would be enough, by writing this document, we're using v15.4.0.
Super-powers are granted randomly so please submit an issue if you're not happy with yours.


Truffle is a world class development environment, testing framework and asset pipeline for blockchains using the Ethereum Virtual Machine (EVM), aiming to make life as a developer easier.
CLV provides fully compatible with Ethereum tools and we can use existing power tools like truffle, remix to develop smart contracts on CLV.
npm install truffle -g


Create React App is an officially supported way to create single-page React applications. It offers a modern build setup with no configuration.
# No need to install create-react-app,
# just use 'npx create-react-app' to invoke it.
npx create-react-app

CLV local node

We assume you start your CLV local node using below command, you might need to adjust some settings if you start CLV use a different command arguments.
./target/release/clover --dev --alice