> For the complete documentation index, see [llms.txt](https://node-setup.webhash.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://node-setup.webhash.com/gcp-google-cloud.md).

# GCP - Google Cloud

Run a Webhash Node on GCP to contribute to the decentralized web while benefiting from scalable infrastructure and earning token incentives for uptime and storage.

***

#### ✅ Prerequisites

Make sure you have:

* GCP account with billing enabled
* Instance type: `e2-standard-2` or `n2-standard-2`
* 100 GB Persistent Disk
* Static external IP
* A new EVM-compatible wallet (for node registration and rewards)

***

#### 🪙 Step 1: Create a New Wallet & Fund It

1. Create a wallet using MetaMask or any EVM-compatible wallet
2. Export the **private key**\
   ⚠️ **Never use your main wallet for node operation**

   📺 [Watch: How to Export Private Key from MetaMask](https://www.youtube.com/watch?v=ke9j2wuYhPE\&t=96s)
3. Fund it with **Sepolia ETH on Base** using the Alchemy faucet:\
   👉  [Base Sepolia Faucet – Alchemy](https://www.alchemy.com/faucets/base-sepolia)

***

#### 🔌 Step 2: Get Your WebSocket URLs

Webhash requires **two WebSocket URLs**:\
1️⃣ One for **Base Sepolia**\
2️⃣ One for **Ethereum Mainnet**&#x20;

***

**🔹 Option A: Using Alchemy (Recommended)**

You only need **one app** to get **both URLs**:

1. Go to the Alchemy Dashboard and log in
2. Click **"Create App"**
   * **Name**: Webhash Node
   * **Chain**: Base
   * **Network**: Base Sepolia
3. After the app is created, click **"Configure"** (top right)
4. Under **"Add Chains"**, enable **Ethereum → Mainnet**
5. Now go back to the app dashboard:
   * Click the **"Network"** tab
   * Copy the WebSocket URL for **Base Sepolia**
   * Then switch to **Ethereum Mainnet** and copy its WebSocket URL

✅ Examples:

* **Base Sepolia**: `wss://base-sepolia.g.alchemy.com/v2/your-api-key`
* **Ethereum Mainnet**: `wss://eth-mainnet.g.alchemy.com/v2/your-api-key`

📌 *Ensure both URLs start with `wss://`. HTTP URLs are not supported.*

***

**🔹 Option B: Using QuickNode**

1. Go to [QuickNode](https://www.quicknode.com)
2. Create **two endpoints**:
   * One for **Base Sepolia**
   * One for **Ethereum Mainnet**
3. Go to each endpoint’s dashboard
4. Copy the **WebSocket URL** from the **WebSockets tab**

✅ Examples:

* **Base Sepolia**: `wss://your-node.base-sepolia.quiknode.pro/your-key/`
* **Ethereum Mainnet**: `wss://your-node.ethereum.quiknode.pro/your-key/`

📌 *Again, make sure to copy the `wss://` URLs only. HTTP endpoints won't work.*

***

#### 🖥 Step 3: Launch a VM Instance on GCP

1. Go to Google Cloud Console → Compute Engine → Create VM
2. OS: **Ubuntu 22.04 LTS**
3. Machine type: `e2-standard-2` or `n2-standard-2`
4. Add a **100 GB Persistent Disk**

***

#### 🔐 Step 4: Configure Firewall Rules

1. Navigate to **VPC Network → Firewall**
2. Create a new rule:
   * Allow **TCP/UDP** on port **4001**
   * Apply rule to your VM instance

***

#### 🌍 Step 5: Assign a Static IP

1. Go to **VPC Network → External IP Addresses**
2. Reserve a new static IP
3. Assign it to your VM instance

***

#### ⚙️ Step 6: Run the Setup Script

SSH into your VM instance and run:

```bash
curl -fsSL https://raw.githubusercontent.com/WebHash-eth/hash-node-setup/refs/heads/main/scripts/setup.sh > setup.sh && chmod +x setup.sh && ./setup.sh
```

***

#### 📥 Setup Prompts

You’ll be prompted for:

1️⃣ **Base Sepolia WebSocket URL**\
Paste your `wss://` URL from Alchemy or QuickNode

2️⃣ **Ethereum Mainnet WebSocket URL**\
Paste the `wss://` URL for Mainnet (for ENS integration)

**3️⃣** Enter Your Email for Updates

After entering your Ethereum Mainnet WebSocket URL, you’ll be prompted to enter your email:\
**Please enter your email address:**\
This helps us send you important updates, community news, and reward announcements related to your node activity.\
📌 *Your email is stored securely and never shared.*

4️⃣ **Select Storage Directory** You'll see this prompt:

```
Do you want to use a separate disk for storage? (y/n)
```

* Type `y` to specify a custom directory (e.g., `/mnt/webhash`)
* Type `n` to use the default path: `/root/.webhash-node-data`

The script will continue automatically after your input.

***

#### ✅ Step 7: Confirm Node Registration Output

Once setup completes, your terminal should show:

```
vbnetCopyEdit✔ Container node       Healthy
✔ Container pinner     Started
Waiting for node container to be ready...
Configuring node...
Node started with peer ID: 12D3KooW...
Registering node with peer ID: 12D3KooW...
Node registered successfully with peer ID: 12D3KooW...
```

📌 If you see **“Node registered successfully”**, your Webhash node is live!

***

#### 📢 Final Step – Join the Webhash Community

Once your node is successfully registered, you’ll see a message prompting you to join our official Discord and Telegram channels.\
👉 **Join our**[ Discord](https://discord.gg/zUpBGJ4uh5) **to claim your exclusive “🥷Node Ninja” role** and connect with other node operators!

Stay connected, get support, and earn early contributor perks by being part of the Webhash community.

***

#### **⚠️ Troubleshooting & Support**

If you run into any issues while setting up your **Webhash Node**, we’re here to help!

📌 Join our Discord and create a support ticket – Our team will assist you instantly.

🔗 [Join Webhash Discord](https://discord.gg/zUpBGJ4uh5)&#x20;
