> 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/digitalocean.md).

# DigitalOcean

Run a Webhash Node on a premium DigitalOcean Droplet and contribute to the future of decentralized, censorship-resistant web hosting — while earning rewards for uptime and storage.

***

#### ✅ Prerequisites

Make sure you have:

* A **DigitalOcean** account
* Droplet type: **Premium AMD** (2 vCPUs, 4GB RAM, 100GB SSD)
* **Floating IP** for static public access
* A **new EVM-compatible wallet** (with Sepolia ETH on Base) for node registration

***

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

1. Create a wallet using MetaMask or any EVM-compatible wallet
2. Export your private key (⚠️ Don’t use your main wallet)\
   📺 [Watch: How to Export Private Key from MetaMask](https://www.youtube.com/watch?v=ke9j2wuYhPE\&t=96s)
3. Fund your wallet with **Sepolia ETH on Base** using the faucet:\
   👉  [Base Sepolia Faucet – Alchemy](https://www.alchemy.com/faucets/base-sepolia)

***

#### 🧠 Step 2: Get Your WebSocket URLs (Base Sepolia + Ethereum Mainnet)

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: Deploy a Droplet on DigitalOcean

1. Log in to DigitalOcean → **Create Droplet**
2. Select **Ubuntu 22.04 LTS** as your OS
3. Choose:
   * Plan: **Premium AMD**
   * Specs: **2 vCPUs**, **4GB RAM**, **100GB SSD**
4. Launch the droplet

***

#### 🔐 Step 4: Configure Firewall & Networking

1. Open the droplet's settings → **Cloud Firewalls**
2. Allow **TCP/UDP traffic on port 4001**
3. You can also run the following inside your droplet:

```bash
sudo ufw allow 4001/tcp
sudo ufw allow 4001/udp
sudo ufw enable
```

***

#### 🌐 Step 5: Assign a Floating IP

1. Go to **Networking → Floating IPs**
2. Reserve and assign a **Floating IP** to your droplet\
   📌 This ensures your public IP remains static.

***

#### 🧪 Step 6: Run the Webhash Node Setup Script

1. SSH into your droplet
2. Run the setup command:

```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
```

***

#### 🛠️ During Setup – Required Inputs

You will be prompted for:

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

2️⃣ **WebSocket URL – Ethereum Mainnet**\
Paste your second `wss://` URL&#x20;

**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

After setup, you should see:

```
✔ 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 now live and contributing to decentralized hosting.

***

#### 📢 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;
