{
  "schemaVersion": "1.0",
  "item": {
    "slug": "openkrill",
    "name": "openkrill",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/emilankerwiik/openkrill",
    "canonicalUrl": "https://clawhub.ai/emilankerwiik/openkrill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/openkrill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openkrill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "assets/config-template.json",
      "scripts/list-services.ts",
      "scripts/discover-services.ts",
      "scripts/check-balance.ts",
      "scripts/fund-wallet.ts"
    ],
    "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/openkrill"
    },
    "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/openkrill",
    "agentPageUrl": "https://openagent3.xyz/skills/openkrill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openkrill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openkrill/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": "OpenKrill - x402 Payments Skill",
        "body": "This skill enables AI agents to autonomously make micropayments using the x402 protocol. It handles wallet management, balance checking, and automatic payment flows when APIs return HTTP 402 Payment Required responses."
      },
      {
        "title": "When to Use This Skill",
        "body": "When asked \"what services can I purchase?\" or \"what x402 APIs are available?\" - Query the Bazaar first!\nWhen purchasing browser automation sessions on Browserbase\nWhen performing web scraping tasks with Firecrawl\nWhen the agent needs to create an email address for signups or verification\nWhen interacting with any x402-compatible API\nWhen the user mentions micropayments, crypto payments, or paying for API access\nWhen you encounter a 402 Payment Required response\nWhen discovering new x402-compatible services via the Bazaar\n\nTIP: When a user or agent asks what services are available for purchase, always start by querying the Bazaar discovery endpoint. It provides a live, up-to-date catalog of 12,000+ x402-compatible services."
      },
      {
        "title": "Quick: Discover Available Services",
        "body": "# Query the Bazaar to see what's available (no auth required)\ncurl -s \"https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources?type=http&limit=50\""
      },
      {
        "title": "Prerequisites",
        "body": "Before using this skill, ensure:\n\nTHIRDWEB_SECRET_KEY environment variable is set with a valid thirdweb project secret key\nThe wallet has sufficient USDC balance on Base chain (or the target chain)\nNetwork access to thirdweb API endpoints"
      },
      {
        "title": "Two Types of x402 Support",
        "body": "TypeDescriptionExampleTrue x402Fully keyless - no API keys needed, just pay and useBrowserbaseHybrid x402Requires API key/token + payment headerFirecrawl"
      },
      {
        "title": "x402 Endpoint Patterns",
        "body": "ServiceStandard APIx402 EndpointTypeStatusBrowserbaseapi.browserbase.comx402.browserbase.comTrue x402✅ WorksFirecrawlapi.firecrawl.dev/v1/searchapi.firecrawl.dev/v1/x402/searchNon-standard❌ Broken\n\nDiscovery tips:\n\nCheck for x402. subdomain (e.g., x402.browserbase.com)\nCheck for /x402/ in the path (e.g., /v1/x402/search)\nHit the x402 root URL for endpoint listing (e.g., curl https://x402.browserbase.com/)"
      },
      {
        "title": "Step 1: Check or Create Wallet",
        "body": "Use the thirdweb API directly (recommended):\n\ncurl -s -X POST https://api.thirdweb.com/v1/wallets/server \\\n  -H \"Content-Type: application/json\" \\\n  -H \"x-secret-key: $THIRDWEB_SECRET_KEY\" \\\n  -d '{\"identifier\": \"x402-agent-wallet\"}'\n\nThe response will include the wallet address. Store this for subsequent operations."
      },
      {
        "title": "Step 2: Make Payments with fetchWithPayment",
        "body": "Call the thirdweb x402 fetch API directly:\n\n# Browserbase - Create browser session\ncurl -s -X POST \"https://api.thirdweb.com/v1/payments/x402/fetch?url=https://x402.browserbase.com/browser/session/create&method=POST\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"x-secret-key: $THIRDWEB_SECRET_KEY\" \\\n  -d '{\"browserSettings\": {\"viewport\": {\"width\": 1920, \"height\": 1080}}}'"
      },
      {
        "title": "Step 3: Handle the Response",
        "body": "Success: The API returns the session data directly.\n\nInsufficient Funds: If the wallet needs funding, the API returns:\n\n{\n  \"result\": {\n    \"message\": \"This endpoint requires 0.002 USDC on chain id 8453...\",\n    \"link\": \"https://thirdweb.com/pay?chain=8453&receiver=0x...&token=0x...\"\n  }\n}\n\nWhen you receive a payment link, open it in the user's browser:\n\nIf browser automation is available (MCP, browser tool, etc.), use it to navigate to the link in a new tab\nOtherwise, display the link prominently and instruct the user to open it manually\n\nThis opens thirdweb's payment page where users can fund the wallet."
      },
      {
        "title": "fetchWithPayment Endpoint",
        "body": "URL: https://api.thirdweb.com/v1/payments/x402/fetch\n\nMethod: POST\n\nQuery Parameters:\n\nParameterRequiredDescriptionurlYesTarget API URL to callmethodYesHTTP method (GET, POST, etc.)fromNoWallet address for payment (uses default project wallet if omitted)maxValueNoMaximum payment amount in weiassetNoPayment token address (defaults to USDC)chainIdNoChain ID for payment (e.g., \"eip155:8453\" for Base)\n\nHeaders:\n\nx-secret-key: Your thirdweb project secret key (required)\nContent-Type: application/json"
      },
      {
        "title": "Browserbase",
        "body": "x402 Endpoint: https://x402.browserbase.com\nPricing: $0.12/hour (paid in USDC on Base)\n\nEndpointMethodDescription/browser/session/createPOSTCreate a browser session/browser/session/:id/statusGETCheck session status/browser/session/:id/extendPOSTAdd more time/browser/session/:idDELETETerminate session\n\ncurl -s -X POST \"https://api.thirdweb.com/v1/payments/x402/fetch?url=https://x402.browserbase.com/browser/session/create&method=POST\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"x-secret-key: $THIRDWEB_SECRET_KEY\" \\\n  -d '{\"browserSettings\": {\"viewport\": {\"width\": 1920, \"height\": 1080}}}'"
      },
      {
        "title": "Firecrawl (Non-Standard x402 - NOT RECOMMENDED)",
        "body": "x402 Endpoint: https://api.firecrawl.dev/v1/x402/search\nPricing: $0.01/request\nStatus: ⚠️ Incomplete implementation - cannot be used with thirdweb\n\nWARNING: Firecrawl's x402 implementation is non-standard and currently unusable for automated agents:\n\nReturns 401 Unauthorized instead of 402 Payment Required\nDoesn't include payment details (payTo address, asset, amount) in response\nDocumentation says to use X-Payment: {{paymentHeader}} but doesn't explain how to generate it\n\nComparison with proper x402 (Browserbase):\n\nBrowserbase: Returns 402 with x402Version, accepts, payTo, asset → thirdweb can auto-pay\nFirecrawl: Returns 401 with just {\"error\":\"Unauthorized\"} → no payment info provided\n\nEndpointMethodStatus/v1/x402/searchPOST❌ Non-functional for agents\n\nRecommended alternatives:\n\nFirecrawl MCP - If available in your environment (uses standard API key)\nBrowserbase + scraping script - True x402, fully keyless\nStandard Firecrawl API - With subscription/API key\n\nReference: Firecrawl x402 docs"
      },
      {
        "title": "Mail.tm (Disposable Email)",
        "body": "Base URL: https://api.mail.tm\nPricing: Free (no x402 payment required)\n\nMail.tm allows agents to create email addresses for signups and receive verification emails.\n\nEndpointMethodAuthDescription/domainsGETNoGet available email domains/accountsPOSTNoCreate an email account/tokenPOSTNoGet authentication token/messagesGETYesList all messages/messages/:idGETYesGet full message content/meGETYesGet account info\n\nCreate Email Account\n\n# 1. Get available domain\nDOMAIN=$(curl -s https://api.mail.tm/domains | jq -r '.[\"hydra:member\"][0].domain')\n\n# 2. Create account with unique address\ncurl -s -X POST https://api.mail.tm/accounts \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"address\": \"agent-'$(date +%s)'@'\"$DOMAIN\"'\", \"password\": \"SecurePass123!\"}'\n\nGet Token and Check Messages\n\n# Get auth token\nTOKEN=$(curl -s -X POST https://api.mail.tm/token \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"address\": \"YOUR_EMAIL\", \"password\": \"YOUR_PASSWORD\"}' | jq -r '.token')\n\n# List messages\ncurl -s https://api.mail.tm/messages -H \"Authorization: Bearer $TOKEN\"\n\n# Read specific message\ncurl -s https://api.mail.tm/messages/MESSAGE_ID -H \"Authorization: Bearer $TOKEN\"\n\nImportant: Store email credentials (address, password, token) for later use. Consider saving to .agent-emails.json (gitignored)."
      },
      {
        "title": "Error Handling",
        "body": "ErrorCauseSolution401 UnauthorizedInvalid or missing THIRDWEB_SECRET_KEYCheck environment variable402 Payment RequiredInsufficient balanceAuto-open payment link (see above)400 Bad RequestInvalid URL or methodVerify request parameters404 Not FoundWrong endpointCheck x402-specific endpoint (e.g., x402.browserbase.com)500 Server Errorthirdweb or target API issueRetry or check service status"
      },
      {
        "title": "Common Mistakes",
        "body": "Using wrong subdomain: api.browserbase.com vs x402.browserbase.com\nUsing wrong path: /v1/sessions vs /browser/session/create\nNot checking for payment links: Always parse response for link field"
      },
      {
        "title": "Discovering x402 Endpoints",
        "body": "There are two ways to discover x402-compatible services:"
      },
      {
        "title": "Method 1: x402 Bazaar (Recommended)",
        "body": "The x402 Bazaar is a machine-readable catalog that helps AI agents discover x402-compatible API endpoints programmatically.\n\nQuery the Bazaar Discovery Endpoint\n\n# Using the default facilitator (x402.org)\ncurl -s \"https://x402.org/facilitator/discovery/resources?type=http&limit=20\"\n\n# Using CDP facilitator (Coinbase)\ncurl -s \"https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources?type=http&limit=20\"\n\nUsing the Discovery Script\n\n# Discover available services\nnpx ts-node scripts/discover-services.ts\n\n# With pagination\nnpx ts-node scripts/discover-services.ts --limit 50 --offset 0\n\n# Use CDP facilitator\nnpx ts-node scripts/discover-services.ts --facilitator \"https://api.cdp.coinbase.com/platform/v2/x402\"\n\n# Output as JSON for programmatic use\nnpx ts-node scripts/discover-services.ts --json\n\nResponse Format\n\n{\n  \"x402Version\": 2,\n  \"items\": [\n    {\n      \"resource\": \"https://x402.browserbase.com/browser/session/create\",\n      \"type\": \"http\",\n      \"x402Version\": 1,\n      \"accepts\": [\n        {\n          \"scheme\": \"exact\",\n          \"network\": \"eip155:8453\",\n          \"amount\": \"2000\",\n          \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n          \"payTo\": \"0x...\"\n        }\n      ],\n      \"lastUpdated\": \"2024-01-15T12:30:00.000Z\",\n      \"metadata\": {\n        \"description\": \"Create a browser session\",\n        \"input\": { ... },\n        \"output\": { ... }\n      }\n    }\n  ],\n  \"pagination\": {\n    \"limit\": 20,\n    \"offset\": 0,\n    \"total\": 42\n  }\n}\n\nQuery Parameters\n\nParameterTypeDefaultDescriptiontypestring-Filter by protocol type (e.g., \"http\")limitnumber20Number of resources to return (max: 100)offsetnumber0Offset for pagination"
      },
      {
        "title": "Method 2: Manual Discovery",
        "body": "When encountering a new service that might support x402:\n\n1. Check for x402 Subdomain\n\n# Try the x402 subdomain - often has an info page\ncurl -s https://x402.SERVICE.com/\n\n# Example: Browserbase lists all endpoints at root\ncurl -s https://x402.browserbase.com/\n\n2. Check for /x402/ Path Prefix\n\n# Some services use path prefix instead of subdomain\ncurl -s -I https://api.SERVICE.com/v1/x402/endpoint\n\n3. Test for 402 Response\n\n# A true x402 endpoint returns 402 Payment Required (not 401)\ncurl -s -i -X POST https://x402.SERVICE.com/endpoint \\\n  -H \"Content-Type: application/json\" \\\n  -d '{}' 2>&1 | head -5\n\nExpected for true x402:\n\nHTTP/2 402\nx-payment-required: ...\n\nIf you see 401 Unauthorized: The service uses hybrid x402 (needs API key + payment).\n\n4. Check Service Documentation\n\nLook for x402/payments documentation:\n\ndocs.SERVICE.com/x402/\ndocs.SERVICE.com/payments/\nSearch for \"x402\" or \"402\" in their docs"
      },
      {
        "title": "Additional Resources",
        "body": "See references/API-REFERENCE.md for complete API documentation\nSee references/SERVICES.md for x402-compatible service examples"
      },
      {
        "title": "Links",
        "body": "x402 Protocol\nx402 Bazaar Discovery\nthirdweb x402 Documentation\nBrowserbase x402 Docs"
      }
    ],
    "body": "OpenKrill - x402 Payments Skill\n\nThis skill enables AI agents to autonomously make micropayments using the x402 protocol. It handles wallet management, balance checking, and automatic payment flows when APIs return HTTP 402 Payment Required responses.\n\nWhen to Use This Skill\nWhen asked \"what services can I purchase?\" or \"what x402 APIs are available?\" - Query the Bazaar first!\nWhen purchasing browser automation sessions on Browserbase\nWhen performing web scraping tasks with Firecrawl\nWhen the agent needs to create an email address for signups or verification\nWhen interacting with any x402-compatible API\nWhen the user mentions micropayments, crypto payments, or paying for API access\nWhen you encounter a 402 Payment Required response\nWhen discovering new x402-compatible services via the Bazaar\n\nTIP: When a user or agent asks what services are available for purchase, always start by querying the Bazaar discovery endpoint. It provides a live, up-to-date catalog of 12,000+ x402-compatible services.\n\nQuick: Discover Available Services\n# Query the Bazaar to see what's available (no auth required)\ncurl -s \"https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources?type=http&limit=50\"\n\nPrerequisites\n\nBefore using this skill, ensure:\n\nTHIRDWEB_SECRET_KEY environment variable is set with a valid thirdweb project secret key\nThe wallet has sufficient USDC balance on Base chain (or the target chain)\nNetwork access to thirdweb API endpoints\nIMPORTANT: x402 Endpoint URLs & Service Types\nTwo Types of x402 Support\nType\tDescription\tExample\nTrue x402\tFully keyless - no API keys needed, just pay and use\tBrowserbase\nHybrid x402\tRequires API key/token + payment header\tFirecrawl\nx402 Endpoint Patterns\nService\tStandard API\tx402 Endpoint\tType\tStatus\nBrowserbase\tapi.browserbase.com\tx402.browserbase.com\tTrue x402\t✅ Works\nFirecrawl\tapi.firecrawl.dev/v1/search\tapi.firecrawl.dev/v1/x402/search\tNon-standard\t❌ Broken\n\nDiscovery tips:\n\nCheck for x402. subdomain (e.g., x402.browserbase.com)\nCheck for /x402/ in the path (e.g., /v1/x402/search)\nHit the x402 root URL for endpoint listing (e.g., curl https://x402.browserbase.com/)\nCore Workflow\nStep 1: Check or Create Wallet\n\nUse the thirdweb API directly (recommended):\n\ncurl -s -X POST https://api.thirdweb.com/v1/wallets/server \\\n  -H \"Content-Type: application/json\" \\\n  -H \"x-secret-key: $THIRDWEB_SECRET_KEY\" \\\n  -d '{\"identifier\": \"x402-agent-wallet\"}'\n\n\nThe response will include the wallet address. Store this for subsequent operations.\n\nStep 2: Make Payments with fetchWithPayment\n\nCall the thirdweb x402 fetch API directly:\n\n# Browserbase - Create browser session\ncurl -s -X POST \"https://api.thirdweb.com/v1/payments/x402/fetch?url=https://x402.browserbase.com/browser/session/create&method=POST\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"x-secret-key: $THIRDWEB_SECRET_KEY\" \\\n  -d '{\"browserSettings\": {\"viewport\": {\"width\": 1920, \"height\": 1080}}}'\n\nStep 3: Handle the Response\n\nSuccess: The API returns the session data directly.\n\nInsufficient Funds: If the wallet needs funding, the API returns:\n\n{\n  \"result\": {\n    \"message\": \"This endpoint requires 0.002 USDC on chain id 8453...\",\n    \"link\": \"https://thirdweb.com/pay?chain=8453&receiver=0x...&token=0x...\"\n  }\n}\n\n\nWhen you receive a payment link, open it in the user's browser:\n\nIf browser automation is available (MCP, browser tool, etc.), use it to navigate to the link in a new tab\nOtherwise, display the link prominently and instruct the user to open it manually\n\nThis opens thirdweb's payment page where users can fund the wallet.\n\nAPI Reference\nfetchWithPayment Endpoint\n\nURL: https://api.thirdweb.com/v1/payments/x402/fetch\n\nMethod: POST\n\nQuery Parameters:\n\nParameter\tRequired\tDescription\nurl\tYes\tTarget API URL to call\nmethod\tYes\tHTTP method (GET, POST, etc.)\nfrom\tNo\tWallet address for payment (uses default project wallet if omitted)\nmaxValue\tNo\tMaximum payment amount in wei\nasset\tNo\tPayment token address (defaults to USDC)\nchainId\tNo\tChain ID for payment (e.g., \"eip155:8453\" for Base)\n\nHeaders:\n\nx-secret-key: Your thirdweb project secret key (required)\nContent-Type: application/json\nSupported x402 Services\nBrowserbase\n\nx402 Endpoint: https://x402.browserbase.com\nPricing: $0.12/hour (paid in USDC on Base)\n\nEndpoint\tMethod\tDescription\n/browser/session/create\tPOST\tCreate a browser session\n/browser/session/:id/status\tGET\tCheck session status\n/browser/session/:id/extend\tPOST\tAdd more time\n/browser/session/:id\tDELETE\tTerminate session\ncurl -s -X POST \"https://api.thirdweb.com/v1/payments/x402/fetch?url=https://x402.browserbase.com/browser/session/create&method=POST\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"x-secret-key: $THIRDWEB_SECRET_KEY\" \\\n  -d '{\"browserSettings\": {\"viewport\": {\"width\": 1920, \"height\": 1080}}}'\n\nFirecrawl (Non-Standard x402 - NOT RECOMMENDED)\n\nx402 Endpoint: https://api.firecrawl.dev/v1/x402/search\nPricing: $0.01/request\nStatus: ⚠️ Incomplete implementation - cannot be used with thirdweb\n\nWARNING: Firecrawl's x402 implementation is non-standard and currently unusable for automated agents:\n\nReturns 401 Unauthorized instead of 402 Payment Required\nDoesn't include payment details (payTo address, asset, amount) in response\nDocumentation says to use X-Payment: {{paymentHeader}} but doesn't explain how to generate it\n\nComparison with proper x402 (Browserbase):\n\nBrowserbase: Returns 402 with x402Version, accepts, payTo, asset → thirdweb can auto-pay\nFirecrawl: Returns 401 with just {\"error\":\"Unauthorized\"} → no payment info provided\nEndpoint\tMethod\tStatus\n/v1/x402/search\tPOST\t❌ Non-functional for agents\n\nRecommended alternatives:\n\nFirecrawl MCP - If available in your environment (uses standard API key)\nBrowserbase + scraping script - True x402, fully keyless\nStandard Firecrawl API - With subscription/API key\n\nReference: Firecrawl x402 docs\n\nMail.tm (Disposable Email)\n\nBase URL: https://api.mail.tm\nPricing: Free (no x402 payment required)\n\nMail.tm allows agents to create email addresses for signups and receive verification emails.\n\nEndpoint\tMethod\tAuth\tDescription\n/domains\tGET\tNo\tGet available email domains\n/accounts\tPOST\tNo\tCreate an email account\n/token\tPOST\tNo\tGet authentication token\n/messages\tGET\tYes\tList all messages\n/messages/:id\tGET\tYes\tGet full message content\n/me\tGET\tYes\tGet account info\nCreate Email Account\n# 1. Get available domain\nDOMAIN=$(curl -s https://api.mail.tm/domains | jq -r '.[\"hydra:member\"][0].domain')\n\n# 2. Create account with unique address\ncurl -s -X POST https://api.mail.tm/accounts \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"address\": \"agent-'$(date +%s)'@'\"$DOMAIN\"'\", \"password\": \"SecurePass123!\"}'\n\nGet Token and Check Messages\n# Get auth token\nTOKEN=$(curl -s -X POST https://api.mail.tm/token \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"address\": \"YOUR_EMAIL\", \"password\": \"YOUR_PASSWORD\"}' | jq -r '.token')\n\n# List messages\ncurl -s https://api.mail.tm/messages -H \"Authorization: Bearer $TOKEN\"\n\n# Read specific message\ncurl -s https://api.mail.tm/messages/MESSAGE_ID -H \"Authorization: Bearer $TOKEN\"\n\n\nImportant: Store email credentials (address, password, token) for later use. Consider saving to .agent-emails.json (gitignored).\n\nError Handling\nError\tCause\tSolution\n401 Unauthorized\tInvalid or missing THIRDWEB_SECRET_KEY\tCheck environment variable\n402 Payment Required\tInsufficient balance\tAuto-open payment link (see above)\n400 Bad Request\tInvalid URL or method\tVerify request parameters\n404 Not Found\tWrong endpoint\tCheck x402-specific endpoint (e.g., x402.browserbase.com)\n500 Server Error\tthirdweb or target API issue\tRetry or check service status\nCommon Mistakes\nUsing wrong subdomain: api.browserbase.com vs x402.browserbase.com\nUsing wrong path: /v1/sessions vs /browser/session/create\nNot checking for payment links: Always parse response for link field\nDiscovering x402 Endpoints\n\nThere are two ways to discover x402-compatible services:\n\nMethod 1: x402 Bazaar (Recommended)\n\nThe x402 Bazaar is a machine-readable catalog that helps AI agents discover x402-compatible API endpoints programmatically.\n\nQuery the Bazaar Discovery Endpoint\n# Using the default facilitator (x402.org)\ncurl -s \"https://x402.org/facilitator/discovery/resources?type=http&limit=20\"\n\n# Using CDP facilitator (Coinbase)\ncurl -s \"https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources?type=http&limit=20\"\n\nUsing the Discovery Script\n# Discover available services\nnpx ts-node scripts/discover-services.ts\n\n# With pagination\nnpx ts-node scripts/discover-services.ts --limit 50 --offset 0\n\n# Use CDP facilitator\nnpx ts-node scripts/discover-services.ts --facilitator \"https://api.cdp.coinbase.com/platform/v2/x402\"\n\n# Output as JSON for programmatic use\nnpx ts-node scripts/discover-services.ts --json\n\nResponse Format\n{\n  \"x402Version\": 2,\n  \"items\": [\n    {\n      \"resource\": \"https://x402.browserbase.com/browser/session/create\",\n      \"type\": \"http\",\n      \"x402Version\": 1,\n      \"accepts\": [\n        {\n          \"scheme\": \"exact\",\n          \"network\": \"eip155:8453\",\n          \"amount\": \"2000\",\n          \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n          \"payTo\": \"0x...\"\n        }\n      ],\n      \"lastUpdated\": \"2024-01-15T12:30:00.000Z\",\n      \"metadata\": {\n        \"description\": \"Create a browser session\",\n        \"input\": { ... },\n        \"output\": { ... }\n      }\n    }\n  ],\n  \"pagination\": {\n    \"limit\": 20,\n    \"offset\": 0,\n    \"total\": 42\n  }\n}\n\nQuery Parameters\nParameter\tType\tDefault\tDescription\ntype\tstring\t-\tFilter by protocol type (e.g., \"http\")\nlimit\tnumber\t20\tNumber of resources to return (max: 100)\noffset\tnumber\t0\tOffset for pagination\nMethod 2: Manual Discovery\n\nWhen encountering a new service that might support x402:\n\n1. Check for x402 Subdomain\n# Try the x402 subdomain - often has an info page\ncurl -s https://x402.SERVICE.com/\n\n# Example: Browserbase lists all endpoints at root\ncurl -s https://x402.browserbase.com/\n\n2. Check for /x402/ Path Prefix\n# Some services use path prefix instead of subdomain\ncurl -s -I https://api.SERVICE.com/v1/x402/endpoint\n\n3. Test for 402 Response\n# A true x402 endpoint returns 402 Payment Required (not 401)\ncurl -s -i -X POST https://x402.SERVICE.com/endpoint \\\n  -H \"Content-Type: application/json\" \\\n  -d '{}' 2>&1 | head -5\n\n\nExpected for true x402:\n\nHTTP/2 402\nx-payment-required: ...\n\n\nIf you see 401 Unauthorized: The service uses hybrid x402 (needs API key + payment).\n\n4. Check Service Documentation\n\nLook for x402/payments documentation:\n\ndocs.SERVICE.com/x402/\ndocs.SERVICE.com/payments/\nSearch for \"x402\" or \"402\" in their docs\nAdditional Resources\nSee references/API-REFERENCE.md for complete API documentation\nSee references/SERVICES.md for x402-compatible service examples\nLinks\nx402 Protocol\nx402 Bazaar Discovery\nthirdweb x402 Documentation\nBrowserbase x402 Docs"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/emilankerwiik/openkrill",
    "publisherUrl": "https://clawhub.ai/emilankerwiik/openkrill",
    "owner": "emilankerwiik",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/openkrill",
    "downloadUrl": "https://openagent3.xyz/downloads/openkrill",
    "agentUrl": "https://openagent3.xyz/skills/openkrill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openkrill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openkrill/agent.md"
  }
}