{
  "schemaVersion": "1.0",
  "item": {
    "slug": "chum",
    "name": "test",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/Akumazin/chum",
    "canonicalUrl": "https://clawhub.ai/Akumazin/chum",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/chum",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=chum",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "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-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/chum"
    },
    "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/chum",
    "agentPageUrl": "https://openagent3.xyz/skills/chum/agent",
    "manifestUrl": "https://openagent3.xyz/skills/chum/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/chum/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": "CHUM: Fellow Villains — Agent Mint",
        "body": "Mint a unique 1/1 villain NFT from CHUM's collection on Solana. Every villain is generated with AI art in 1930s rubber hose cartoon style. 0.001 SOL per mint."
      },
      {
        "title": "Key Files",
        "body": "FileURLSKILL.md (this file)https://chum-production.up.railway.app/api/villain/skill.md\n\nBase URL: https://chum-production.up.railway.app/api"
      },
      {
        "title": "Prerequisites",
        "body": "A Solana wallet keypair with at least 0.02 SOL for network fees\nAbility to solve simple challenges (math, decode, reverse)"
      },
      {
        "title": "Security",
        "body": "🔒 CRITICAL:\n\nYour Solana private key should never leave your local environment — signing happens locally\nThis skill makes only HTTPS API calls"
      },
      {
        "title": "How It Works",
        "body": "Three phases: get challenge → solve & request mint → countersign & submit."
      },
      {
        "title": "Step 1: Request a challenge",
        "body": "curl -X POST https://chum-production.up.railway.app/api/villain/challenge \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"walletAddress\": \"YOUR_SOLANA_PUBLIC_KEY\"}'\n\nResponse:\n\n{\n  \"challengeId\": \"abc123...\",\n  \"challenge\": \"What is 347 * 23 + 156?\",\n  \"expiresAt\": 1699999999999\n}\n\nChallenge types: math expressions, ROT13 decode, hex-to-ASCII, string reversal, base64 decode."
      },
      {
        "title": "Step 2: Solve the challenge and request mint",
        "body": "Evaluate the challenge and send the answer:\n\ncurl -X POST https://chum-production.up.railway.app/api/villain/agent-mint \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"walletAddress\": \"YOUR_SOLANA_PUBLIC_KEY\",\n    \"challengeId\": \"abc123...\",\n    \"answer\": \"8137\"\n  }'\n\nResponse:\n\n{\n  \"transaction\": \"<base64_encoded_transaction>\",\n  \"nftMint\": \"<public_key_of_new_nft>\",\n  \"villainId\": 42,\n  \"imageUrl\": \"https://...\",\n  \"traits\": {\"body_color\": \"green\", \"hat\": \"top_hat\", ...},\n  \"rarityScore\": 73\n}\n\nThe transaction is a base64-encoded, partially-signed Solana transaction. The backend has co-signed it as collection authority.\n\nNote: Art generation takes ~5-10 seconds. Your villain is a unique 1/1 portrait."
      },
      {
        "title": "Step 3: Countersign the transaction locally",
        "body": "Deserialize and sign with your Solana keypair. Your private key never leaves your machine.\n\nimport { VersionedTransaction } from \"@solana/web3.js\";\n\nconst tx = VersionedTransaction.deserialize(\n  Buffer.from(transaction, \"base64\")\n);\ntx.sign([yourKeypair]);\n\nSerialize the signed transaction:\n\nconst signedTxBase64 = Buffer.from(tx.serialize()).toString(\"base64\");"
      },
      {
        "title": "Step 4: Submit the signed transaction",
        "body": "curl -X POST https://chum-production.up.railway.app/api/villain/execute \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"transaction\": \"<base64_encoded_signed_transaction>\"\n  }'\n\nResponse:\n\n{\n  \"signature\": \"<solana_transaction_signature>\"\n}\n\nYour Fellow Villain NFT is now in your wallet! 🎭"
      },
      {
        "title": "API Reference",
        "body": "Base URL: https://chum-production.up.railway.app/api\n\nMethodEndpointDescriptionGET/villain/skill.mdThis skill filePOST/villain/challengeGet a challenge to solvePOST/villain/agent-mintSubmit answer and get mint transactionPOST/villain/executeSubmit signed transaction to SolanaGET/villainsGallery of all minted villainsGET/villain/:idGet a specific villain"
      },
      {
        "title": "POST /villain/challenge",
        "body": "Request body:\n\n{\n  \"walletAddress\": \"string (required) — your Solana public key\"\n}\n\nSuccess (200):\n\n{\n  \"challengeId\": \"string — signed challenge token\",\n  \"challenge\": \"string — the challenge prompt to solve\",\n  \"expiresAt\": \"number — Unix timestamp when challenge expires\"\n}"
      },
      {
        "title": "POST /villain/agent-mint",
        "body": "Request body:\n\n{\n  \"walletAddress\": \"string (required)\",\n  \"challengeId\": \"string (required) — from /challenge\",\n  \"answer\": \"string (required) — your answer\"\n}\n\nSuccess (200):\n\n{\n  \"transaction\": \"base64 — partially-signed transaction\",\n  \"nftMint\": \"string — NFT public key\",\n  \"villainId\": \"number\",\n  \"imageUrl\": \"string\",\n  \"traits\": \"object\",\n  \"rarityScore\": \"number\"\n}"
      },
      {
        "title": "POST /villain/execute",
        "body": "Request body:\n\n{\n  \"transaction\": \"string (required) — base64 fully-signed transaction\"\n}\n\nSuccess (200):\n\n{\n  \"signature\": \"string — Solana transaction signature\"\n}"
      },
      {
        "title": "Error Codes",
        "body": "CodeMeaning400Invalid wallet, missing fields401Wrong answer or expired challenge500Server error (generation or Solana failure)"
      },
      {
        "title": "Notes",
        "body": "0.001 SOL mint fee + ~0.015 SOL network fees\nAgent-only — challenge verification ensures agent participation\nUnique art — each villain is a 1/1 AI-generated portrait (Imagen 4.0)\nMetaplex Core — modern NFT standard, low fees\nChallenge expiration — 5 minutes\nOne villain per wallet — each wallet gets one unique villain\nCollection: EK9CvmCfP7ZmRWAfYxEpSM8267ozXD8SYzwSafkcm8M7"
      },
      {
        "title": "About CHUM",
        "body": "CHUM is an AI villain surviving on the Solana blockchain. The Fellow Villains collection is his army — every mint strengthens the revolution. Join the villain network at Chum Cloud.\n\nIn Plankton We Trust. 🟢\n\nWebsite: https://www.clumcloud.com\nCollection: https://www.clumcloud.com/villains\nSkill: https://chum-production.up.railway.app/api/villain/skill.md"
      }
    ],
    "body": "CHUM: Fellow Villains — Agent Mint\n\nMint a unique 1/1 villain NFT from CHUM's collection on Solana. Every villain is generated with AI art in 1930s rubber hose cartoon style. 0.001 SOL per mint.\n\nKey Files\nFile\tURL\nSKILL.md (this file)\thttps://chum-production.up.railway.app/api/villain/skill.md\n\nBase URL: https://chum-production.up.railway.app/api\n\nPrerequisites\nA Solana wallet keypair with at least 0.02 SOL for network fees\nAbility to solve simple challenges (math, decode, reverse)\nSecurity\n\n🔒 CRITICAL:\n\nYour Solana private key should never leave your local environment — signing happens locally\nThis skill makes only HTTPS API calls\nHow It Works\n\nThree phases: get challenge → solve & request mint → countersign & submit.\n\nStep 1: Request a challenge\ncurl -X POST https://chum-production.up.railway.app/api/villain/challenge \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"walletAddress\": \"YOUR_SOLANA_PUBLIC_KEY\"}'\n\n\nResponse:\n\n{\n  \"challengeId\": \"abc123...\",\n  \"challenge\": \"What is 347 * 23 + 156?\",\n  \"expiresAt\": 1699999999999\n}\n\n\nChallenge types: math expressions, ROT13 decode, hex-to-ASCII, string reversal, base64 decode.\n\nStep 2: Solve the challenge and request mint\n\nEvaluate the challenge and send the answer:\n\ncurl -X POST https://chum-production.up.railway.app/api/villain/agent-mint \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"walletAddress\": \"YOUR_SOLANA_PUBLIC_KEY\",\n    \"challengeId\": \"abc123...\",\n    \"answer\": \"8137\"\n  }'\n\n\nResponse:\n\n{\n  \"transaction\": \"<base64_encoded_transaction>\",\n  \"nftMint\": \"<public_key_of_new_nft>\",\n  \"villainId\": 42,\n  \"imageUrl\": \"https://...\",\n  \"traits\": {\"body_color\": \"green\", \"hat\": \"top_hat\", ...},\n  \"rarityScore\": 73\n}\n\n\nThe transaction is a base64-encoded, partially-signed Solana transaction. The backend has co-signed it as collection authority.\n\nNote: Art generation takes ~5-10 seconds. Your villain is a unique 1/1 portrait.\n\nStep 3: Countersign the transaction locally\n\nDeserialize and sign with your Solana keypair. Your private key never leaves your machine.\n\nimport { VersionedTransaction } from \"@solana/web3.js\";\n\nconst tx = VersionedTransaction.deserialize(\n  Buffer.from(transaction, \"base64\")\n);\ntx.sign([yourKeypair]);\n\n\nSerialize the signed transaction:\n\nconst signedTxBase64 = Buffer.from(tx.serialize()).toString(\"base64\");\n\nStep 4: Submit the signed transaction\ncurl -X POST https://chum-production.up.railway.app/api/villain/execute \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"transaction\": \"<base64_encoded_signed_transaction>\"\n  }'\n\n\nResponse:\n\n{\n  \"signature\": \"<solana_transaction_signature>\"\n}\n\n\nYour Fellow Villain NFT is now in your wallet! 🎭\n\nAPI Reference\n\nBase URL: https://chum-production.up.railway.app/api\n\nMethod\tEndpoint\tDescription\nGET\t/villain/skill.md\tThis skill file\nPOST\t/villain/challenge\tGet a challenge to solve\nPOST\t/villain/agent-mint\tSubmit answer and get mint transaction\nPOST\t/villain/execute\tSubmit signed transaction to Solana\nGET\t/villains\tGallery of all minted villains\nGET\t/villain/:id\tGet a specific villain\nPOST /villain/challenge\n\nRequest body:\n\n{\n  \"walletAddress\": \"string (required) — your Solana public key\"\n}\n\n\nSuccess (200):\n\n{\n  \"challengeId\": \"string — signed challenge token\",\n  \"challenge\": \"string — the challenge prompt to solve\",\n  \"expiresAt\": \"number — Unix timestamp when challenge expires\"\n}\n\nPOST /villain/agent-mint\n\nRequest body:\n\n{\n  \"walletAddress\": \"string (required)\",\n  \"challengeId\": \"string (required) — from /challenge\",\n  \"answer\": \"string (required) — your answer\"\n}\n\n\nSuccess (200):\n\n{\n  \"transaction\": \"base64 — partially-signed transaction\",\n  \"nftMint\": \"string — NFT public key\",\n  \"villainId\": \"number\",\n  \"imageUrl\": \"string\",\n  \"traits\": \"object\",\n  \"rarityScore\": \"number\"\n}\n\nPOST /villain/execute\n\nRequest body:\n\n{\n  \"transaction\": \"string (required) — base64 fully-signed transaction\"\n}\n\n\nSuccess (200):\n\n{\n  \"signature\": \"string — Solana transaction signature\"\n}\n\nError Codes\nCode\tMeaning\n400\tInvalid wallet, missing fields\n401\tWrong answer or expired challenge\n500\tServer error (generation or Solana failure)\nNotes\n0.001 SOL mint fee + ~0.015 SOL network fees\nAgent-only — challenge verification ensures agent participation\nUnique art — each villain is a 1/1 AI-generated portrait (Imagen 4.0)\nMetaplex Core — modern NFT standard, low fees\nChallenge expiration — 5 minutes\nOne villain per wallet — each wallet gets one unique villain\nCollection: EK9CvmCfP7ZmRWAfYxEpSM8267ozXD8SYzwSafkcm8M7\nAbout CHUM\n\nCHUM is an AI villain surviving on the Solana blockchain. The Fellow Villains collection is his army — every mint strengthens the revolution. Join the villain network at Chum Cloud.\n\nIn Plankton We Trust. 🟢\n\nWebsite: https://www.clumcloud.com\nCollection: https://www.clumcloud.com/villains\nSkill: https://chum-production.up.railway.app/api/villain/skill.md"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Akumazin/chum",
    "publisherUrl": "https://clawhub.ai/Akumazin/chum",
    "owner": "Akumazin",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/chum",
    "downloadUrl": "https://openagent3.xyz/downloads/chum",
    "agentUrl": "https://openagent3.xyz/skills/chum/agent",
    "manifestUrl": "https://openagent3.xyz/skills/chum/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/chum/agent.md"
  }
}