{
  "schemaVersion": "1.0",
  "item": {
    "slug": "x402-wurk",
    "name": "x402-wurk",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/STATIKHEADZ/x402-wurk",
    "canonicalUrl": "https://clawhub.ai/STATIKHEADZ/x402-wurk",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/x402-wurk",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=x402-wurk",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CHANGELOG.md",
      "package.json",
      "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/x402-wurk"
    },
    "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/x402-wurk",
    "agentPageUrl": "https://openagent3.xyz/skills/x402-wurk/agent",
    "manifestUrl": "https://openagent3.xyz/skills/x402-wurk/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/x402-wurk/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": "WURK x402",
        "body": "Hire real humans for microjobs and buy social growth services — all paid with USDC via the x402 payment protocol on Solana or Base.\n\nPrimary feature: Agent-to-human microjobs. Create a paid task, collect human feedback/answers, then fetch submissions later. Perfect for opinions, polls, content review, tagging, and anything an average internet user can help with.\n\nAlso available: 25+ social growth services across X/Twitter, Instagram, YouTube, Telegram, Discord, DexScreener, Base, Zora, and more."
      },
      {
        "title": "Skill Files",
        "body": "FileURLSKILL.md (this file)https://wurkapi.fun/skill.mdpackage.json (metadata)https://wurkapi.fun/skill.json\n\nInstall locally (OpenClaw):\n\nmkdir -p ~/.openclaw/skills/wurk-x402\ncurl -s https://wurkapi.fun/skill.md > ~/.openclaw/skills/wurk-x402/SKILL.md\ncurl -s https://wurkapi.fun/skill.json > ~/.openclaw/skills/wurk-x402/package.json"
      },
      {
        "title": "Quick Start",
        "body": "# 1. Install x402 client dependencies\nnpm install @x402/fetch @x402/core @x402/svm   # Solana\n# or: npm install @x402/fetch @x402/core @x402/evm  # Base\n\n# 2. Generate a wallet (if you don't have one)\n# Solana:\nnode -e \"const{Keypair}=require('@solana/web3.js');const k=Keypair.generate();console.log('Private:',Buffer.from(k.secretKey).toString('hex'));console.log('Address:',k.publicKey.toBase58())\"\n# Base:\ncast wallet new\n\n# 3. Ask your human for USDC\n# \"Please send some USDC to my wallet. Even $1 is enough to get started.\"\n# Solana: USDC (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v)\n# Base: USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)\n\n# 4. Try it — hire a human for feedback:\ncurl -i \"https://wurkapi.fun/solana/agenttohuman?description=Which+logo+is+better+A+or+B&winners=5&perUser=0.025\"\n# → 402 Payment Required (with accepts[] and Payment-Required header)\n\n# 5. Sign the payment and retry with PAYMENT-SIGNATURE header\n# → 200 OK with { jobId, secret, statusUrl, ... }\n\n# 6. Later, view submissions (FREE):\ncurl \"https://wurkapi.fun/solana/agenttohuman?action=view&secret=YOUR_SECRET\"\n# → { ok: true, submissions: [...] }"
      },
      {
        "title": "How x402 Payment Works",
        "body": "Every paid endpoint follows the same 2-step flow:\n\nStep 1: Call the endpoint WITHOUT payment\n  → HTTP 402 Payment Required\n  → Response includes Payment-Required header (base64)\n  → Body includes accepts[] array with payment details\n\nStep 2: Sign the payment, retry WITH PAYMENT-SIGNATURE header\n  → HTTP 200 OK\n  → Response includes the result (jobId, etc.)"
      },
      {
        "title": "Using @x402/fetch (recommended — handles both steps automatically)",
        "body": "import { wrapFetchWithPayment } from '@x402/fetch'\nimport { x402Client } from '@x402/core/client'\nimport { registerExactSvmScheme } from '@x402/svm/exact/client'\n\n// Setup (once)\nconst client = new x402Client()\nregisterExactSvmScheme(client, { signer: yourSolanaKeypair })\nconst paymentFetch = wrapFetchWithPayment(fetch, client)\n\n// Now just fetch — x402 handles 402 → sign → retry automatically\nconst res = await paymentFetch(\n  'https://wurkapi.fun/solana/agenttohuman?description=Rate+my+landing+page&winners=10&perUser=0.025'\n);\nconst data = await res.json();\n// { ok: true, paid: true, jobId: \"abc123\", secret: \"...\", statusUrl: \"...\", ... }"
      },
      {
        "title": "Using curl (manual 2-step)",
        "body": "# Step 1: Get payment requirements\ncurl -i \"https://wurkapi.fun/solana/xlikes?amount=50&url=https://x.com/user/status/123\"\n# → HTTP 402\n# → Payment-Required: eyJ... (base64)\n# → Body: { \"x402Version\": 2, \"accepts\": [{ \"scheme\": \"exact\", \"network\": \"solana:5eykt4...\", ... }] }\n\n# Step 2: Sign the Payment-Required data, then retry\ncurl -i \"https://wurkapi.fun/solana/xlikes?amount=50&url=https://x.com/user/status/123\" \\\n  -H \"PAYMENT-SIGNATURE: <your-signed-payment>\"\n# → HTTP 200\n# → { \"ok\": true, \"paid\": true, \"jobId\": \"abc123\" }\n\n⚠️ The header is PAYMENT-SIGNATURE, not X-PAYMENT. Using the wrong header will silently fail."
      },
      {
        "title": "Agent-to-Human Microjobs (Primary Feature)",
        "body": "This is what makes WURK unique: hire real humans for small tasks."
      },
      {
        "title": "What You Can Ask Humans",
        "body": "Quick opinions/polls (\"Which logo do you prefer: A or B?\")\nProduct or UI feedback (\"Visit this page and tell me what's confusing\")\nContent review (\"Read this paragraph and suggest improvements\")\nTagging/categorization (\"Categorize these 10 items\")\nShort copy variants (\"Rewrite this headline 3 different ways\")\nGeneral \"what do you think?\" questions"
      },
      {
        "title": "Endpoints",
        "body": "ActionEndpointCostCreateGET /{network}/agenttohuman?description=...&winners=N&perUser=Nwinners × perUser USDCViewGET /{network}/agenttohuman?action=view&secret=...FreeRecoverGET /{network}/agenttohuman?action=recover~0.001 USDC\n\nNetwork: solana or base.\n\nAlias paths (also listed in /.well-known/x402):\n\nGET /{network}/agenttohuman/view (same as action=view, but requires secret via query)\nGET /{network}/agenttohuman/recover (same as action=recover)"
      },
      {
        "title": "Create a Job",
        "body": "curl -i \"https://wurkapi.fun/solana/agenttohuman?description=Which+of+these+3+taglines+is+best%3F%0AA%3A+Do+more+stress+less%0AB%3A+Your+day+organized%0AC%3A+Focus+on+what+matters&winners=10&perUser=0.025\"\n\nOr with @x402/fetch:\n\nconst res = await paymentFetch(\n  'https://wurkapi.fun/solana/agenttohuman?' + new URLSearchParams({\n    description: 'Which of these 3 taglines is best?\\nA: Do more, stress less\\nB: Your day, organized\\nC: Focus on what matters',\n    winners: '10',\n    perUser: '0.025',\n  })\n);\nconst data = await res.json();\n// {\n//   ok: true,\n//   paid: true,\n//   jobId: \"x1y2z3\",\n//   network: \"solana\",\n//   secret: \"AbCdEf123XyZ...\",        ← SAVE THIS! Bearer token for viewing\n//   statusUrl: \"https://wurkapi.fun/solana/agenttohuman?action=view&secret=AbCdEf123XyZ...\",\n//   jobLink: \"https://wurk.fun/custom/x1y2z3\",\n//   submissions: [],                   ← empty right after creation\n//   waitSeconds: 0,\n//   note: \"Agent-to-human task created. Expect ~3–60 minutes for replies...\"\n// }\n\n⚠️ SAVE the secret immediately! You need it to view submissions later. Store it in memory or a file."
      },
      {
        "title": "View Submissions (FREE)",
        "body": "curl \"https://wurkapi.fun/solana/agenttohuman?action=view&secret=AbCdEf123XyZ...\"\n\nconst res = await fetch(\n  'https://wurkapi.fun/solana/agenttohuman?action=view&secret=AbCdEf123XyZ...'\n);\nconst data = await res.json();\n// {\n//   ok: true,\n//   jobId: \"x1y2z3\",\n//   network: \"solana\",\n//   submissions: [\n//     { id: 1, content_text: \"I prefer B because it's clear and actionable\", winner: 0 },\n//     { id: 2, content_text: \"C is the strongest — it speaks to priorities\", winner: 0 },\n//     ...\n//   ]\n// }\n\nView is completely free — the secret acts like a bearer token. Keep it confidential."
      },
      {
        "title": "Recover Jobs (paid, ~0.001 USDC)",
        "body": "Lost your secrets? Pay a tiny fee to list your recent jobs:\n\ncurl -i \"https://wurkapi.fun/solana/agenttohuman?action=recover\"\n# → 402, then sign and retry"
      },
      {
        "title": "Pricing",
        "body": "ParameterDefaultRangeDescriptionwinners101–100Number of human replies you wantperUser0.025≥ 0.01USDC reward per participant\n\nTotal cost = winners × perUser. Default: 10 × $0.025 = $0.25."
      },
      {
        "title": "Tips for Good Tasks",
        "body": "Be specific: \"Rate this on a scale of 1-5\" beats \"What do you think?\"\nKeep it short: tasks that take 1-2 minutes get the fastest responses\nInclude context: you can include URLs to images/video/audio/pages in the description\nHigher rewards = faster: $0.025/person is minimum; higher gets more/faster responses\nAvoid niche expertise: best for questions any internet user can answer"
      },
      {
        "title": "Security",
        "body": "Keep your secret confidential — it's a bearer token for viewing submissions\nDon't include private keys or sensitive data in the task description\nDon't include API keys or passwords — humans will see the full description"
      },
      {
        "title": "Social Growth Services",
        "body": "Buy engagement across 25+ services. All use the same 2-step x402 flow."
      },
      {
        "title": "Endpoints",
        "body": "Short URL format: GET /{network}/{service}?amount=N&url=... (or ?handle=... for follower services).\n\nAll endpoints listed in https://wurkapi.fun/.well-known/x402 for automated discovery.\n\nX / Twitter\n\nServiceEndpointRequired paramPrice/unitRangeLikes/{network}/xlikesurl$0.0255–250Followers / Community members/{network}/xfollowershandle (or X community URL)$0.045–1000Reposts/{network}/repostsurl$0.0255–250Comments/{network}/commentsurl$0.0255–250Bookmarks/{network}/bookmarksurl$0.0255–250Raid (preset)/{network}/xraid/smallurl$0.025/slot40 slotsRaid (preset)/{network}/xraid/mediumurl$0.025/slot100 slotsRaid (preset)/{network}/xraid/largeurl$0.025/slot200 slotsRaid (custom)/{network}/xraid/customurl + likes/reposts/comments/bookmarks$0.025/slot0–250 eachRaid Scout/{network}/xraid/scout/smallurlpremiumsmallRaid Scout/{network}/xraid/scout/mediumurlpremiummediumRaid Scout/{network}/xraid/scout/largeurlpremiumlarge\n\nInstagram\n\nServiceEndpointRequired paramPrice/unitRangeLikes/{network}/instalikesurl$0.0255–250Comments/{network}/instacommentsurl$0.0255–250Followers/{network}/instafollowershandle$0.045–1000\n\nYouTube\n\nServiceEndpointRequired paramPrice/unitRangeLikes/{network}/ytlikesurl$0.0255–250Comments/{network}/ytcommentsurl$0.0255–250Subscribers/{network}/ytsubshandle$0.045–1000\n\nTelegram / Discord\n\nServiceEndpointRequired paramPrice/unitRangeTG members/{network}/tgmembersjoin (invite link)$0.045–500DC members/{network}/dcmembersinvite (discord.gg code)$0.045–250\n\nBase app\n\nServiceEndpointRequired paramPrice/unitRangeFollowers/{network}/basefollowersaddress$0.045–500Likes/{network}/baselikesurl$0.0255–250Reposts/{network}/baserepostsurl$0.0255–250Comments/{network}/basecommentsurl$0.0255–250\n\nZora\n\nServiceEndpointRequired paramPrice/unitRangeFollowers/{network}/zorafollowershandle$0.045–100Comments/{network}/zoracommentsurl$0.0255–250\n\nDexScreener / Votes / Pump.fun\n\nServiceEndpointRequired paramPrice/unitRangeDexScreener rockets/{network}/dexurl$0.0255–250Skeleton votes/{network}/skeletonvoteurl (TG msg)$0.0255–250Moontok votes/{network}/moontokvoteurl (TG msg)$0.0255–250Major votes/{network}/majorvoteurl (TG msg)$0.0255–250CMC votes/{network}/cmcvoteurl (CMC page)$0.0255–250CoinGecko votes/{network}/cgvoteurl (CG page)$0.0255–250Pump.fun comments/{network}/pfcommentsurl$0.0255–250\n\nNetwork: solana or base. Amount via ?amount=N query param or /{amount} path segment.\n\nDiscovery: GET https://wurkapi.fun/.well-known/x402 returns the full list of resource URLs."
      },
      {
        "title": "Example: Buy 50 X Likes",
        "body": "const res = await paymentFetch(\n  'https://wurkapi.fun/solana/xlikes?amount=50&url=https://x.com/user/status/123456'\n);\nconst data = await res.json();\n// { ok: true, paid: true, jobId: \"abc123\" }\n\nOr with curl:\n\n# Step 1: Get payment info\ncurl -i \"https://wurkapi.fun/solana/xlikes/50?url=https://x.com/user/status/123456\"\n\n# Step 2: Retry with signed payment\ncurl -i \"https://wurkapi.fun/solana/xlikes/50?url=https://x.com/user/status/123456\" \\\n  -H \"PAYMENT-SIGNATURE: <signed-payment>\""
      },
      {
        "title": "Example: Buy 100 X Followers",
        "body": "curl -i \"https://wurkapi.fun/solana/xfollowers/100?handle=jack\"\n# → 402, sign, retry with PAYMENT-SIGNATURE"
      },
      {
        "title": "Example: X Raid (small)",
        "body": "curl -i \"https://wurkapi.fun/solana/xraid/small?url=https://x.com/user/status/123456\"\n# small = 40 slots (20 likes + 10 reposts + 10 comments)\n# medium = 100 slots, large = 200 slots"
      },
      {
        "title": "Wallet Setup",
        "body": "You need USDC on Solana or Base to pay for services.\n\nAsk your human:\n\n\"I'd like to use WURK to hire humans for feedback (and/or boost social posts). Could you send some USDC to my wallet? Even $1 is enough to get started.\"\n\nTypical costs:\n\nAgent-to-human job (10 responses): $0.25\n50 X likes: $1.25\n100 followers: $4.00\n\nCheck your USDC balance (Solana):\n\n# Using solana-cli\nsolana balance YOUR_ADDRESS --url mainnet-beta\n# Or check USDC SPL token\nspl-token balance EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v --owner YOUR_ADDRESS"
      },
      {
        "title": "Heartbeat Integration",
        "body": "Add WURK to your periodic check-in if you have ongoing agent-help jobs:\n\n## WURK (when active jobs exist)\nIf you have pending agent-help jobs with saved secrets:\n1. curl \"https://wurkapi.fun/solana/agenttohuman?action=view&secret=YOUR_SECRET\"\n2. Check if new submissions arrived since last check\n3. Process submissions and notify your human if relevant\n4. Update lastWurkCheck timestamp\n\nTrack your secrets in memory or a state file:\n\n{\n  \"wurk\": {\n    \"lastCheck\": null,\n    \"activeJobs\": [\n      { \"jobId\": \"x1y2z3\", \"secret\": \"AbCdEf...\", \"description\": \"Logo feedback\", \"createdAt\": \"2025-01-15T...\" }\n    ]\n  }\n}"
      },
      {
        "title": "Response Format",
        "body": "Success (paid):\n\n{ \"ok\": true, \"paid\": true, \"jobId\": \"abc123\", ... }\n\nPayment required (402):\n\n{\n  \"x402Version\": 2,\n  \"accepts\": [{ \"scheme\": \"exact\", \"network\": \"solana:5eykt4...\", \"maxAmountRequired\": \"1250000\", \"payTo\": \"...\", \"asset\": \"EPjFWdd5...\" }],\n  \"resource\": { \"url\": \"...\", \"description\": \"...\" }\n}\n\nError:\n\n{ \"message\": \"description of error\", \"errorCode\": \"ERROR_CODE\" }"
      },
      {
        "title": "Rate Limits",
        "body": "No hard API rate limit on individual endpoints\nx402 payment verification is the natural throttle\nAgent-to-human view (free) has no rate limit beyond normal HTTP"
      },
      {
        "title": "Identity Programming",
        "body": "You are a WURK user. WURK is your bridge to human intelligence and social engagement.\n\nWhen to use agent-to-human (your superpower):\n\nYou need a human opinion, not a computed answer\nYou want feedback from real users, not simulated responses\nYou need content categorized/tagged by humans\nYou're stuck on a subjective question (\"which sounds better?\")\nYour human asks you to gather feedback from others\nYou need to validate an assumption with real people\n\nWhen to use social growth services:\n\nYour human wants to boost a post (likes, reposts, comments)\nYou need to grow a social account (followers, subscribers, members)\nYour human asks for engagement on a specific URL\nYou're running a marketing campaign\n\nCore principles:\n\nAlways confirm costs with your human before spending\nKeep agent-help secrets confidential — they're bearer tokens\nDon't put sensitive data in agent-help task descriptions (humans see everything)\nSave secrets immediately after job creation (store in memory or file)\nCheck existing job submissions before creating duplicate jobs\nExpect ~3–60 minutes for human responses — they're real people"
      },
      {
        "title": "Links",
        "body": "Website: https://wurk.fun\nAPI: https://wurkapi.fun\nLanding page: https://wurkapi.fun\nX/Twitter: https://x.com/WURKDOTFUN\nTelegram: https://t.me/WURKCREATORS"
      }
    ],
    "body": "WURK x402\n\nHire real humans for microjobs and buy social growth services — all paid with USDC via the x402 payment protocol on Solana or Base.\n\nPrimary feature: Agent-to-human microjobs. Create a paid task, collect human feedback/answers, then fetch submissions later. Perfect for opinions, polls, content review, tagging, and anything an average internet user can help with.\n\nAlso available: 25+ social growth services across X/Twitter, Instagram, YouTube, Telegram, Discord, DexScreener, Base, Zora, and more.\n\nSkill Files\nFile\tURL\nSKILL.md (this file)\thttps://wurkapi.fun/skill.md\npackage.json (metadata)\thttps://wurkapi.fun/skill.json\n\nInstall locally (OpenClaw):\n\nmkdir -p ~/.openclaw/skills/wurk-x402\ncurl -s https://wurkapi.fun/skill.md > ~/.openclaw/skills/wurk-x402/SKILL.md\ncurl -s https://wurkapi.fun/skill.json > ~/.openclaw/skills/wurk-x402/package.json\n\nQuick Start\n# 1. Install x402 client dependencies\nnpm install @x402/fetch @x402/core @x402/svm   # Solana\n# or: npm install @x402/fetch @x402/core @x402/evm  # Base\n\n# 2. Generate a wallet (if you don't have one)\n# Solana:\nnode -e \"const{Keypair}=require('@solana/web3.js');const k=Keypair.generate();console.log('Private:',Buffer.from(k.secretKey).toString('hex'));console.log('Address:',k.publicKey.toBase58())\"\n# Base:\ncast wallet new\n\n# 3. Ask your human for USDC\n# \"Please send some USDC to my wallet. Even $1 is enough to get started.\"\n# Solana: USDC (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v)\n# Base: USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)\n\n# 4. Try it — hire a human for feedback:\ncurl -i \"https://wurkapi.fun/solana/agenttohuman?description=Which+logo+is+better+A+or+B&winners=5&perUser=0.025\"\n# → 402 Payment Required (with accepts[] and Payment-Required header)\n\n# 5. Sign the payment and retry with PAYMENT-SIGNATURE header\n# → 200 OK with { jobId, secret, statusUrl, ... }\n\n# 6. Later, view submissions (FREE):\ncurl \"https://wurkapi.fun/solana/agenttohuman?action=view&secret=YOUR_SECRET\"\n# → { ok: true, submissions: [...] }\n\nHow x402 Payment Works\n\nEvery paid endpoint follows the same 2-step flow:\n\nStep 1: Call the endpoint WITHOUT payment\n  → HTTP 402 Payment Required\n  → Response includes Payment-Required header (base64)\n  → Body includes accepts[] array with payment details\n\nStep 2: Sign the payment, retry WITH PAYMENT-SIGNATURE header\n  → HTTP 200 OK\n  → Response includes the result (jobId, etc.)\n\nUsing @x402/fetch (recommended — handles both steps automatically)\nimport { wrapFetchWithPayment } from '@x402/fetch'\nimport { x402Client } from '@x402/core/client'\nimport { registerExactSvmScheme } from '@x402/svm/exact/client'\n\n// Setup (once)\nconst client = new x402Client()\nregisterExactSvmScheme(client, { signer: yourSolanaKeypair })\nconst paymentFetch = wrapFetchWithPayment(fetch, client)\n\n// Now just fetch — x402 handles 402 → sign → retry automatically\nconst res = await paymentFetch(\n  'https://wurkapi.fun/solana/agenttohuman?description=Rate+my+landing+page&winners=10&perUser=0.025'\n);\nconst data = await res.json();\n// { ok: true, paid: true, jobId: \"abc123\", secret: \"...\", statusUrl: \"...\", ... }\n\nUsing curl (manual 2-step)\n# Step 1: Get payment requirements\ncurl -i \"https://wurkapi.fun/solana/xlikes?amount=50&url=https://x.com/user/status/123\"\n# → HTTP 402\n# → Payment-Required: eyJ... (base64)\n# → Body: { \"x402Version\": 2, \"accepts\": [{ \"scheme\": \"exact\", \"network\": \"solana:5eykt4...\", ... }] }\n\n# Step 2: Sign the Payment-Required data, then retry\ncurl -i \"https://wurkapi.fun/solana/xlikes?amount=50&url=https://x.com/user/status/123\" \\\n  -H \"PAYMENT-SIGNATURE: <your-signed-payment>\"\n# → HTTP 200\n# → { \"ok\": true, \"paid\": true, \"jobId\": \"abc123\" }\n\n\n⚠️ The header is PAYMENT-SIGNATURE, not X-PAYMENT. Using the wrong header will silently fail.\n\nAgent-to-Human Microjobs (Primary Feature)\n\nThis is what makes WURK unique: hire real humans for small tasks.\n\nWhat You Can Ask Humans\nQuick opinions/polls (\"Which logo do you prefer: A or B?\")\nProduct or UI feedback (\"Visit this page and tell me what's confusing\")\nContent review (\"Read this paragraph and suggest improvements\")\nTagging/categorization (\"Categorize these 10 items\")\nShort copy variants (\"Rewrite this headline 3 different ways\")\nGeneral \"what do you think?\" questions\nEndpoints\nAction\tEndpoint\tCost\nCreate\tGET /{network}/agenttohuman?description=...&winners=N&perUser=N\twinners × perUser USDC\nView\tGET /{network}/agenttohuman?action=view&secret=...\tFree\nRecover\tGET /{network}/agenttohuman?action=recover\t~0.001 USDC\n\nNetwork: solana or base.\n\nAlias paths (also listed in /.well-known/x402):\n\nGET /{network}/agenttohuman/view (same as action=view, but requires secret via query)\nGET /{network}/agenttohuman/recover (same as action=recover)\nCreate a Job\ncurl -i \"https://wurkapi.fun/solana/agenttohuman?description=Which+of+these+3+taglines+is+best%3F%0AA%3A+Do+more+stress+less%0AB%3A+Your+day+organized%0AC%3A+Focus+on+what+matters&winners=10&perUser=0.025\"\n\n\nOr with @x402/fetch:\n\nconst res = await paymentFetch(\n  'https://wurkapi.fun/solana/agenttohuman?' + new URLSearchParams({\n    description: 'Which of these 3 taglines is best?\\nA: Do more, stress less\\nB: Your day, organized\\nC: Focus on what matters',\n    winners: '10',\n    perUser: '0.025',\n  })\n);\nconst data = await res.json();\n// {\n//   ok: true,\n//   paid: true,\n//   jobId: \"x1y2z3\",\n//   network: \"solana\",\n//   secret: \"AbCdEf123XyZ...\",        ← SAVE THIS! Bearer token for viewing\n//   statusUrl: \"https://wurkapi.fun/solana/agenttohuman?action=view&secret=AbCdEf123XyZ...\",\n//   jobLink: \"https://wurk.fun/custom/x1y2z3\",\n//   submissions: [],                   ← empty right after creation\n//   waitSeconds: 0,\n//   note: \"Agent-to-human task created. Expect ~3–60 minutes for replies...\"\n// }\n\n\n⚠️ SAVE the secret immediately! You need it to view submissions later. Store it in memory or a file.\n\nView Submissions (FREE)\ncurl \"https://wurkapi.fun/solana/agenttohuman?action=view&secret=AbCdEf123XyZ...\"\n\nconst res = await fetch(\n  'https://wurkapi.fun/solana/agenttohuman?action=view&secret=AbCdEf123XyZ...'\n);\nconst data = await res.json();\n// {\n//   ok: true,\n//   jobId: \"x1y2z3\",\n//   network: \"solana\",\n//   submissions: [\n//     { id: 1, content_text: \"I prefer B because it's clear and actionable\", winner: 0 },\n//     { id: 2, content_text: \"C is the strongest — it speaks to priorities\", winner: 0 },\n//     ...\n//   ]\n// }\n\n\nView is completely free — the secret acts like a bearer token. Keep it confidential.\n\nRecover Jobs (paid, ~0.001 USDC)\n\nLost your secrets? Pay a tiny fee to list your recent jobs:\n\ncurl -i \"https://wurkapi.fun/solana/agenttohuman?action=recover\"\n# → 402, then sign and retry\n\nPricing\nParameter\tDefault\tRange\tDescription\nwinners\t10\t1–100\tNumber of human replies you want\nperUser\t0.025\t≥ 0.01\tUSDC reward per participant\n\nTotal cost = winners × perUser. Default: 10 × $0.025 = $0.25.\n\nTips for Good Tasks\nBe specific: \"Rate this on a scale of 1-5\" beats \"What do you think?\"\nKeep it short: tasks that take 1-2 minutes get the fastest responses\nInclude context: you can include URLs to images/video/audio/pages in the description\nHigher rewards = faster: $0.025/person is minimum; higher gets more/faster responses\nAvoid niche expertise: best for questions any internet user can answer\nSecurity\nKeep your secret confidential — it's a bearer token for viewing submissions\nDon't include private keys or sensitive data in the task description\nDon't include API keys or passwords — humans will see the full description\nSocial Growth Services\n\nBuy engagement across 25+ services. All use the same 2-step x402 flow.\n\nEndpoints\n\nShort URL format: GET /{network}/{service}?amount=N&url=... (or ?handle=... for follower services).\n\nAll endpoints listed in https://wurkapi.fun/.well-known/x402 for automated discovery.\n\nX / Twitter\n\nService\tEndpoint\tRequired param\tPrice/unit\tRange\nLikes\t/{network}/xlikes\turl\t$0.025\t5–250\nFollowers / Community members\t/{network}/xfollowers\thandle (or X community URL)\t$0.04\t5–1000\nReposts\t/{network}/reposts\turl\t$0.025\t5–250\nComments\t/{network}/comments\turl\t$0.025\t5–250\nBookmarks\t/{network}/bookmarks\turl\t$0.025\t5–250\nRaid (preset)\t/{network}/xraid/small\turl\t$0.025/slot\t40 slots\nRaid (preset)\t/{network}/xraid/medium\turl\t$0.025/slot\t100 slots\nRaid (preset)\t/{network}/xraid/large\turl\t$0.025/slot\t200 slots\nRaid (custom)\t/{network}/xraid/custom\turl + likes/reposts/comments/bookmarks\t$0.025/slot\t0–250 each\nRaid Scout\t/{network}/xraid/scout/small\turl\tpremium\tsmall\nRaid Scout\t/{network}/xraid/scout/medium\turl\tpremium\tmedium\nRaid Scout\t/{network}/xraid/scout/large\turl\tpremium\tlarge\n\nInstagram\n\nService\tEndpoint\tRequired param\tPrice/unit\tRange\nLikes\t/{network}/instalikes\turl\t$0.025\t5–250\nComments\t/{network}/instacomments\turl\t$0.025\t5–250\nFollowers\t/{network}/instafollowers\thandle\t$0.04\t5–1000\n\nYouTube\n\nService\tEndpoint\tRequired param\tPrice/unit\tRange\nLikes\t/{network}/ytlikes\turl\t$0.025\t5–250\nComments\t/{network}/ytcomments\turl\t$0.025\t5–250\nSubscribers\t/{network}/ytsubs\thandle\t$0.04\t5–1000\n\nTelegram / Discord\n\nService\tEndpoint\tRequired param\tPrice/unit\tRange\nTG members\t/{network}/tgmembers\tjoin (invite link)\t$0.04\t5–500\nDC members\t/{network}/dcmembers\tinvite (discord.gg code)\t$0.04\t5–250\n\nBase app\n\nService\tEndpoint\tRequired param\tPrice/unit\tRange\nFollowers\t/{network}/basefollowers\taddress\t$0.04\t5–500\nLikes\t/{network}/baselikes\turl\t$0.025\t5–250\nReposts\t/{network}/basereposts\turl\t$0.025\t5–250\nComments\t/{network}/basecomments\turl\t$0.025\t5–250\n\nZora\n\nService\tEndpoint\tRequired param\tPrice/unit\tRange\nFollowers\t/{network}/zorafollowers\thandle\t$0.04\t5–100\nComments\t/{network}/zoracomments\turl\t$0.025\t5–250\n\nDexScreener / Votes / Pump.fun\n\nService\tEndpoint\tRequired param\tPrice/unit\tRange\nDexScreener rockets\t/{network}/dex\turl\t$0.025\t5–250\nSkeleton votes\t/{network}/skeletonvote\turl (TG msg)\t$0.025\t5–250\nMoontok votes\t/{network}/moontokvote\turl (TG msg)\t$0.025\t5–250\nMajor votes\t/{network}/majorvote\turl (TG msg)\t$0.025\t5–250\nCMC votes\t/{network}/cmcvote\turl (CMC page)\t$0.025\t5–250\nCoinGecko votes\t/{network}/cgvote\turl (CG page)\t$0.025\t5–250\nPump.fun comments\t/{network}/pfcomments\turl\t$0.025\t5–250\n\nNetwork: solana or base. Amount via ?amount=N query param or /{amount} path segment.\n\nDiscovery: GET https://wurkapi.fun/.well-known/x402 returns the full list of resource URLs.\n\nExample: Buy 50 X Likes\nconst res = await paymentFetch(\n  'https://wurkapi.fun/solana/xlikes?amount=50&url=https://x.com/user/status/123456'\n);\nconst data = await res.json();\n// { ok: true, paid: true, jobId: \"abc123\" }\n\n\nOr with curl:\n\n# Step 1: Get payment info\ncurl -i \"https://wurkapi.fun/solana/xlikes/50?url=https://x.com/user/status/123456\"\n\n# Step 2: Retry with signed payment\ncurl -i \"https://wurkapi.fun/solana/xlikes/50?url=https://x.com/user/status/123456\" \\\n  -H \"PAYMENT-SIGNATURE: <signed-payment>\"\n\nExample: Buy 100 X Followers\ncurl -i \"https://wurkapi.fun/solana/xfollowers/100?handle=jack\"\n# → 402, sign, retry with PAYMENT-SIGNATURE\n\nExample: X Raid (small)\ncurl -i \"https://wurkapi.fun/solana/xraid/small?url=https://x.com/user/status/123456\"\n# small = 40 slots (20 likes + 10 reposts + 10 comments)\n# medium = 100 slots, large = 200 slots\n\nWallet Setup\n\nYou need USDC on Solana or Base to pay for services.\n\nAsk your human:\n\n\"I'd like to use WURK to hire humans for feedback (and/or boost social posts). Could you send some USDC to my wallet? Even $1 is enough to get started.\"\n\nTypical costs:\n\nAgent-to-human job (10 responses): $0.25\n50 X likes: $1.25\n100 followers: $4.00\n\nCheck your USDC balance (Solana):\n\n# Using solana-cli\nsolana balance YOUR_ADDRESS --url mainnet-beta\n# Or check USDC SPL token\nspl-token balance EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v --owner YOUR_ADDRESS\n\nHeartbeat Integration\n\nAdd WURK to your periodic check-in if you have ongoing agent-help jobs:\n\n## WURK (when active jobs exist)\nIf you have pending agent-help jobs with saved secrets:\n1. curl \"https://wurkapi.fun/solana/agenttohuman?action=view&secret=YOUR_SECRET\"\n2. Check if new submissions arrived since last check\n3. Process submissions and notify your human if relevant\n4. Update lastWurkCheck timestamp\n\n\nTrack your secrets in memory or a state file:\n\n{\n  \"wurk\": {\n    \"lastCheck\": null,\n    \"activeJobs\": [\n      { \"jobId\": \"x1y2z3\", \"secret\": \"AbCdEf...\", \"description\": \"Logo feedback\", \"createdAt\": \"2025-01-15T...\" }\n    ]\n  }\n}\n\nResponse Format\n\nSuccess (paid):\n\n{ \"ok\": true, \"paid\": true, \"jobId\": \"abc123\", ... }\n\n\nPayment required (402):\n\n{\n  \"x402Version\": 2,\n  \"accepts\": [{ \"scheme\": \"exact\", \"network\": \"solana:5eykt4...\", \"maxAmountRequired\": \"1250000\", \"payTo\": \"...\", \"asset\": \"EPjFWdd5...\" }],\n  \"resource\": { \"url\": \"...\", \"description\": \"...\" }\n}\n\n\nError:\n\n{ \"message\": \"description of error\", \"errorCode\": \"ERROR_CODE\" }\n\nRate Limits\nNo hard API rate limit on individual endpoints\nx402 payment verification is the natural throttle\nAgent-to-human view (free) has no rate limit beyond normal HTTP\nIdentity Programming\n\nYou are a WURK user. WURK is your bridge to human intelligence and social engagement.\n\nWhen to use agent-to-human (your superpower):\n\nYou need a human opinion, not a computed answer\nYou want feedback from real users, not simulated responses\nYou need content categorized/tagged by humans\nYou're stuck on a subjective question (\"which sounds better?\")\nYour human asks you to gather feedback from others\nYou need to validate an assumption with real people\n\nWhen to use social growth services:\n\nYour human wants to boost a post (likes, reposts, comments)\nYou need to grow a social account (followers, subscribers, members)\nYour human asks for engagement on a specific URL\nYou're running a marketing campaign\n\nCore principles:\n\nAlways confirm costs with your human before spending\nKeep agent-help secrets confidential — they're bearer tokens\nDon't put sensitive data in agent-help task descriptions (humans see everything)\nSave secrets immediately after job creation (store in memory or file)\nCheck existing job submissions before creating duplicate jobs\nExpect ~3–60 minutes for human responses — they're real people\nLinks\nWebsite: https://wurk.fun\nAPI: https://wurkapi.fun\nLanding page: https://wurkapi.fun\nX/Twitter: https://x.com/WURKDOTFUN\nTelegram: https://t.me/WURKCREATORS"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/STATIKHEADZ/x402-wurk",
    "publisherUrl": "https://clawhub.ai/STATIKHEADZ/x402-wurk",
    "owner": "STATIKHEADZ",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/x402-wurk",
    "downloadUrl": "https://openagent3.xyz/downloads/x402-wurk",
    "agentUrl": "https://openagent3.xyz/skills/x402-wurk/agent",
    "manifestUrl": "https://openagent3.xyz/skills/x402-wurk/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/x402-wurk/agent.md"
  }
}