Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
A skill to set up and operate a Dogecoin Core full node with RPC access, blockchain tools, and optional tipping functionality.
A skill to set up and operate a Dogecoin Core full node with RPC access, blockchain tools, and optional tipping functionality.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
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.
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.
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. This skill provides:
Fetch Wallet Balance Retrieves the current balance of a Dogecoin wallet address. Example: /dogecoin-node balance <wallet_address> Send DOGE Send Dogecoin from a connected wallet to a specified address. Example: /dogecoin-node send <recipient_address> <amount> Check Transactions Retrieve recent transaction details of a wallet. Example: /dogecoin-node txs <wallet_address> Check DOGE Price Fetch the latest Dogecoin price in USD. Example: /dogecoin-node price Help Command Display help information about commands. Example: /dogecoin-node help
A fully synced Dogecoin Core RPC node. Dogecoin rpcuser and rpcpassword configured in dogecoin.conf. OpenClaw Gateway up-to-date. jq installed on the host (sudo apt install jq).
Install binaries and Download Dogecoin Core cd ~/downloads curl -L -o 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](https://github.com/dogecoin/dogecoin/releases/download/v1.14.9/dogecoin-1.14.9-x86_64-linux-gnu.tar.gz) Extract and Place Binaries tar xf dogecoin-1.14.9-x86_64-linux-gnu.tar.gz mkdir -p ~/bin/dogecoin-1.14.9 cp -r dogecoin-1.14.9/* ~/bin/dogecoin-1.14.9/ ln -sf ~/bin/dogecoin-1.14.9/bin/dogecoind ~/dogecoind ln -sf ~/bin/dogecoin-1.14.9/bin/dogecoin-cli ~/dogecoin-cli Setup Prime Data Directory (for ~/.dogecoin) ./dogecoind -datadir=$HOME/.dogecoin -server=1 -listen=0 -daemon # Wait for RPC to initialize ~30s then stop once RPC is responsive sleep 30 ./dogecoin-cli -datadir=$HOME/.dogecoin stop Configuring RPC Credentials (localhost only) cat > ~/.dogecoin/dogecoin.conf <<'EOF' server=1 daemon=1 listen=1 rpcbind=127.0.0.1 rpcallowip=127.0.0.1 rpcuser=<strong-username> rpcpassword=<strong-password> txindex=1 EOF Start and Sync ./dogecoind -datadir=$HOME/.dogecoin -daemon Check sync ./dogecoin-cli -datadir=$HOME/.dogecoin getblockcount ./dogecoin-cli -datadir=$HOME/.dogecoin getblockchaininfo
./dogecoin-cli getblockcount # Get the current block height ./dogecoin-cli getblockchaininfo # Detailed blockchain stats ./dogecoin-cli getbestblockhash # Get the hash of the latest block ./dogecoin-cli getblockhash <height> # Get the hash of a block ./dogecoin-cli getblock <blockhash> # Details for a specific block
./dogecoin-cli getconnectioncount # Number of peer connections ./dogecoin-cli getpeerinfo # Info about connected peers ./dogecoin-cli addnode <address> onetry # Try a one-time connection to a node ./dogecoin-cli ping # Ping all connected nodes ./dogecoin-cli getnewaddress # Generate a new receiving address ./dogecoin-cli getwalletinfo # Wallet details (balance, etc.) ./dogecoin-cli listunspent # List all unspent transactions ./dogecoin-cli sendtoaddress <address> <amount> # Send DOGE ./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!!) ./dogecoin-cli stop # Stop the Dogecoin node safely ./dogecoin-cli help # List all available commands and usage details For dynamic queries beyond this list, always refer to: ./dogecoin-cli help.
The health check now includes blockchain metadata parsing, disk monitoring, and live price fetching from CoinGecko.
Create the script at ~/.openclaw/workspace/archive/health/doge_health_check.sh: mkdir -p ~/.openclaw/workspace/archive/health/ cat > ~/.openclaw/workspace/archive/health/doge_health_check.sh <<'EOF' #!/bin/bash # --- Dogecoin Health Check Automation --- echo "Starting Health Check: $(date)" DOGE_CLI="$HOME/dogecoin-cli" DATA_DIR="$HOME/.dogecoin" COINGECKO_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)" # 1. Check Node Process if pgrep -x "dogecoind" > /dev/null; then echo "[PASS] Dogecoin node process detected." else echo "[FAIL] Dogecoin node is offline. Attempting restart..." ~/dogecoind -datadir=$DATA_DIR -daemon fi # 2. Blockchain Sync & Status NODE_INFO=$($DOGE_CLI -datadir=$DATA_DIR getblockchaininfo 2>/dev/null) if [ $? -eq 0 ]; then CHAIN=$(echo $NODE_INFO | jq -r '.chain') BLOCKS=$(echo $NODE_INFO | jq -r '.blocks') PROGRESS=$(echo $NODE_INFO | jq -r '.verificationprogress') SYNC_PCT=$(echo "$PROGRESS * 100" | bc 2>/dev/null || echo "0") echo "[PASS] Chain: $CHAIN | Height: $BLOCKS | Sync: ${SYNC_PCT}%" else echo "[FAIL] RPC Unresponsive. Check credentials in dogecoin.conf." fi # 3. Market Price Check PRICE=$(curl -s "$COINGECKO_API" | jq -r '.dogecoin.usd') if [ "$PRICE" != "null" ] && [ -n "$PRICE" ]; then echo "[INFO] Live Price: \$$PRICE USD" else echo "[WARN] Could not fetch market price." fi # 4. Disk Space Check FREE_GB=$(df -BG $DATA_DIR | awk 'NR==2 {print $4}' | sed 's/G//') if [ "$FREE_GB" -lt 10 ]; then echo "[CRITICAL] Low Disk Space: Only ${FREE_GB}GB remaining!" else echo "[PASS] Disk Space: ${FREE_GB}GB available." fi # 5. Tipping Database Integrity DB_PATH="$HOME/.openclaw/workspace/archive/tipping/dogecoin_tipping.db" if [ -f "$DB_PATH" ]; then DB_CHECK=$(sqlite3 "$DB_PATH" "PRAGMA integrity_check;") if [ "$DB_CHECK" == "ok" ]; then echo "[PASS] Tipping database integrity verified." else echo "[FAIL] Database Error: $DB_CHECK" fi fi echo "Health Check Complete." EOF chmod +x ~/.openclaw/workspace/archive/health/doge_health_check.sh
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.
mkdir -p ~/.openclaw/workspace/archive/tipping/ cat > ~/.openclaw/workspace/archive/tipping/dogecoin_tipping.py <<'EOF' import sqlite3 import time from typing import Optional class DogecoinTippingDB: def __init__(self, db_path: str = "dogecoin_tipping.db"): self.conn = sqlite3.connect(db_path) self.create_tables() def create_tables(self): with self.conn: self.conn.execute(""" CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT UNIQUE NOT NULL, wallet_address TEXT NOT NULL ) """) self.conn.execute(""" CREATE TABLE IF NOT EXISTS transactions ( id INTEGER PRIMARY KEY AUTOINCREMENT, sender TEXT NOT NULL, receiver TEXT NOT NULL, amount REAL NOT NULL, timestamp INTEGER NOT NULL ) """) def add_user(self, username: str, wallet_address: str) -> bool: try: with self.conn: self.conn.execute("INSERT INTO users (username, wallet_address) VALUES (?, ?)", (username, wallet_address)) return True except sqlite3.IntegrityError: return False def get_wallet_address(self, username: str) -> Optional[str]: result = self.conn.execute("SELECT wallet_address FROM users WHERE username = ?", (username,)).fetchone() return result[0] if result else None def list_users(self) -> list: return [row[0] for row in self.conn.execute("SELECT username FROM users").fetchall()] def log_transaction(self, sender: str, receiver: str, amount: float): timestamp = int(time.time()) with self.conn: self.conn.execute("INSERT INTO transactions (sender, receiver, amount, timestamp) VALUES (?, ?, ?, ?)", (sender, receiver, amount, timestamp)) def get_sent_tips(self, sender: str, receiver: str) -> tuple: result = self.conn.execute("SELECT COUNT(*), SUM(amount) FROM transactions WHERE sender = ? AND receiver = ?", (sender, receiver)).fetchone() return result[0], (result[1] if result[1] else 0.0) class DogecoinTipping: def __init__(self): self.db = DogecoinTippingDB() def send_tip(self, sender: str, receiver: str, amount: float) -> str: if amount <= 0: return "Amount must be > 0." if not self.db.get_wallet_address(sender): return f"Sender '{sender}' not found." if not self.db.get_wallet_address(receiver): return f"Receiver '{receiver}' not found." self.db.log_transaction(sender, receiver, amount) return f"Logged tip of {amount} DOGE from {sender} to {receiver}." def command_list_wallets(self) -> str: users = self.db.list_users() return "Registered wallets: " + ", ".join(users) def command_get_address(self, username: str) -> str: address = self.db.get_wallet_address(username) if address: return f"{username}'s wallet address is {address}." return f"User '{username}' not found." def command_get_tips(self, sender: str, receiver: str) -> str: count, total = self.db.get_sent_tips(sender, receiver) return f"{sender} has sent {count} tips totaling {total} DOGE to {receiver}." if __name__ == "__main__": tipping = DogecoinTipping() print("Dogecoin Tipping System Initialized...MANY TIPS... MUCH WOW") # Sample workflow print("Adding users...") tipping.db.add_user("alice", "DGKGv8wP8iRJmjdRUEdvVL2b5BywKC65JT") tipping.db.add_user("bob", "DBpLvNcR1Zj8B6dKJp4n3XEAT4FmRxbnJb") print("Listing wallets...") print(tipping.command_list_wallets()) print("Fetching wallet addresses...") print(tipping.command_get_address("alice")) print(tipping.command_get_address("bob")) print("Sending tips...") print(tipping.send_tip("alice", "bob", 12.5)) print(tipping.send_tip("alice", "bob", 7.5)) print("Getting tip summary...") print(tipping.command_get_tips("alice", "bob")) EOF Technical usage previously documented. Contact for refinement or extensions!
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.