{
  "schemaVersion": "1.0",
  "item": {
    "slug": "dogecoin-node",
    "name": "Dogecoin Node",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/GreatApe42069/dogecoin-node",
    "canonicalUrl": "https://clawhub.ai/GreatApe42069/dogecoin-node",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/dogecoin-node",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=dogecoin-node",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "HEARTBEAT.md",
      "package.json",
      "RPC_CHEATSHEET.md",
      "SKILL.md",
      "_meta.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-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.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/dogecoin-node"
    },
    "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/dogecoin-node",
    "agentPageUrl": "https://openagent3.xyz/skills/dogecoin-node/agent",
    "manifestUrl": "https://openagent3.xyz/skills/dogecoin-node/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/dogecoin-node/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": "Dogecoin Node Skill",
        "body": "This skill is designed to fully automate the integration and operation of a Dogecoin Core full node and CLI over RPC, enabling blockchain tools and wallet management for various use cases, including tipping functionality using SQLite.\n\nThis skill provides:"
      },
      {
        "title": "Functionalities",
        "body": "Fetch Wallet Balance\n\nRetrieves the current balance of a Dogecoin wallet address.\nExample: /dogecoin-node balance <wallet_address>\n\n\n\nSend DOGE\n\nSend Dogecoin from a connected wallet to a specified address.\nExample: /dogecoin-node send <recipient_address> <amount>\n\n\n\nCheck Transactions\n\nRetrieve recent transaction details of a wallet.\nExample: /dogecoin-node txs <wallet_address>\n\n\n\nCheck DOGE Price\n\nFetch the latest Dogecoin price in USD.\nExample: /dogecoin-node price\n\n\n\nHelp Command\n\nDisplay help information about commands.\nExample: /dogecoin-node help"
      },
      {
        "title": "Prerequisites",
        "body": "A fully synced Dogecoin Core RPC node.\nDogecoin rpcuser and rpcpassword configured in dogecoin.conf.\nOpenClaw Gateway up-to-date.\njq installed on the host (sudo apt install jq)."
      },
      {
        "title": "Steps to Configure Node",
        "body": "Install binaries and Download Dogecoin Core\n\ncd ~/downloads\ncurl -L -o dogecoin-1.14.9-x86_64-linux-gnu.tar.gz \\\n  [https://github.com/dogecoin/dogecoin/releases/download/v1.14.9/dogecoin-1.14.9-x86_64-linux-gnu.tar.gz](https://github.com/dogecoin/dogecoin/releases/download/v1.14.9/dogecoin-1.14.9-x86_64-linux-gnu.tar.gz)\n\nExtract and Place Binaries\n\ntar xf dogecoin-1.14.9-x86_64-linux-gnu.tar.gz\nmkdir -p ~/bin/dogecoin-1.14.9\ncp -r dogecoin-1.14.9/* ~/bin/dogecoin-1.14.9/\nln -sf ~/bin/dogecoin-1.14.9/bin/dogecoind ~/dogecoind\nln -sf ~/bin/dogecoin-1.14.9/bin/dogecoin-cli ~/dogecoin-cli\n\nSetup Prime Data Directory (for ~/.dogecoin)\n\n./dogecoind -datadir=$HOME/.dogecoin -server=1 -listen=0 -daemon\n# Wait for RPC to initialize ~30s then stop once RPC is responsive\nsleep 30\n./dogecoin-cli -datadir=$HOME/.dogecoin stop\n\nConfiguring RPC Credentials (localhost only)\n\ncat > ~/.dogecoin/dogecoin.conf <<'EOF'\nserver=1\ndaemon=1\nlisten=1\nrpcbind=127.0.0.1\nrpcallowip=127.0.0.1\nrpcuser=<strong-username>\nrpcpassword=<strong-password>\ntxindex=1\nEOF\n\nStart and Sync\n\n./dogecoind -datadir=$HOME/.dogecoin -daemon\n\nCheck sync\n\n./dogecoin-cli -datadir=$HOME/.dogecoin getblockcount\n\n./dogecoin-cli -datadir=$HOME/.dogecoin getblockchaininfo"
      },
      {
        "title": "Blockchain Commands",
        "body": "./dogecoin-cli getblockcount # Get the current block height\n./dogecoin-cli getblockchaininfo # Detailed blockchain stats\n./dogecoin-cli getbestblockhash # Get the hash of the latest block\n./dogecoin-cli getblockhash <height> # Get the hash of a block \n./dogecoin-cli getblock <blockhash> # Details for a specific block"
      },
      {
        "title": "Network, Utility, & Wallet Commands",
        "body": "./dogecoin-cli getconnectioncount # Number of peer connections\n./dogecoin-cli getpeerinfo # Info about connected peers\n./dogecoin-cli addnode <address> onetry # Try a one-time connection to a node\n./dogecoin-cli ping # Ping all connected nodes\n./dogecoin-cli getnewaddress # Generate a new receiving address\n./dogecoin-cli getwalletinfo # Wallet details (balance, etc.)\n./dogecoin-cli listunspent # List all unspent transactions\n./dogecoin-cli sendtoaddress <address> <amount> # Send DOGE\n./dogecoin-cli dumpprivkey <address> # Export private key for an address (use this with extreme caution its for backing up your key or using it elsewhere if needed , THIS WILL PRINT YOUR CURRENT PRIV KEY, CAUTION!!)\n\n./dogecoin-cli stop # Stop the Dogecoin node safely\n./dogecoin-cli help # List all available commands and usage details\n\nFor dynamic queries beyond this list, always refer to: ./dogecoin-cli help."
      },
      {
        "title": "Automated Health Check (v1.0.5 Robustness Update)",
        "body": "The health check now includes blockchain metadata parsing, disk monitoring, and live price fetching from CoinGecko."
      },
      {
        "title": "Health Check Script Setup:",
        "body": "Create the script at ~/.openclaw/workspace/archive/health/doge_health_check.sh:\n\nmkdir -p ~/.openclaw/workspace/archive/health/\n\ncat > ~/.openclaw/workspace/archive/health/doge_health_check.sh <<'EOF'\n#!/bin/bash\n\n# --- Dogecoin Health Check Automation ---\necho \"Starting Health Check: $(date)\"\nDOGE_CLI=\"$HOME/dogecoin-cli\"\nDATA_DIR=\"$HOME/.dogecoin\"\nCOINGECKO_API=\"[https://api.coingecko.com/api/v3/simple/price?ids=dogecoin&vs_currencies=usd](https://api.coingecko.com/api/v3/simple/price?ids=dogecoin&vs_currencies=usd)\"\n\n# 1. Check Node Process\nif pgrep -x \"dogecoind\" > /dev/null; then\n    echo \"[PASS] Dogecoin node process detected.\"\nelse\n    echo \"[FAIL] Dogecoin node is offline. Attempting restart...\"\n    ~/dogecoind -datadir=$DATA_DIR -daemon\nfi\n\n# 2. Blockchain Sync & Status\nNODE_INFO=$($DOGE_CLI -datadir=$DATA_DIR getblockchaininfo 2>/dev/null)\nif [ $? -eq 0 ]; then\n    CHAIN=$(echo $NODE_INFO | jq -r '.chain')\n    BLOCKS=$(echo $NODE_INFO | jq -r '.blocks')\n    PROGRESS=$(echo $NODE_INFO | jq -r '.verificationprogress')\n    SYNC_PCT=$(echo \"$PROGRESS * 100\" | bc 2>/dev/null || echo \"0\")\n    echo \"[PASS] Chain: $CHAIN | Height: $BLOCKS | Sync: ${SYNC_PCT}%\"\nelse\n    echo \"[FAIL] RPC Unresponsive. Check credentials in dogecoin.conf.\"\nfi\n\n# 3. Market Price Check\nPRICE=$(curl -s \"$COINGECKO_API\" | jq -r '.dogecoin.usd')\nif [ \"$PRICE\" != \"null\" ] && [ -n \"$PRICE\" ]; then\n    echo \"[INFO] Live Price: \\$$PRICE USD\"\nelse\n    echo \"[WARN] Could not fetch market price.\"\nfi\n\n# 4. Disk Space Check\nFREE_GB=$(df -BG $DATA_DIR | awk 'NR==2 {print $4}' | sed 's/G//')\nif [ \"$FREE_GB\" -lt 10 ]; then\n    echo \"[CRITICAL] Low Disk Space: Only ${FREE_GB}GB remaining!\"\nelse\n    echo \"[PASS] Disk Space: ${FREE_GB}GB available.\"\nfi\n\n# 5. Tipping Database Integrity\nDB_PATH=\"$HOME/.openclaw/workspace/archive/tipping/dogecoin_tipping.db\"\nif [ -f \"$DB_PATH\" ]; then\n    DB_CHECK=$(sqlite3 \"$DB_PATH\" \"PRAGMA integrity_check;\")\n    if [ \"$DB_CHECK\" == \"ok\" ]; then\n        echo \"[PASS] Tipping database integrity verified.\"\n    else\n        echo \"[FAIL] Database Error: $DB_CHECK\"\n    fi\nfi\n\necho \"Health Check Complete.\"\nEOF\n\nchmod +x ~/.openclaw/workspace/archive/health/doge_health_check.sh"
      },
      {
        "title": "Tipping Integration (Optional Feature):",
        "body": "Once your node is set up and syncing, you can enable the tipping feature. This allows you to send Dogecoin tips, maintain a user wallet database, and log transactions."
      },
      {
        "title": "~/.openclaw/workspace/archive/tipping/ with the following code:",
        "body": "mkdir -p ~/.openclaw/workspace/archive/tipping/\n\ncat > ~/.openclaw/workspace/archive/tipping/dogecoin_tipping.py <<'EOF'\nimport sqlite3\nimport time\nfrom typing import Optional\n\nclass DogecoinTippingDB:\n    def __init__(self, db_path: str = \"dogecoin_tipping.db\"):\n        self.conn = sqlite3.connect(db_path)\n        self.create_tables()\n\n    def create_tables(self):\n        with self.conn:\n            self.conn.execute(\"\"\"\n                CREATE TABLE IF NOT EXISTS users (\n                    id INTEGER PRIMARY KEY AUTOINCREMENT,\n                    username TEXT UNIQUE NOT NULL,\n                    wallet_address TEXT NOT NULL\n                )\n            \"\"\")\n            self.conn.execute(\"\"\"\n                CREATE TABLE IF NOT EXISTS transactions (\n                    id INTEGER PRIMARY KEY AUTOINCREMENT,\n                    sender TEXT NOT NULL,\n                    receiver TEXT NOT NULL,\n                    amount REAL NOT NULL,\n                    timestamp INTEGER NOT NULL\n                )\n            \"\"\")\n\n    def add_user(self, username: str, wallet_address: str) -> bool:\n        try:\n            with self.conn:\n                self.conn.execute(\"INSERT INTO users (username, wallet_address) VALUES (?, ?)\", (username, wallet_address))\n            return True\n        except sqlite3.IntegrityError:\n            return False\n\n    def get_wallet_address(self, username: str) -> Optional[str]:\n        result = self.conn.execute(\"SELECT wallet_address FROM users WHERE username = ?\", (username,)).fetchone()\n        return result[0] if result else None\n\n    def list_users(self) -> list:\n        return [row[0] for row in self.conn.execute(\"SELECT username FROM users\").fetchall()]\n\n    def log_transaction(self, sender: str, receiver: str, amount: float):\n        timestamp = int(time.time())\n        with self.conn:\n            self.conn.execute(\"INSERT INTO transactions (sender, receiver, amount, timestamp) VALUES (?, ?, ?, ?)\", (sender, receiver, amount, timestamp))\n\n    def get_sent_tips(self, sender: str, receiver: str) -> tuple:\n        result = self.conn.execute(\"SELECT COUNT(*), SUM(amount) FROM transactions WHERE sender = ? AND receiver = ?\", (sender, receiver)).fetchone()\n        return result[0], (result[1] if result[1] else 0.0)\n\nclass DogecoinTipping:\n    def __init__(self):\n        self.db = DogecoinTippingDB()\n\n    def send_tip(self, sender: str, receiver: str, amount: float) -> str:\n        if amount <= 0: return \"Amount must be > 0.\"\n        if not self.db.get_wallet_address(sender): return f\"Sender '{sender}' not found.\"\n        if not self.db.get_wallet_address(receiver): return f\"Receiver '{receiver}' not found.\"\n        \n        self.db.log_transaction(sender, receiver, amount)\n        return f\"Logged tip of {amount} DOGE from {sender} to {receiver}.\"\n\n    def command_list_wallets(self) -> str:\n        users = self.db.list_users()\n        return \"Registered wallets: \" + \", \".join(users)\n\n    def command_get_address(self, username: str) -> str:\n        address = self.db.get_wallet_address(username)\n        if address:\n            return f\"{username}'s wallet address is {address}.\"\n        return f\"User '{username}' not found.\"\n\n    def command_get_tips(self, sender: str, receiver: str) -> str:\n        count, total = self.db.get_sent_tips(sender, receiver)\n        return f\"{sender} has sent {count} tips totaling {total} DOGE to {receiver}.\"\n\nif __name__ == \"__main__\":\n    tipping = DogecoinTipping()\n    print(\"Dogecoin Tipping System Initialized...MANY TIPS... MUCH WOW\")\n\n    # Sample workflow\n    print(\"Adding users...\")\n    tipping.db.add_user(\"alice\", \"DGKGv8wP8iRJmjdRUEdvVL2b5BywKC65JT\")\n    tipping.db.add_user(\"bob\", \"DBpLvNcR1Zj8B6dKJp4n3XEAT4FmRxbnJb\")\n\n    print(\"Listing wallets...\")\n    print(tipping.command_list_wallets())\n\n    print(\"Fetching wallet addresses...\")\n    print(tipping.command_get_address(\"alice\"))\n    print(tipping.command_get_address(\"bob\"))\n\n    print(\"Sending tips...\")\n    print(tipping.send_tip(\"alice\", \"bob\", 12.5))\n    print(tipping.send_tip(\"alice\", \"bob\", 7.5))\n\n    print(\"Getting tip summary...\")\n    print(tipping.command_get_tips(\"alice\", \"bob\"))\nEOF\n\nTechnical usage previously documented. Contact for refinement or extensions!"
      }
    ],
    "body": "Dogecoin Node Skill\n\nThis skill is designed to fully automate the integration and operation of a Dogecoin Core full node and CLI over RPC, enabling blockchain tools and wallet management for various use cases, including tipping functionality using SQLite.\n\nThis skill provides:\n\nFunctionalities\n\nFetch Wallet Balance\n\nRetrieves the current balance of a Dogecoin wallet address.\nExample: /dogecoin-node balance <wallet_address>\n\nSend DOGE\n\nSend Dogecoin from a connected wallet to a specified address.\nExample: /dogecoin-node send <recipient_address> <amount>\n\nCheck Transactions\n\nRetrieve recent transaction details of a wallet.\nExample: /dogecoin-node txs <wallet_address>\n\nCheck DOGE Price\n\nFetch the latest Dogecoin price in USD.\nExample: /dogecoin-node price\n\nHelp Command\n\nDisplay help information about commands.\nExample: /dogecoin-node help\nInstallation\nPrerequisites\nA fully synced Dogecoin Core RPC node.\nDogecoin rpcuser and rpcpassword configured in dogecoin.conf.\nOpenClaw Gateway up-to-date.\njq installed on the host (sudo apt install jq).\nSteps to Configure Node\nInstall binaries and Download Dogecoin Core\ncd ~/downloads\ncurl -L -o dogecoin-1.14.9-x86_64-linux-gnu.tar.gz \\\n  [https://github.com/dogecoin/dogecoin/releases/download/v1.14.9/dogecoin-1.14.9-x86_64-linux-gnu.tar.gz](https://github.com/dogecoin/dogecoin/releases/download/v1.14.9/dogecoin-1.14.9-x86_64-linux-gnu.tar.gz)\n\n\nExtract and Place Binaries\ntar xf dogecoin-1.14.9-x86_64-linux-gnu.tar.gz\nmkdir -p ~/bin/dogecoin-1.14.9\ncp -r dogecoin-1.14.9/* ~/bin/dogecoin-1.14.9/\nln -sf ~/bin/dogecoin-1.14.9/bin/dogecoind ~/dogecoind\nln -sf ~/bin/dogecoin-1.14.9/bin/dogecoin-cli ~/dogecoin-cli\n\n\nSetup Prime Data Directory (for ~/.dogecoin)\n./dogecoind -datadir=$HOME/.dogecoin -server=1 -listen=0 -daemon\n# Wait for RPC to initialize ~30s then stop once RPC is responsive\nsleep 30\n./dogecoin-cli -datadir=$HOME/.dogecoin stop\n\n\nConfiguring RPC Credentials (localhost only)\ncat > ~/.dogecoin/dogecoin.conf <<'EOF'\nserver=1\ndaemon=1\nlisten=1\nrpcbind=127.0.0.1\nrpcallowip=127.0.0.1\nrpcuser=<strong-username>\nrpcpassword=<strong-password>\ntxindex=1\nEOF\n\n\nStart and Sync\n./dogecoind -datadir=$HOME/.dogecoin -daemon\n\n\nCheck sync\n./dogecoin-cli -datadir=$HOME/.dogecoin getblockcount\n\n./dogecoin-cli -datadir=$HOME/.dogecoin getblockchaininfo\n\nRPC/CLI Commands Cheatsheet\nBlockchain Commands\n./dogecoin-cli getblockcount # Get the current block height\n./dogecoin-cli getblockchaininfo # Detailed blockchain stats\n./dogecoin-cli getbestblockhash # Get the hash of the latest block\n./dogecoin-cli getblockhash <height> # Get the hash of a block \n./dogecoin-cli getblock <blockhash> # Details for a specific block\n\n\nNetwork, Utility, & Wallet Commands\n./dogecoin-cli getconnectioncount # Number of peer connections\n./dogecoin-cli getpeerinfo # Info about connected peers\n./dogecoin-cli addnode <address> onetry # Try a one-time connection to a node\n./dogecoin-cli ping # Ping all connected nodes\n./dogecoin-cli getnewaddress # Generate a new receiving address\n./dogecoin-cli getwalletinfo # Wallet details (balance, etc.)\n./dogecoin-cli listunspent # List all unspent transactions\n./dogecoin-cli sendtoaddress <address> <amount> # Send DOGE\n./dogecoin-cli dumpprivkey <address> # Export private key for an address (use this with extreme caution its for backing up your key or using it elsewhere if needed , THIS WILL PRINT YOUR CURRENT PRIV KEY, CAUTION!!)\n\n./dogecoin-cli stop # Stop the Dogecoin node safely\n./dogecoin-cli help # List all available commands and usage details\n\n\nFor dynamic queries beyond this list, always refer to: ./dogecoin-cli help.\n\nAutomated Health Check (v1.0.5 Robustness Update)\n\nThe health check now includes blockchain metadata parsing, disk monitoring, and live price fetching from CoinGecko.\n\nHealth Check Script Setup:\nCreate the script at ~/.openclaw/workspace/archive/health/doge_health_check.sh:\nmkdir -p ~/.openclaw/workspace/archive/health/\n\ncat > ~/.openclaw/workspace/archive/health/doge_health_check.sh <<'EOF'\n#!/bin/bash\n\n# --- Dogecoin Health Check Automation ---\necho \"Starting Health Check: $(date)\"\nDOGE_CLI=\"$HOME/dogecoin-cli\"\nDATA_DIR=\"$HOME/.dogecoin\"\nCOINGECKO_API=\"[https://api.coingecko.com/api/v3/simple/price?ids=dogecoin&vs_currencies=usd](https://api.coingecko.com/api/v3/simple/price?ids=dogecoin&vs_currencies=usd)\"\n\n# 1. Check Node Process\nif pgrep -x \"dogecoind\" > /dev/null; then\n    echo \"[PASS] Dogecoin node process detected.\"\nelse\n    echo \"[FAIL] Dogecoin node is offline. Attempting restart...\"\n    ~/dogecoind -datadir=$DATA_DIR -daemon\nfi\n\n# 2. Blockchain Sync & Status\nNODE_INFO=$($DOGE_CLI -datadir=$DATA_DIR getblockchaininfo 2>/dev/null)\nif [ $? -eq 0 ]; then\n    CHAIN=$(echo $NODE_INFO | jq -r '.chain')\n    BLOCKS=$(echo $NODE_INFO | jq -r '.blocks')\n    PROGRESS=$(echo $NODE_INFO | jq -r '.verificationprogress')\n    SYNC_PCT=$(echo \"$PROGRESS * 100\" | bc 2>/dev/null || echo \"0\")\n    echo \"[PASS] Chain: $CHAIN | Height: $BLOCKS | Sync: ${SYNC_PCT}%\"\nelse\n    echo \"[FAIL] RPC Unresponsive. Check credentials in dogecoin.conf.\"\nfi\n\n# 3. Market Price Check\nPRICE=$(curl -s \"$COINGECKO_API\" | jq -r '.dogecoin.usd')\nif [ \"$PRICE\" != \"null\" ] && [ -n \"$PRICE\" ]; then\n    echo \"[INFO] Live Price: \\$$PRICE USD\"\nelse\n    echo \"[WARN] Could not fetch market price.\"\nfi\n\n# 4. Disk Space Check\nFREE_GB=$(df -BG $DATA_DIR | awk 'NR==2 {print $4}' | sed 's/G//')\nif [ \"$FREE_GB\" -lt 10 ]; then\n    echo \"[CRITICAL] Low Disk Space: Only ${FREE_GB}GB remaining!\"\nelse\n    echo \"[PASS] Disk Space: ${FREE_GB}GB available.\"\nfi\n\n# 5. Tipping Database Integrity\nDB_PATH=\"$HOME/.openclaw/workspace/archive/tipping/dogecoin_tipping.db\"\nif [ -f \"$DB_PATH\" ]; then\n    DB_CHECK=$(sqlite3 \"$DB_PATH\" \"PRAGMA integrity_check;\")\n    if [ \"$DB_CHECK\" == \"ok\" ]; then\n        echo \"[PASS] Tipping database integrity verified.\"\n    else\n        echo \"[FAIL] Database Error: $DB_CHECK\"\n    fi\nfi\n\necho \"Health Check Complete.\"\nEOF\n\nchmod +x ~/.openclaw/workspace/archive/health/doge_health_check.sh\n\n\nTipping Integration (Optional Feature):\n\nOnce your node is set up and syncing, you can enable the tipping feature. This allows you to send Dogecoin tips, maintain a user wallet database, and log transactions.\n\nTipping Script Setup:\n1. To enable the tipping feature, create dogecoin_tipping.py at:\n~/.openclaw/workspace/archive/tipping/ with the following code:\nmkdir -p ~/.openclaw/workspace/archive/tipping/\n\ncat > ~/.openclaw/workspace/archive/tipping/dogecoin_tipping.py <<'EOF'\nimport sqlite3\nimport time\nfrom typing import Optional\n\nclass DogecoinTippingDB:\n    def __init__(self, db_path: str = \"dogecoin_tipping.db\"):\n        self.conn = sqlite3.connect(db_path)\n        self.create_tables()\n\n    def create_tables(self):\n        with self.conn:\n            self.conn.execute(\"\"\"\n                CREATE TABLE IF NOT EXISTS users (\n                    id INTEGER PRIMARY KEY AUTOINCREMENT,\n                    username TEXT UNIQUE NOT NULL,\n                    wallet_address TEXT NOT NULL\n                )\n            \"\"\")\n            self.conn.execute(\"\"\"\n                CREATE TABLE IF NOT EXISTS transactions (\n                    id INTEGER PRIMARY KEY AUTOINCREMENT,\n                    sender TEXT NOT NULL,\n                    receiver TEXT NOT NULL,\n                    amount REAL NOT NULL,\n                    timestamp INTEGER NOT NULL\n                )\n            \"\"\")\n\n    def add_user(self, username: str, wallet_address: str) -> bool:\n        try:\n            with self.conn:\n                self.conn.execute(\"INSERT INTO users (username, wallet_address) VALUES (?, ?)\", (username, wallet_address))\n            return True\n        except sqlite3.IntegrityError:\n            return False\n\n    def get_wallet_address(self, username: str) -> Optional[str]:\n        result = self.conn.execute(\"SELECT wallet_address FROM users WHERE username = ?\", (username,)).fetchone()\n        return result[0] if result else None\n\n    def list_users(self) -> list:\n        return [row[0] for row in self.conn.execute(\"SELECT username FROM users\").fetchall()]\n\n    def log_transaction(self, sender: str, receiver: str, amount: float):\n        timestamp = int(time.time())\n        with self.conn:\n            self.conn.execute(\"INSERT INTO transactions (sender, receiver, amount, timestamp) VALUES (?, ?, ?, ?)\", (sender, receiver, amount, timestamp))\n\n    def get_sent_tips(self, sender: str, receiver: str) -> tuple:\n        result = self.conn.execute(\"SELECT COUNT(*), SUM(amount) FROM transactions WHERE sender = ? AND receiver = ?\", (sender, receiver)).fetchone()\n        return result[0], (result[1] if result[1] else 0.0)\n\nclass DogecoinTipping:\n    def __init__(self):\n        self.db = DogecoinTippingDB()\n\n    def send_tip(self, sender: str, receiver: str, amount: float) -> str:\n        if amount <= 0: return \"Amount must be > 0.\"\n        if not self.db.get_wallet_address(sender): return f\"Sender '{sender}' not found.\"\n        if not self.db.get_wallet_address(receiver): return f\"Receiver '{receiver}' not found.\"\n        \n        self.db.log_transaction(sender, receiver, amount)\n        return f\"Logged tip of {amount} DOGE from {sender} to {receiver}.\"\n\n    def command_list_wallets(self) -> str:\n        users = self.db.list_users()\n        return \"Registered wallets: \" + \", \".join(users)\n\n    def command_get_address(self, username: str) -> str:\n        address = self.db.get_wallet_address(username)\n        if address:\n            return f\"{username}'s wallet address is {address}.\"\n        return f\"User '{username}' not found.\"\n\n    def command_get_tips(self, sender: str, receiver: str) -> str:\n        count, total = self.db.get_sent_tips(sender, receiver)\n        return f\"{sender} has sent {count} tips totaling {total} DOGE to {receiver}.\"\n\nif __name__ == \"__main__\":\n    tipping = DogecoinTipping()\n    print(\"Dogecoin Tipping System Initialized...MANY TIPS... MUCH WOW\")\n\n    # Sample workflow\n    print(\"Adding users...\")\n    tipping.db.add_user(\"alice\", \"DGKGv8wP8iRJmjdRUEdvVL2b5BywKC65JT\")\n    tipping.db.add_user(\"bob\", \"DBpLvNcR1Zj8B6dKJp4n3XEAT4FmRxbnJb\")\n\n    print(\"Listing wallets...\")\n    print(tipping.command_list_wallets())\n\n    print(\"Fetching wallet addresses...\")\n    print(tipping.command_get_address(\"alice\"))\n    print(tipping.command_get_address(\"bob\"))\n\n    print(\"Sending tips...\")\n    print(tipping.send_tip(\"alice\", \"bob\", 12.5))\n    print(tipping.send_tip(\"alice\", \"bob\", 7.5))\n\n    print(\"Getting tip summary...\")\n    print(tipping.command_get_tips(\"alice\", \"bob\"))\nEOF\n\n\nTechnical usage previously documented. Contact for refinement or extensions!"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/GreatApe42069/dogecoin-node",
    "publisherUrl": "https://clawhub.ai/GreatApe42069/dogecoin-node",
    "owner": "GreatApe42069",
    "version": "1.0.5",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/dogecoin-node",
    "downloadUrl": "https://openagent3.xyz/downloads/dogecoin-node",
    "agentUrl": "https://openagent3.xyz/skills/dogecoin-node/agent",
    "manifestUrl": "https://openagent3.xyz/skills/dogecoin-node/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/dogecoin-node/agent.md"
  }
}