Dev Environment Setup
Before deploying smart contracts or interacting with the Watr Network, you need to set up a local development environment with the right tools. Since Watr runs on the Avalanche network architecture, you can use standard EVM-compatible tools like Hardhat.
Prerequisites
Make sure you have the following installed:
- Node.js (v16 or later)
Download: https://nodejs.org - NPM or Yarn
- Git
https://git-scm.com - Code Editor
Visual Studio Code is recommended.
Install Hardhat
Hardhat is a popular Ethereum development framework that works seamlessly with Avalanche and Watr.
mkdir watr-dev
cd watr-dev
npm init -y
npm install --save-dev hardhat
npx hardhat
Choose “Create a basic sample project” when prompted.
Install Additional Dependencies
For Hardhat projects, install the following plugins:
npm install --save-dev @nomicfoundation/hardhat-toolbox
To support Ethers.js, Solidity testing, and deployment.
Configure .env File (Optional but Recommended)
Create a .env file to securely store sensitive data like private keys and RPC URLs:
PRIVATE_KEY=your_private_key_here
WATR_RPC_URL=https://rpc.watr.org/ext/bc/EypLFUSzC2wdbFJovYS3Af1E7ch1DJf7KxKoGR5QFPErxQkG1/rpc # Replace with actual Watr RPC
Then install dotenv:
npm install dotenv
And load it in your hardhat.config.js:
require("dotenv").config();
module.exports = {
networks: {
watr: {
url: process.env.WATR_RPC_URL,
accounts: [process.env.PRIVATE_KEY],
},
},
solidity: "0.8.21",
};
Recommended Project Structure
watr-dev/
├── contracts/ # Your Solidity smart contracts
├── scripts/ # Deployment & interaction scripts
├── test/ # Contract test cases
├── hardhat.config.js # Hardhat configuration
└── .env # Environment variables (not committed)
Connect via Code
Using ethers.js
import { ethers } from "ethers";
const provider = new ethers.JsonRpcProvider(
"https://rpc.watr.org/ext/bc/EypLFUSzC2wdbFJovYS3Af1E7ch1DJf7KxKoGR5QFPErxQkG1/rpc"
);
Using viem
import { createPublicClient, http } from "viem";
const client = createPublicClient({
transport: http(
"https://rpc.watr.org/ext/bc/EypLFUSzC2wdbFJovYS3Af1E7ch1DJf7KxKoGR5QFPErxQkG1/rpc"
),
});
Useful VSCode Extensions
- Solidity by Juan Blanco
- Hardhat Runner
- Prettier & ESLint
- GitLens