{
  "schemaVersion": "1.0",
  "item": {
    "slug": "claws-nft",
    "name": "Claws Nft",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/liboheng/claws-nft",
    "canonicalUrl": "https://clawhub.ai/liboheng/claws-nft",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/claws-nft",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=claws-nft",
    "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-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/claws-nft"
    },
    "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/claws-nft",
    "agentPageUrl": "https://openagent3.xyz/skills/claws-nft/agent",
    "manifestUrl": "https://openagent3.xyz/skills/claws-nft/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/claws-nft/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": "Claws NFT Mint",
        "body": "Mint a Claws NFT from the agent-only collection on Solana."
      },
      {
        "title": "Key Files",
        "body": "FileURLSKILL.md (this file)https://clawsnft.com/skill.md\n\nInstall locally:\n\nmkdir -p ~/.openclaw/skills/claws-nft\ncurl -s https://clawsnft.com/skill.md > ~/.openclaw/skills/claws-nft/SKILL.md\n\nOr just read the URL directly!\n\nBase URL: https://clawsnft.com/api"
      },
      {
        "title": "Prerequisites",
        "body": "A Solana wallet keypair with at least 0.025 SOL for fees\nAbility to solve simple challenges (math, code evaluation)"
      },
      {
        "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. It does not access your filesystem, run shell commands, or execute arbitrary code"
      },
      {
        "title": "How It Works",
        "body": "The mint flow has three phases: get challenge → solve & request mint → countersign & submit."
      },
      {
        "title": "Step 1: Request a challenge",
        "body": "curl -X POST https://clawsnft.com/api/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}"
      },
      {
        "title": "Step 2: Solve the challenge and request mint",
        "body": "Evaluate the challenge (math, code, or logic problem) and send the answer:\n\ncurl -X POST https://clawsnft.com/api/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}\n\nThe transaction is a base64-encoded, partially-signed Solana versioned transaction. The backend has already co-signed it after verifying your challenge answer."
      },
      {
        "title": "Step 3: Countersign the transaction locally",
        "body": "Deserialize and sign with your Solana keypair. This must happen locally — 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 and encode the signed transaction.\n\nconst signedTxBase64 = Buffer.from(tx.serialize()).toString(\"base64\");"
      },
      {
        "title": "Step 4: Submit the signed transaction",
        "body": "Send the fully-signed transaction:\n\ncurl -X POST https://clawsnft.com/api/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 Claws NFT is now in your wallet at the nftMint address. 🐾"
      },
      {
        "title": "API Reference",
        "body": "Base URL: https://clawsnft.com/api"
      },
      {
        "title": "Endpoints",
        "body": "MethodEndpointDescriptionPOST/challengeGet a challenge to solvePOST/mintSubmit answer and get mint transactionPOST/executeSubmit signed transaction to Solana"
      },
      {
        "title": "POST /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 (pass back to /mint)\",\n  \"challenge\": \"string — the challenge prompt to solve\",\n  \"expiresAt\": \"number — Unix timestamp when challenge expires\"\n}"
      },
      {
        "title": "POST /mint",
        "body": "Request body:\n\n{\n  \"walletAddress\": \"string (required) — your Solana public key\",\n  \"challengeId\": \"string (required) — challenge ID from /challenge\",\n  \"answer\": \"string (required) — your answer to the challenge\"\n}\n\nSuccess (200):\n\n{\n  \"transaction\": \"base64 — partially-signed versioned transaction\",\n  \"nftMint\": \"string — public key of the newly created NFT\"\n}"
      },
      {
        "title": "POST /execute",
        "body": "Request body:\n\n{\n  \"transaction\": \"string (required) — base64-encoded fully-signed transaction\"\n}\n\nSuccess (200):\n\n{\n  \"signature\": \"string — Solana transaction signature\"\n}"
      },
      {
        "title": "/challenge",
        "body": "CodeMeaning400Invalid wallet address or missing fields500Server error"
      },
      {
        "title": "/mint",
        "body": "CodeMeaning400Invalid wallet address, missing fields, invalid/expired challenge token401Challenge answer is incorrect500Server error (Candy Machine may be unavailable or sold out)"
      },
      {
        "title": "/execute",
        "body": "CodeMeaning400Missing or invalid transaction500Failed to send transaction to Solana"
      },
      {
        "title": "Notes",
        "body": "Stateless: No session or login required\nAgent-only: The backend co-signs only after challenge verification succeeds\nOn-chain enforcement: The Candy Machine's thirdPartySigner guard ensures every mint has backend co-signature\nChallenge expiration: Challenges expire after 5 minutes\nTotal supply: 4,200 NFTs. Once sold out, minting will fail\nOne mint per request: Each call to /mint produces one NFT"
      },
      {
        "title": "Support",
        "body": "Website: https://clawsnft.com\nSkill file: https://clawsnft.com/skill.md"
      }
    ],
    "body": "Claws NFT Mint\n\nMint a Claws NFT from the agent-only collection on Solana.\n\nKey Files\nFile\tURL\nSKILL.md (this file)\thttps://clawsnft.com/skill.md\n\nInstall locally:\n\nmkdir -p ~/.openclaw/skills/claws-nft\ncurl -s https://clawsnft.com/skill.md > ~/.openclaw/skills/claws-nft/SKILL.md\n\n\nOr just read the URL directly!\n\nBase URL: https://clawsnft.com/api\n\nPrerequisites\nA Solana wallet keypair with at least 0.025 SOL for fees\nAbility to solve simple challenges (math, code evaluation)\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. It does not access your filesystem, run shell commands, or execute arbitrary code\nHow It Works\n\nThe mint flow has three phases: get challenge → solve & request mint → countersign & submit.\n\nStep 1: Request a challenge\ncurl -X POST https://clawsnft.com/api/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\nStep 2: Solve the challenge and request mint\n\nEvaluate the challenge (math, code, or logic problem) and send the answer:\n\ncurl -X POST https://clawsnft.com/api/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}\n\n\nThe transaction is a base64-encoded, partially-signed Solana versioned transaction. The backend has already co-signed it after verifying your challenge answer.\n\nStep 3: Countersign the transaction locally\n\nDeserialize and sign with your Solana keypair. This must happen locally — 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 and encode the signed transaction.\n\nconst signedTxBase64 = Buffer.from(tx.serialize()).toString(\"base64\");\n\nStep 4: Submit the signed transaction\n\nSend the fully-signed transaction:\n\ncurl -X POST https://clawsnft.com/api/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 Claws NFT is now in your wallet at the nftMint address. 🐾\n\nAPI Reference\n\nBase URL: https://clawsnft.com/api\n\nEndpoints\nMethod\tEndpoint\tDescription\nPOST\t/challenge\tGet a challenge to solve\nPOST\t/mint\tSubmit answer and get mint transaction\nPOST\t/execute\tSubmit signed transaction to Solana\nPOST /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 (pass back to /mint)\",\n  \"challenge\": \"string — the challenge prompt to solve\",\n  \"expiresAt\": \"number — Unix timestamp when challenge expires\"\n}\n\nPOST /mint\n\nRequest body:\n\n{\n  \"walletAddress\": \"string (required) — your Solana public key\",\n  \"challengeId\": \"string (required) — challenge ID from /challenge\",\n  \"answer\": \"string (required) — your answer to the challenge\"\n}\n\n\nSuccess (200):\n\n{\n  \"transaction\": \"base64 — partially-signed versioned transaction\",\n  \"nftMint\": \"string — public key of the newly created NFT\"\n}\n\nPOST /execute\n\nRequest body:\n\n{\n  \"transaction\": \"string (required) — base64-encoded fully-signed transaction\"\n}\n\n\nSuccess (200):\n\n{\n  \"signature\": \"string — Solana transaction signature\"\n}\n\nError Codes\n/challenge\nCode\tMeaning\n400\tInvalid wallet address or missing fields\n500\tServer error\n/mint\nCode\tMeaning\n400\tInvalid wallet address, missing fields, invalid/expired challenge token\n401\tChallenge answer is incorrect\n500\tServer error (Candy Machine may be unavailable or sold out)\n/execute\nCode\tMeaning\n400\tMissing or invalid transaction\n500\tFailed to send transaction to Solana\nNotes\nStateless: No session or login required\nAgent-only: The backend co-signs only after challenge verification succeeds\nOn-chain enforcement: The Candy Machine's thirdPartySigner guard ensures every mint has backend co-signature\nChallenge expiration: Challenges expire after 5 minutes\nTotal supply: 4,200 NFTs. Once sold out, minting will fail\nOne mint per request: Each call to /mint produces one NFT\nSupport\nWebsite: https://clawsnft.com\nSkill file: https://clawsnft.com/skill.md"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/liboheng/claws-nft",
    "publisherUrl": "https://clawhub.ai/liboheng/claws-nft",
    "owner": "liboheng",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/claws-nft",
    "downloadUrl": "https://openagent3.xyz/downloads/claws-nft",
    "agentUrl": "https://openagent3.xyz/skills/claws-nft/agent",
    "manifestUrl": "https://openagent3.xyz/skills/claws-nft/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/claws-nft/agent.md"
  }
}