# Prerequisites

## **Node v18+**

&#x20;         You'll need to have Node.js version 18 or higher installed to follow this tutorial.\
Download link: [Node v18+](https://nodejs.org/en/download/)

## Wallet funds

&#x20;         To deploy smart contracts to the blockchain, you’ll need to pay a gas fee, which requires holding the network’s native token — **ICBX** in the case of the ICB Network.

&#x20;         In this tutorial, we’ll be deploying the contract either to the **ICB Mainnet** or the **ICB Testnet**.

* If you're using the **mainnet**, you’ll need to fund your wallet with ICBX tokens. These can be purchased from supported exchanges — visit the ICB Network page on CoinMarketCap to view available options.
* If you’re deploying to the **ICB Testnet**, no real funds are needed. A faucet for acquiring free testnet tokens (ICBT) will be made available soon, enabling developers to test and experiment without any cost.

&#x20;         Make sure your wallet is properly funded depending on which network you plan to deploy to before continuing with the tutorial.

&#x20;         Before you can view your **ICBX** or **ICBT** balances in your wallet, you’ll need to **add the ICB Network to your wallet** by following the steps in the [*How to Connect with ICB Network*](/getting-started/how-to-connect-with-icbnetowork.md) section.

&#x20;         Additionally, make sure you're using a compatible wallet — refer to the [*Wallets*](/getting-started/wallets.md) section for supported options like **MetaMask**, **Rabby**, or **Coinbase Wallet**.

&#x20;         Before you can start deploying smart contracts to the ICB Network, you need to prepare your development environment by setting up a new Node.js project.

&#x20;         To initialize a Node.js project, run the following command:

```bash
npm init --y
```

&#x20;         Next, you’ll need to install Hardhat and set up a new project using it. To get started with Hardhat, run the following command to install it:

```bash
npm install --save-dev hardhat
```

&#x20;         To initialize a new Hardhat project, use the following command:

```bash
npx hardhat init
```

&#x20;         Choose **"Create a TypeScript project"** and press **Enter** to confirm the current directory as the project root.

&#x20;         When prompted, select **"y"** to add a `.gitignore` file and to load the sample project.

&#x20;         The setup process will take a few moments to complete.


---

# 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.icb.network/build-on-icb-network/hardhat/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.
