{
  "schemaVersion": "1.0",
  "item": {
    "slug": "shadow-phone",
    "name": "Shadow Number",
    "source": "tencent",
    "type": "skill",
    "category": "金融交易",
    "sourceUrl": "https://clawhub.ai/0xShadowETH/shadow-phone",
    "canonicalUrl": "https://clawhub.ai/0xShadowETH/shadow-phone",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/shadow-phone",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=shadow-phone",
    "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/shadow-phone"
    },
    "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/shadow-phone",
    "agentPageUrl": "https://openagent3.xyz/skills/shadow-phone/agent",
    "manifestUrl": "https://openagent3.xyz/skills/shadow-phone/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/shadow-phone/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": "Shadow Number Skill",
        "body": "Use this skill when you need to sign up on a website that requires phone verification, or any time you need a disposable phone number to receive an OTP/SMS verification code."
      },
      {
        "title": "What This Skill Does",
        "body": "Calls the Shadow API (x402-gated — payment ~$0.10 USDC on Base is handled automatically)\nReturns a real temporary phone number for the chosen service and country\nNavigates to the target website and enters the number into the signup form\nPolls the Shadow OTP endpoint every 15 seconds until the SMS code arrives\nEnters the OTP to complete verification"
      },
      {
        "title": "Step 1: Choose Service Code",
        "body": "Pick the service code for the website you are signing up on:\n\nWebsiteCodeTelegramopt1Facebookopt2Google / Gmailopt7WhatsAppopt29Instagramopt36Twitter / Xopt48Microsoftopt33Appleopt42PayPalopt15Amazonopt22Tinderopt38Shopeeopt49\n\nIf the exact service is not listed above, use the service name to search — the API accepts any valid SMSPVA service code."
      },
      {
        "title": "Step 2: Buy a Temp Number (x402 payment)",
        "body": "Make a POST request to the Shadow buy endpoint. This endpoint requires x402 payment — your agent wallet will automatically pay ~$0.10 USDC on Base when the server returns HTTP 402, then retry.\n\nPOST https://extraordinary-charisma-production.up.railway.app/api/smspva/buy\nContent-Type: application/json\n\n{\n  \"country\": \"US\",\n  \"service\": \"opt7\"\n}\n\nSupported country codes: US, GB, FR, DE, IN, BR, PH, ID, NG, RU, UA, PL, CA, AU, MX, and 60+ more.\n\nSuccess response (200):\n\n{\n  \"statusCode\": 200,\n  \"data\": {\n    \"phoneNumber\": \"14155552671\",\n    \"orderId\": \"abc123\",\n    \"orderExpireIn\": 600\n  }\n}\n\nThe full number to enter on the website is: +{countryCode}{phoneNumber} (e.g. +14155552671 for US numbers).\n\nIf you get a non-200 response, try a different country or service code and call buy again."
      },
      {
        "title": "Step 3: Use the Number on the Website",
        "body": "Use your browser to:\n\nNavigate to the website's signup or phone verification page\nEnter the phone number in international format (e.g. +14155552671)\nClick the \"Send code\" / \"Verify\" / \"Get OTP\" button\nWait for the page to confirm the SMS was sent"
      },
      {
        "title": "Step 4: Poll for OTP",
        "body": "After triggering the SMS, poll every 15 seconds:\n\nGET https://extraordinary-charisma-production.up.railway.app/api/smspva/otp/{orderId}\n\nOTP received (200):\n\n{\n  \"statusCode\": 200,\n  \"data\": {\n    \"sms\": { \"code\": \"123456\" },\n    \"orderId\": \"abc123\",\n    \"orderExpireIn\": 540\n  }\n}\n\nExtract data.sms.code — that is your OTP.\n\nNot yet received (202): wait 15 seconds and retry.\n\nStop polling if:\n\nYou receive status 200 (success)\norderExpireIn drops to 0 (order expired — start over)\nYou receive status 410 (order closed)"
      },
      {
        "title": "Step 5: Enter the OTP",
        "body": "Go back to the browser tab and enter the OTP code from data.sms.code into the verification field. Submit the form to complete signup."
      },
      {
        "title": "Error Recovery",
        "body": "Number doesn't work / site rejects it:\n\nPUT https://extraordinary-charisma-production.up.railway.app/api/smspva/refuse/{orderId}\n\nThen go back to Step 2 and buy a new number.\n\nNumber is banned by the service:\n\nPUT https://extraordinary-charisma-production.up.railway.app/api/smspva/ban/{orderId}\n\nThen buy a new number with a different country."
      },
      {
        "title": "Full Example Flow",
        "body": "User: \"Sign me up on Telegram with a US number\"\n\nCall POST /api/smspva/buy with { country: \"US\", service: \"opt1\" }\nGet back phoneNumber: \"14155552671\", orderId: \"x9k2m\"\nOpen browser → navigate to https://web.telegram.org → start signup\nEnter +14155552671 as the phone number → click Send Code\nPoll GET /api/smspva/otp/x9k2m every 15s\nReceive { sms: { code: \"84712\" } }\nEnter 84712 in the Telegram verification box → account created ✅"
      },
      {
        "title": "Notes",
        "body": "Numbers are single-use and expire after orderExpireIn seconds (typically 5–10 minutes)\nAlways use international format with + prefix when entering the number on websites\nSome services block certain countries — if one country fails, retry with a different one\nThe x402 payment (~$0.10 USDC) is charged per number purchase, not per OTP poll"
      }
    ],
    "body": "SHADOW_API_URL=https://extraordinary-charisma-production.up.railway.app\n\nShadow Number Skill\n\nUse this skill when you need to sign up on a website that requires phone verification, or any time you need a disposable phone number to receive an OTP/SMS verification code.\n\nWhat This Skill Does\nCalls the Shadow API (x402-gated — payment ~$0.10 USDC on Base is handled automatically)\nReturns a real temporary phone number for the chosen service and country\nNavigates to the target website and enters the number into the signup form\nPolls the Shadow OTP endpoint every 15 seconds until the SMS code arrives\nEnters the OTP to complete verification\nStep 1: Choose Service Code\n\nPick the service code for the website you are signing up on:\n\nWebsite\tCode\nTelegram\topt1\nFacebook\topt2\nGoogle / Gmail\topt7\nWhatsApp\topt29\nInstagram\topt36\nTwitter / X\topt48\nMicrosoft\topt33\nApple\topt42\nPayPal\topt15\nAmazon\topt22\nTinder\topt38\nShopee\topt49\n\nIf the exact service is not listed above, use the service name to search — the API accepts any valid SMSPVA service code.\n\nStep 2: Buy a Temp Number (x402 payment)\n\nMake a POST request to the Shadow buy endpoint. This endpoint requires x402 payment — your agent wallet will automatically pay ~$0.10 USDC on Base when the server returns HTTP 402, then retry.\n\nPOST https://extraordinary-charisma-production.up.railway.app/api/smspva/buy\nContent-Type: application/json\n\n{\n  \"country\": \"US\",\n  \"service\": \"opt7\"\n}\n\n\nSupported country codes: US, GB, FR, DE, IN, BR, PH, ID, NG, RU, UA, PL, CA, AU, MX, and 60+ more.\n\nSuccess response (200):\n\n{\n  \"statusCode\": 200,\n  \"data\": {\n    \"phoneNumber\": \"14155552671\",\n    \"orderId\": \"abc123\",\n    \"orderExpireIn\": 600\n  }\n}\n\n\nThe full number to enter on the website is: +{countryCode}{phoneNumber} (e.g. +14155552671 for US numbers).\n\nIf you get a non-200 response, try a different country or service code and call buy again.\n\nStep 3: Use the Number on the Website\n\nUse your browser to:\n\nNavigate to the website's signup or phone verification page\nEnter the phone number in international format (e.g. +14155552671)\nClick the \"Send code\" / \"Verify\" / \"Get OTP\" button\nWait for the page to confirm the SMS was sent\nStep 4: Poll for OTP\n\nAfter triggering the SMS, poll every 15 seconds:\n\nGET https://extraordinary-charisma-production.up.railway.app/api/smspva/otp/{orderId}\n\n\nOTP received (200):\n\n{\n  \"statusCode\": 200,\n  \"data\": {\n    \"sms\": { \"code\": \"123456\" },\n    \"orderId\": \"abc123\",\n    \"orderExpireIn\": 540\n  }\n}\n\n\nExtract data.sms.code — that is your OTP.\n\nNot yet received (202): wait 15 seconds and retry.\n\nStop polling if:\n\nYou receive status 200 (success)\norderExpireIn drops to 0 (order expired — start over)\nYou receive status 410 (order closed)\nStep 5: Enter the OTP\n\nGo back to the browser tab and enter the OTP code from data.sms.code into the verification field. Submit the form to complete signup.\n\nError Recovery\n\nNumber doesn't work / site rejects it:\n\nPUT https://extraordinary-charisma-production.up.railway.app/api/smspva/refuse/{orderId}\n\n\nThen go back to Step 2 and buy a new number.\n\nNumber is banned by the service:\n\nPUT https://extraordinary-charisma-production.up.railway.app/api/smspva/ban/{orderId}\n\n\nThen buy a new number with a different country.\n\nFull Example Flow\n\nUser: \"Sign me up on Telegram with a US number\"\n\nCall POST /api/smspva/buy with { country: \"US\", service: \"opt1\" }\nGet back phoneNumber: \"14155552671\", orderId: \"x9k2m\"\nOpen browser → navigate to https://web.telegram.org → start signup\nEnter +14155552671 as the phone number → click Send Code\nPoll GET /api/smspva/otp/x9k2m every 15s\nReceive { sms: { code: \"84712\" } }\nEnter 84712 in the Telegram verification box → account created ✅\nNotes\nNumbers are single-use and expire after orderExpireIn seconds (typically 5–10 minutes)\nAlways use international format with + prefix when entering the number on websites\nSome services block certain countries — if one country fails, retry with a different one\nThe x402 payment (~$0.10 USDC) is charged per number purchase, not per OTP poll"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/0xShadowETH/shadow-phone",
    "publisherUrl": "https://clawhub.ai/0xShadowETH/shadow-phone",
    "owner": "0xShadowETH",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/shadow-phone",
    "downloadUrl": "https://openagent3.xyz/downloads/shadow-phone",
    "agentUrl": "https://openagent3.xyz/skills/shadow-phone/agent",
    "manifestUrl": "https://openagent3.xyz/skills/shadow-phone/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/shadow-phone/agent.md"
  }
}