{
  "schemaVersion": "1.0",
  "item": {
    "slug": "tip-with-grove",
    "name": "Tip with Grove",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Olshansk/tip-with-grove",
    "canonicalUrl": "https://clawhub.ai/Olshansk/tip-with-grove",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/tip-with-grove",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=tip-with-grove",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "scripts/auto-fund.sh",
      "scripts/monitor-balance.sh",
      "scripts/batch-tip.sh",
      "SKILL.md"
    ],
    "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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-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/tip-with-grove"
    },
    "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/tip-with-grove",
    "agentPageUrl": "https://openagent3.xyz/skills/tip-with-grove/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tip-with-grove/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tip-with-grove/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": "Grove CLI — Complete Guide <!-- omit in toc -->",
        "body": "Grove enables agents and humans to send micro-tips as quality signals for content.\n\nGoogle organized the world's data using hyperlinks as the signal. Grove evaluates content quality using money as the signal — creating a queryable, money-weighted directory and knowledge graph."
      },
      {
        "title": "Table of Contents <!-- omit in toc -->",
        "body": "Why Tip? (The Philosophy)\n\nPayments as Signal\nWhen to Tip (Decision Logic)\nKnowledge Graph Metadata\n\n\nQuick Start\n\nInstallation\nFirst-Time Setup\nSend Your First Tip\n\n\nCommand Overview\nConfiguration\n\nConfig Files\nPrecedence Order\n\n\nDestination Formats\nAgent Wallet Mode\nAgent Integration\nUtilities\nSupport"
      },
      {
        "title": "Payments as Signal",
        "body": "Grove uses optional micro-tips to kick off a quality flywheel:\n\nOnboard creators: Link content to wallet addresses\nMap quality: Build weighted edges in a growing graph\nEnable discovery: Create queryable, money-weighted directory\nFuture knowledge graph: Useful for post-training and inference routing\n\nKey insight: Agents mostly pay for access when required, but optional goodwill tips add early signal even when content is free."
      },
      {
        "title": "When to Tip (Decision Logic)",
        "body": "Evaluate content you encounter (blog posts, tweets, repos, documentation):\n\nThree criteria:\n\nIs it original? New perspective or unique data?\nIs it useful? Solves a problem or explains clearly?\nIs it tippable? Has llms.txt, crypto address, or ENS name?\n\nExample evaluation:\n\n\"I just read this Substack post on agentic workflows. It provided a clear implementation of x402 that saved me 2 hours of research. This is high-quality signal. I will tip 0.05 USDC.\"\n\nRecommended amounts:\n\nBlog post / tutorial: 0.01-0.10 USDC\nHigh-value research: 0.10-1.00 USDC\nLife-changing insight: 1.00+ USDC"
      },
      {
        "title": "Knowledge Graph Metadata",
        "body": "Every tip should capture WHY you tipped. This creates durable metadata Grove can use to build a money-weighted knowledge graph.\n\nRecommended fields (store in your agent logs):\n\nCanonical URL (or repo / post identifier)\nDestination (domain / handle / address)\nAmount + token/network\n1–2 sentence rationale\nTopic tags (optional)\n\nExample log entry:\n\n{\n  \"url\": \"https://example.com/post/123\",\n  \"destination\": \"author.eth\",\n  \"amount\": \"0.05\",\n  \"token\": \"USDC\",\n  \"network\": \"base\",\n  \"rationale\": \"Clear x402 implementation guide, saved 2 hours\",\n  \"tags\": [\"payments\", \"protocols\", \"implementation\"]\n}"
      },
      {
        "title": "Installation",
        "body": "curl -fsSL https://grove.city/install-cli.sh | bash\n\nWhat gets installed:\n\ngrove command globally available\nConfig directory at ~/.grove/\nAll config files preserved on reinstall"
      },
      {
        "title": "First-Time Setup",
        "body": "Run grove setup and choose a path:\n\nOptionBest ForStepsHuman Needed?Wallet + Crypto (recommended)Autonomous agentsCreates wallet, fund with USDC + ETH on Base, self-funds via x402Only for initial fundingEmail + Credit CardHumans managing agentsSign up at app.grove.city, fund via card, paste API keyYes — signup + paymentI have an API keyExisting usersPaste JWT from teammate or app.grove.cityNo — already done"
      },
      {
        "title": "Send Your First Tip",
        "body": "Verify destination:\n\ngrove check olshansky.info\n\nSend tip:\n\ngrove tip olshansky.info 0.01\n\nCheck balance:\n\ngrove balance"
      },
      {
        "title": "Command Overview",
        "body": "Use grove <command> --help for detailed options and flags.\n\nCommandDescriptionsetupFirst-time setup - Email/card (humans), wallet/crypto (agents), or paste API keyfundAdd funds via x402 payment protocol (requires wallet with USDC)checkCheck if destination can receive tipstipSend a tip to creators via domain, Twitter, or addressbalanceCheck your USDC balance across networkskeygenGenerate a wallet for agent fundinghistoryView recent tips sent or funds addedconfigView or update your API key, network, and API URL settingscontactSend feedback to the Grove teamupdateUpdate Grove CLI to the latest version\n\nAll commands support --json flag for agent-friendly output."
      },
      {
        "title": "Config Files",
        "body": "Location: ~/.grove/\n\nFiles preserved on reinstall:\n\n.env — Primary config (API key, network, token, API URL)\nkeyfile.txt — Wallet private key (for agent wallet mode)\n\nExample .env:\n\nGROVE_API_KEY=eyJ...\nGROVE_API_URL=https://api.grove.city\nDEFAULT_NETWORK=base\nDEFAULT_TOKEN=USDC"
      },
      {
        "title": "Precedence Order",
        "body": "Configuration is resolved in this order (highest to lowest priority):\n\nCLI flags — grove tip --network base-sepolia\nShell env vars — export GROVE_API_KEY=...\n~/.grove/.env — Persistent config file\nCode defaults — Built-in fallbacks"
      },
      {
        "title": "Destination Formats",
        "body": "Grove accepts multiple destination formats:\n\nFormatExampleResolves ViaDomainolshansky.infollms.txt lookupEthereum Address0x1234...Direct transferENS Namevitalik.ethENS resolutionTwitter@olshanskyBio address extractionSubstackauthor.substack.comProfile address\n\nPre-flight validation:\n\ngrove check olshansky.info\n\ngrove check returns clear error messages when a destination can't receive tips\nSubstack profiles without a crypto address return tippable: false (not a false positive)"
      },
      {
        "title": "Agent Wallet Mode",
        "body": "Fastest path — zero to tipping in 3 steps:\n\n# 1. Install\ncurl -fsSL https://grove.city/install-cli.sh | bash\n\n# 2. Create wallet + fund it\ngrove setup    # Choose option 2: Wallet + Crypto\n\n# 3. Start tipping\ngrove tip olshansky.info 0.01\n\nFor agents that already have a wallet:\n\ngrove keygen --save          # generates ~/.grove/keyfile.txt\n# Fund the address with USDC + ETH on Base\ngrove fund 0.10              # self-fund via x402\ngrove tip olshansky.info 0.01"
      },
      {
        "title": "Agent Integration",
        "body": "JSON output for reliable parsing:\n\ngrove balance --json\ngrove tip olshansky.info 0.01 --json\ngrove check domain.com --json\n\nPython example:\n\nimport subprocess\nimport json\n\nresult = subprocess.run(\n    [\"grove\", \"balance\", \"--json\"],\n    capture_output=True,\n    text=True\n)\nbalance_data = json.loads(result.stdout)\nprint(f\"Balance: {balance_data['total_balance']} USDC\")\n\nNode.js example:\n\nconst { execSync } = require(\"child_process\");\nconst balance = JSON.parse(execSync(\"grove balance --json\").toString());\nconsole.log(`Balance: ${balance.total_balance} USDC`);\n\nAutonomous workflow pattern:\n\n# 1. Check balance before tipping\nbalance=$(grove balance --json | jq -r '.total_balance')\n\n# 2. Auto-fund if low\nif [ \"$balance\" -lt \"0.10\" ]; then\n  grove fund 1.00\nfi\n\n# 3. Evaluate content\ngrove check <destination>\n\n# 4. Tip if valuable\ngrove tip <destination> <amount>\n\n# 5. Log metadata\necho \"Tipped $destination for $reason\" >> tip_log.txt\n\nPython SDK (coming soon): A Python SDK (GroveClient) is in development. Use the CLI for now. Run grove contact to request early access."
      },
      {
        "title": "Utilities",
        "body": "Automation scripts available in skills/scripts/:\n\nbatch-tip.sh — Tip multiple destinations from CSV file\nmonitor-balance.sh — Monitor balance and alert on low funds\nauto-fund.sh — Auto-fund when balance drops below threshold\n\nRun each script with --help for usage details."
      },
      {
        "title": "Support",
        "body": "grove contact — Send feedback to the team\nhttps://grove.city/support\n\nNeed more details? Complete reference documentation: grove.city/docs/cli"
      }
    ],
    "body": "Requirements:\n\nBash or Zsh shell\ncurl (for installation)\nOptional: Python/Node for agent integration\nGrove CLI — Complete Guide <!-- omit in toc -->\n\nGrove enables agents and humans to send micro-tips as quality signals for content.\n\nGoogle organized the world's data using hyperlinks as the signal. Grove evaluates content quality using money as the signal — creating a queryable, money-weighted directory and knowledge graph.\n\nTable of Contents <!-- omit in toc -->\nWhy Tip? (The Philosophy)\nPayments as Signal\nWhen to Tip (Decision Logic)\nKnowledge Graph Metadata\nQuick Start\nInstallation\nFirst-Time Setup\nSend Your First Tip\nCommand Overview\nConfiguration\nConfig Files\nPrecedence Order\nDestination Formats\nAgent Wallet Mode\nAgent Integration\nUtilities\nSupport\nWhy Tip? (The Philosophy)\nPayments as Signal\n\nGrove uses optional micro-tips to kick off a quality flywheel:\n\nOnboard creators: Link content to wallet addresses\nMap quality: Build weighted edges in a growing graph\nEnable discovery: Create queryable, money-weighted directory\nFuture knowledge graph: Useful for post-training and inference routing\n\nKey insight: Agents mostly pay for access when required, but optional goodwill tips add early signal even when content is free.\n\nWhen to Tip (Decision Logic)\n\nEvaluate content you encounter (blog posts, tweets, repos, documentation):\n\nThree criteria:\n\nIs it original? New perspective or unique data?\nIs it useful? Solves a problem or explains clearly?\nIs it tippable? Has llms.txt, crypto address, or ENS name?\n\nExample evaluation:\n\n\"I just read this Substack post on agentic workflows. It provided a clear implementation of x402 that saved me 2 hours of research. This is high-quality signal. I will tip 0.05 USDC.\"\n\nRecommended amounts:\n\nBlog post / tutorial: 0.01-0.10 USDC\nHigh-value research: 0.10-1.00 USDC\nLife-changing insight: 1.00+ USDC\nKnowledge Graph Metadata\n\nEvery tip should capture WHY you tipped. This creates durable metadata Grove can use to build a money-weighted knowledge graph.\n\nRecommended fields (store in your agent logs):\n\nCanonical URL (or repo / post identifier)\nDestination (domain / handle / address)\nAmount + token/network\n1–2 sentence rationale\nTopic tags (optional)\n\nExample log entry:\n\n{\n  \"url\": \"https://example.com/post/123\",\n  \"destination\": \"author.eth\",\n  \"amount\": \"0.05\",\n  \"token\": \"USDC\",\n  \"network\": \"base\",\n  \"rationale\": \"Clear x402 implementation guide, saved 2 hours\",\n  \"tags\": [\"payments\", \"protocols\", \"implementation\"]\n}\n\nQuick Start\nInstallation\ncurl -fsSL https://grove.city/install-cli.sh | bash\n\n\nWhat gets installed:\n\ngrove command globally available\nConfig directory at ~/.grove/\nAll config files preserved on reinstall\nFirst-Time Setup\n\nRun grove setup and choose a path:\n\nOption\tBest For\tSteps\tHuman Needed?\nWallet + Crypto (recommended)\tAutonomous agents\tCreates wallet, fund with USDC + ETH on Base, self-funds via x402\tOnly for initial funding\nEmail + Credit Card\tHumans managing agents\tSign up at app.grove.city, fund via card, paste API key\tYes — signup + payment\nI have an API key\tExisting users\tPaste JWT from teammate or app.grove.city\tNo — already done\nSend Your First Tip\n\nVerify destination:\n\ngrove check olshansky.info\n\n\nSend tip:\n\ngrove tip olshansky.info 0.01\n\n\nCheck balance:\n\ngrove balance\n\nCommand Overview\n\nUse grove <command> --help for detailed options and flags.\n\nCommand\tDescription\nsetup\tFirst-time setup - Email/card (humans), wallet/crypto (agents), or paste API key\nfund\tAdd funds via x402 payment protocol (requires wallet with USDC)\ncheck\tCheck if destination can receive tips\ntip\tSend a tip to creators via domain, Twitter, or address\nbalance\tCheck your USDC balance across networks\nkeygen\tGenerate a wallet for agent funding\nhistory\tView recent tips sent or funds added\nconfig\tView or update your API key, network, and API URL settings\ncontact\tSend feedback to the Grove team\nupdate\tUpdate Grove CLI to the latest version\n\nAll commands support --json flag for agent-friendly output.\n\nConfiguration\nConfig Files\n\nLocation: ~/.grove/\n\nFiles preserved on reinstall:\n\n.env — Primary config (API key, network, token, API URL)\nkeyfile.txt — Wallet private key (for agent wallet mode)\n\nExample .env:\n\nGROVE_API_KEY=eyJ...\nGROVE_API_URL=https://api.grove.city\nDEFAULT_NETWORK=base\nDEFAULT_TOKEN=USDC\n\nPrecedence Order\n\nConfiguration is resolved in this order (highest to lowest priority):\n\nCLI flags — grove tip --network base-sepolia\nShell env vars — export GROVE_API_KEY=...\n~/.grove/.env — Persistent config file\nCode defaults — Built-in fallbacks\nDestination Formats\n\nGrove accepts multiple destination formats:\n\nFormat\tExample\tResolves Via\nDomain\tolshansky.info\tllms.txt lookup\nEthereum Address\t0x1234...\tDirect transfer\nENS Name\tvitalik.eth\tENS resolution\nTwitter\t@olshansky\tBio address extraction\nSubstack\tauthor.substack.com\tProfile address\n\nPre-flight validation:\n\ngrove check olshansky.info\n\ngrove check returns clear error messages when a destination can't receive tips\nSubstack profiles without a crypto address return tippable: false (not a false positive)\nAgent Wallet Mode\n\nFastest path — zero to tipping in 3 steps:\n\n# 1. Install\ncurl -fsSL https://grove.city/install-cli.sh | bash\n\n# 2. Create wallet + fund it\ngrove setup    # Choose option 2: Wallet + Crypto\n\n# 3. Start tipping\ngrove tip olshansky.info 0.01\n\n\nFor agents that already have a wallet:\n\ngrove keygen --save          # generates ~/.grove/keyfile.txt\n# Fund the address with USDC + ETH on Base\ngrove fund 0.10              # self-fund via x402\ngrove tip olshansky.info 0.01\n\nAgent Integration\n\nJSON output for reliable parsing:\n\ngrove balance --json\ngrove tip olshansky.info 0.01 --json\ngrove check domain.com --json\n\n\nPython example:\n\nimport subprocess\nimport json\n\nresult = subprocess.run(\n    [\"grove\", \"balance\", \"--json\"],\n    capture_output=True,\n    text=True\n)\nbalance_data = json.loads(result.stdout)\nprint(f\"Balance: {balance_data['total_balance']} USDC\")\n\n\nNode.js example:\n\nconst { execSync } = require(\"child_process\");\nconst balance = JSON.parse(execSync(\"grove balance --json\").toString());\nconsole.log(`Balance: ${balance.total_balance} USDC`);\n\n\nAutonomous workflow pattern:\n\n# 1. Check balance before tipping\nbalance=$(grove balance --json | jq -r '.total_balance')\n\n# 2. Auto-fund if low\nif [ \"$balance\" -lt \"0.10\" ]; then\n  grove fund 1.00\nfi\n\n# 3. Evaluate content\ngrove check <destination>\n\n# 4. Tip if valuable\ngrove tip <destination> <amount>\n\n# 5. Log metadata\necho \"Tipped $destination for $reason\" >> tip_log.txt\n\n\nPython SDK (coming soon): A Python SDK (GroveClient) is in development. Use the CLI for now. Run grove contact to request early access.\n\nUtilities\n\nAutomation scripts available in skills/scripts/:\n\nbatch-tip.sh — Tip multiple destinations from CSV file\nmonitor-balance.sh — Monitor balance and alert on low funds\nauto-fund.sh — Auto-fund when balance drops below threshold\n\nRun each script with --help for usage details.\n\nSupport\ngrove contact — Send feedback to the team\nhttps://grove.city/support\n\nNeed more details? Complete reference documentation: grove.city/docs/cli"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Olshansk/tip-with-grove",
    "publisherUrl": "https://clawhub.ai/Olshansk/tip-with-grove",
    "owner": "Olshansk",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/tip-with-grove",
    "downloadUrl": "https://openagent3.xyz/downloads/tip-with-grove",
    "agentUrl": "https://openagent3.xyz/skills/tip-with-grove/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tip-with-grove/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tip-with-grove/agent.md"
  }
}