> For the complete documentation index, see [llms.txt](https://docs.icb.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.icb.network/build-on-icb-network/hardhat/prerequisites.md).

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