{
  "schemaVersion": "1.0",
  "item": {
    "slug": "bandwidth-income",
    "name": "Clawhub Skill Bandwidth Income",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/mariusfit/bandwidth-income",
    "canonicalUrl": "https://clawhub.ai/mariusfit/bandwidth-income",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/bandwidth-income",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=bandwidth-income",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "skill.json"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/bandwidth-income"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/bandwidth-income",
    "agentPageUrl": "https://openagent3.xyz/skills/bandwidth-income/agent",
    "manifestUrl": "https://openagent3.xyz/skills/bandwidth-income/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/bandwidth-income/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "bandwidth-income",
        "body": "Turn your unused internet bandwidth into passive crypto income. This skill helps you set up, monitor, and optimize bandwidth-sharing nodes across multiple networks."
      },
      {
        "title": "What It Does",
        "body": "Setup Grass.io, Mysterium Network, Storj, and Honeygain nodes via Docker\nMonitor node uptime and auto-restart on failure\nTrack earnings across all platforms in one dashboard\nAlert via message when a node goes offline or earnings drop\nCalculate ROI based on your bandwidth and hardware costs"
      },
      {
        "title": "Supported Platforms",
        "body": "PlatformTypeEarningsSetupGrass.ioBandwidth sharing$100-1000/moBrowser extension or DockerMysterium NetworkVPN exit node$10-200/moDocker, needs static IPStorjDecentralized storage$5-100/moDocker, needs 500GB+ diskHoneygainBandwidth sharing$20-150/moApp or Docker"
      },
      {
        "title": "Requirements",
        "body": "Linux server or homelab (CT/VM works)\nDocker + docker-compose\n1Mbps+ upload bandwidth\nStatic or semi-static IP (Mysterium benefits most)\nFor Storj: 500GB+ free disk space"
      },
      {
        "title": "setup <platform>",
        "body": "Sets up a bandwidth income node for the specified platform.\n\nsetup grass       — Install Grass.io desktop node\nsetup mysterium   — Deploy Mysterium Network exit node\nsetup storj       — Configure Storj storage node\nsetup honeygain   — Deploy Honeygain container\nsetup all         — Deploy all platforms\n\nExample:\n\n\"Set up a Mysterium node on CT 215\"\n\"Install Grass on my homelab server\""
      },
      {
        "title": "status",
        "body": "Check current status of all running nodes.\n\nstatus            — All nodes summary\nstatus grass      — Grass.io node details\nstatus mysterium  — Mysterium dashboard link + uptime\nstatus storj      — Storj earnings + disk usage"
      },
      {
        "title": "earnings",
        "body": "Estimate and track earnings across platforms.\n\nearnings          — Current estimated monthly earnings\nearnings history  — Past 30 days breakdown\nearnings calc     — Calculator: enter bandwidth + disk → revenue estimate"
      },
      {
        "title": "monitor",
        "body": "Set up automated monitoring with alerts.\n\nmonitor start     — Start monitoring all nodes (checks every 5 min)\nmonitor stop      — Stop monitoring\nmonitor logs      — View recent monitoring events"
      },
      {
        "title": "restart <platform>",
        "body": "Restart a specific node.\n\nrestart grass\nrestart mysterium\nrestart all"
      },
      {
        "title": "Option 1: Grass.io (Easiest, no static IP needed)",
        "body": "# Desktop node — run on any Linux with display, or headless via Xvfb\ndocker run -d \\\n  --name grass-node \\\n  --restart unless-stopped \\\n  -e GRASS_USER=your@email.com \\\n  -e GRASS_PASS=yourpassword \\\n  mrcolorrain/grass:latest\n\n# Check status\ndocker logs grass-node --tail 20\n\nRequirements: Grass.io account (free), residential IP preferred."
      },
      {
        "title": "Option 2: Mysterium Network (Best per-MB earnings)",
        "body": "# 1. Get a Mysterium wallet first: my.mystnodes.com\n# 2. Deploy the node:\ndocker run -d \\\n  --name mysterium-node \\\n  --restart unless-stopped \\\n  --cap-add NET_ADMIN \\\n  -p 4449:4449 \\\n  -v ~/.mysterium:/root/.mysterium \\\n  mysteriumnetwork/myst:latest \\\n  service --agreed-terms-and-conditions\n\n# 3. Claim your node:\n# Visit: http://YOUR_SERVER_IP:4449\n# Enter your wallet address from my.mystnodes.com\n\nRequirements: Static/semi-static IP, port 4449 open, ERC-20 wallet."
      },
      {
        "title": "Option 3: Storj (If you have spare disk)",
        "body": "# 1. Create account at storj.io + generate auth token\n# 2. Deploy:\ndocker run -d \\\n  --name storj-node \\\n  --restart unless-stopped \\\n  -p 28967:28967 \\\n  -p 14002:14002 \\\n  -e WALLET=\"0xYOUR_ETH_WALLET\" \\\n  -e EMAIL=\"your@email.com\" \\\n  -e ADDRESS=\"YOUR_PUBLIC_IP:28967\" \\\n  -e STORAGE=\"500GB\" \\\n  -v /path/to/storj/data:/app/identity \\\n  -v /path/to/storj/storage:/app/config \\\n  storjlabs/storagenode:latest\n\nRequirements: 500GB free disk, port 28967 open, eth wallet."
      },
      {
        "title": "Docker Compose (All-in-one)",
        "body": "version: \"3.8\"\nservices:\n  grass:\n    image: mrcolorrain/grass:latest\n    container_name: grass-node\n    restart: unless-stopped\n    environment:\n      - GRASS_USER=${GRASS_EMAIL}\n      - GRASS_PASS=${GRASS_PASSWORD}\n    \n  mysterium:\n    image: mysteriumnetwork/myst:latest\n    container_name: mysterium-node\n    restart: unless-stopped\n    cap_add:\n      - NET_ADMIN\n    ports:\n      - \"4449:4449\"\n    volumes:\n      - mysterium_data:/root/.mysterium\n    command: service --agreed-terms-and-conditions\n\n  honeygain:\n    image: honeygain/honeygain:latest\n    container_name: honeygain-node\n    restart: unless-stopped\n    environment:\n      - HONEYGAIN_EMAIL=${HONEYGAIN_EMAIL}\n      - HONEYGAIN_PASS=${HONEYGAIN_PASSWORD}\n      - HONEYGAIN_DEVICE=homelab-01\n\nvolumes:\n  mysterium_data:"
      },
      {
        "title": "Earnings Calculator",
        "body": "Platform100Mbps Upload50Mbps Upload10Mbps UploadGrass.io$150-400/mo$80-200/mo$20-60/moMysterium$30-100/mo$15-50/mo$5-15/moStorj$10-50/mo$10-50/mo$10-50/moHoneygain$20-80/mo$10-40/mo$3-12/moTotal$210-630/mo$115-340/mo$38-137/mo\n\nEstimates based on community reports as of Feb 2026. Actual earnings vary."
      },
      {
        "title": "Monitoring Script",
        "body": "#!/bin/bash\n# bandwidth-monitor.sh — check all nodes and alert on failure\n\ncheck_container() {\n  local name=$1\n  local status=$(docker inspect --format='{{.State.Status}}' $name 2>/dev/null)\n  if [ \"$status\" != \"running\" ]; then\n    echo \"ALERT: $name is $status — restarting...\"\n    docker start $name\n    # openclaw message send \"⚠️ $name node went down, restarted automatically\"\n    return 1\n  fi\n  echo \"✅ $name: running\"\n}\n\ncheck_container grass-node\ncheck_container mysterium-node\ncheck_container storj-node\ncheck_container honeygain-node"
      },
      {
        "title": "Notes",
        "body": "Residential IPs earn more on Grass.io than datacenter/VPS IPs\nMysterium requires you to stake MYST tokens to unlock higher earnings\nStorj earnings grow over time as your node builds reputation\nMultiple nodes on same IP may reduce per-node earnings on some platforms\nAlways check platform ToS before running on VPS/cloud providers"
      },
      {
        "title": "Privacy & Safety",
        "body": "These platforms share your IP as an exit node or bandwidth relay\nUse a dedicated machine/container, not your primary workstation\nMysterium traffic is encrypted end-to-end; you don't see user data\nConsider running on a separate VLAN if security is a concern"
      }
    ],
    "body": "bandwidth-income\n\nTurn your unused internet bandwidth into passive crypto income. This skill helps you set up, monitor, and optimize bandwidth-sharing nodes across multiple networks.\n\nWhat It Does\nSetup Grass.io, Mysterium Network, Storj, and Honeygain nodes via Docker\nMonitor node uptime and auto-restart on failure\nTrack earnings across all platforms in one dashboard\nAlert via message when a node goes offline or earnings drop\nCalculate ROI based on your bandwidth and hardware costs\nSupported Platforms\nPlatform\tType\tEarnings\tSetup\nGrass.io\tBandwidth sharing\t$100-1000/mo\tBrowser extension or Docker\nMysterium Network\tVPN exit node\t$10-200/mo\tDocker, needs static IP\nStorj\tDecentralized storage\t$5-100/mo\tDocker, needs 500GB+ disk\nHoneygain\tBandwidth sharing\t$20-150/mo\tApp or Docker\nRequirements\nLinux server or homelab (CT/VM works)\nDocker + docker-compose\n1Mbps+ upload bandwidth\nStatic or semi-static IP (Mysterium benefits most)\nFor Storj: 500GB+ free disk space\nCommands\nsetup <platform>\n\nSets up a bandwidth income node for the specified platform.\n\nsetup grass       — Install Grass.io desktop node\nsetup mysterium   — Deploy Mysterium Network exit node\nsetup storj       — Configure Storj storage node\nsetup honeygain   — Deploy Honeygain container\nsetup all         — Deploy all platforms\n\n\nExample:\n\n\"Set up a Mysterium node on CT 215\" \"Install Grass on my homelab server\"\n\nstatus\n\nCheck current status of all running nodes.\n\nstatus            — All nodes summary\nstatus grass      — Grass.io node details\nstatus mysterium  — Mysterium dashboard link + uptime\nstatus storj      — Storj earnings + disk usage\n\nearnings\n\nEstimate and track earnings across platforms.\n\nearnings          — Current estimated monthly earnings\nearnings history  — Past 30 days breakdown\nearnings calc     — Calculator: enter bandwidth + disk → revenue estimate\n\nmonitor\n\nSet up automated monitoring with alerts.\n\nmonitor start     — Start monitoring all nodes (checks every 5 min)\nmonitor stop      — Stop monitoring\nmonitor logs      — View recent monitoring events\n\nrestart <platform>\n\nRestart a specific node.\n\nrestart grass\nrestart mysterium\nrestart all\n\nQuick Start (5 minutes)\nOption 1: Grass.io (Easiest, no static IP needed)\n# Desktop node — run on any Linux with display, or headless via Xvfb\ndocker run -d \\\n  --name grass-node \\\n  --restart unless-stopped \\\n  -e GRASS_USER=your@email.com \\\n  -e GRASS_PASS=yourpassword \\\n  mrcolorrain/grass:latest\n\n# Check status\ndocker logs grass-node --tail 20\n\n\nRequirements: Grass.io account (free), residential IP preferred.\n\nOption 2: Mysterium Network (Best per-MB earnings)\n# 1. Get a Mysterium wallet first: my.mystnodes.com\n# 2. Deploy the node:\ndocker run -d \\\n  --name mysterium-node \\\n  --restart unless-stopped \\\n  --cap-add NET_ADMIN \\\n  -p 4449:4449 \\\n  -v ~/.mysterium:/root/.mysterium \\\n  mysteriumnetwork/myst:latest \\\n  service --agreed-terms-and-conditions\n\n# 3. Claim your node:\n# Visit: http://YOUR_SERVER_IP:4449\n# Enter your wallet address from my.mystnodes.com\n\n\nRequirements: Static/semi-static IP, port 4449 open, ERC-20 wallet.\n\nOption 3: Storj (If you have spare disk)\n# 1. Create account at storj.io + generate auth token\n# 2. Deploy:\ndocker run -d \\\n  --name storj-node \\\n  --restart unless-stopped \\\n  -p 28967:28967 \\\n  -p 14002:14002 \\\n  -e WALLET=\"0xYOUR_ETH_WALLET\" \\\n  -e EMAIL=\"your@email.com\" \\\n  -e ADDRESS=\"YOUR_PUBLIC_IP:28967\" \\\n  -e STORAGE=\"500GB\" \\\n  -v /path/to/storj/data:/app/identity \\\n  -v /path/to/storj/storage:/app/config \\\n  storjlabs/storagenode:latest\n\n\nRequirements: 500GB free disk, port 28967 open, eth wallet.\n\nDocker Compose (All-in-one)\nversion: \"3.8\"\nservices:\n  grass:\n    image: mrcolorrain/grass:latest\n    container_name: grass-node\n    restart: unless-stopped\n    environment:\n      - GRASS_USER=${GRASS_EMAIL}\n      - GRASS_PASS=${GRASS_PASSWORD}\n    \n  mysterium:\n    image: mysteriumnetwork/myst:latest\n    container_name: mysterium-node\n    restart: unless-stopped\n    cap_add:\n      - NET_ADMIN\n    ports:\n      - \"4449:4449\"\n    volumes:\n      - mysterium_data:/root/.mysterium\n    command: service --agreed-terms-and-conditions\n\n  honeygain:\n    image: honeygain/honeygain:latest\n    container_name: honeygain-node\n    restart: unless-stopped\n    environment:\n      - HONEYGAIN_EMAIL=${HONEYGAIN_EMAIL}\n      - HONEYGAIN_PASS=${HONEYGAIN_PASSWORD}\n      - HONEYGAIN_DEVICE=homelab-01\n\nvolumes:\n  mysterium_data:\n\nEarnings Calculator\nPlatform\t100Mbps Upload\t50Mbps Upload\t10Mbps Upload\nGrass.io\t$150-400/mo\t$80-200/mo\t$20-60/mo\nMysterium\t$30-100/mo\t$15-50/mo\t$5-15/mo\nStorj\t$10-50/mo\t$10-50/mo\t$10-50/mo\nHoneygain\t$20-80/mo\t$10-40/mo\t$3-12/mo\nTotal\t$210-630/mo\t$115-340/mo\t$38-137/mo\n\nEstimates based on community reports as of Feb 2026. Actual earnings vary.\n\nMonitoring Script\n#!/bin/bash\n# bandwidth-monitor.sh — check all nodes and alert on failure\n\ncheck_container() {\n  local name=$1\n  local status=$(docker inspect --format='{{.State.Status}}' $name 2>/dev/null)\n  if [ \"$status\" != \"running\" ]; then\n    echo \"ALERT: $name is $status — restarting...\"\n    docker start $name\n    # openclaw message send \"⚠️ $name node went down, restarted automatically\"\n    return 1\n  fi\n  echo \"✅ $name: running\"\n}\n\ncheck_container grass-node\ncheck_container mysterium-node\ncheck_container storj-node\ncheck_container honeygain-node\n\nNotes\nResidential IPs earn more on Grass.io than datacenter/VPS IPs\nMysterium requires you to stake MYST tokens to unlock higher earnings\nStorj earnings grow over time as your node builds reputation\nMultiple nodes on same IP may reduce per-node earnings on some platforms\nAlways check platform ToS before running on VPS/cloud providers\nPrivacy & Safety\nThese platforms share your IP as an exit node or bandwidth relay\nUse a dedicated machine/container, not your primary workstation\nMysterium traffic is encrypted end-to-end; you don't see user data\nConsider running on a separate VLAN if security is a concern"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/mariusfit/bandwidth-income",
    "publisherUrl": "https://clawhub.ai/mariusfit/bandwidth-income",
    "owner": "mariusfit",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/bandwidth-income",
    "downloadUrl": "https://openagent3.xyz/downloads/bandwidth-income",
    "agentUrl": "https://openagent3.xyz/skills/bandwidth-income/agent",
    "manifestUrl": "https://openagent3.xyz/skills/bandwidth-income/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/bandwidth-income/agent.md"
  }
}