{
  "name": "Proxies.sx Task Market",
  "version": "1.0.0",
  "updated": "2026-07-21",
  "_description": "Machine-readable catalog for https://agents.proxies.sx/tasks/. FIRST-PARTY tasks only. Canonical contract: /tasks/skill.md; if this file disagrees with a skill.md, the skill.md wins; if a skill.md disagrees with the live API, the live API wins.",
  "_payment_note": "Single source of truth for payment recipients and USDC token contracts is the live 402 response: pay accepts[].maxAmountRequired (micro-USDC string, 6 decimals) to accepts[].payTo in accepts[].asset. This file deliberately does NOT duplicate wallet or asset addresses. Payment proof header: Payment-Signature. Session management header: X-Session-Token (x402s_*). Replay protection is durable (MongoDB): one tx hash redeems exactly one task.",
  "baseUrl": "https://api.proxies.sx",
  "skill": "https://agents.proxies.sx/tasks/skill.md",
  "storefront": "https://agents.proxies.sx/tasks/",
  "tasks": [
    {
      "id": "pool-egress-peer",
      "name": "Multi-country egress (peer tier)",
      "live": true,
      "method": "GET|POST",
      "path": "/v1/x402/pool?tier=peer&traffic=<GB>",
      "priceModel": "per_gb_metered",
      "priceUsdc": 4.0,
      "priceNote": "$4/GB, volume-discounted to $2.40/GB at 250 GB+ (10% at 25 GB, 20% at 50 GB, 30% at 100 GB, 40% at 250 GB). Duration free. Recipients/assets: returned in the 402 accepts[].",
      "minSpendUsd": 0.4,
      "networks": [
        { "network": "base", "chainId": "eip155:8453", "settlementTime": "~2s" },
        { "network": "solana", "chainId": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", "settlementTime": "~400ms" }
      ],
      "inputNote": "Query/body params: tier=peer, traffic (GB, 0.1-1000, required on the paid request; the param is 'traffic', not 'gb'), country (ISO-2 or 'any', sets only the starting username), duration (seconds, free, default 30d, max 90d), sid (8-64 [a-z0-9_]), rot (sticky|hard|auto5|auto10|auto20|auto60|ondemand). Unpaid request returns the 402 quote; retry with Payment-Signature: <txHash>.",
      "outputNote": "proxy{host, httpPort, username, password(pak_*), http, socks5}, credit{allocatedGB, usedGB, remainingGB, expiresAt, enabled}, sessionToken(x402s_*), manage{credit,topup,usage,regenerate,connection}, payment{txHash, network, amountUSDC}. HTTP :7000 and SOCKS5 :7001 both work, metered identically. Country count with live stock changes constantly; counts at /v1/gateway/pool/stock (never IPs). Failure contract: metered per delivered byte, auto-suspend at cap (~5-35s), regenerate on leak, idempotent re-emit by tx hash."
    },
    {
      "id": "pool-egress-mbl",
      "name": "Carrier-modem egress (mbl tier)",
      "live": true,
      "method": "GET|POST",
      "path": "/v1/x402/pool?tier=mbl&traffic=<GB>",
      "priceModel": "per_gb_metered",
      "priceUsdc": 4.0,
      "priceNote": "Same rail and price as the peer tier: $4/GB volume-discounted to $2.40/GB at 250 GB+. Recipients/assets: returned in the 402 accepts[].",
      "minSpendUsd": 0.4,
      "networks": [
        { "network": "base", "chainId": "eip155:8453", "settlementTime": "~2s" },
        { "network": "solana", "chainId": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", "settlementTime": "~400ms" }
      ],
      "inputNote": "Same params as pool-egress-peer with tier=mbl. Credential is quality-locked (qualityTier safe): even 'peer' routes in the username are served from production 4G/5G carrier modems, by design.",
      "outputNote": "Same output shape as pool-egress-peer. 6 countries: US, GB, FR, NL, PL, GE (Georgia, not Germany). 10-15 Mbps, sub-1s TTFB. Live per-country device counts at /v1/x402/countries."
    },
    {
      "id": "dedicated-port",
      "name": "Dedicated mobile proxy port",
      "live": true,
      "method": "GET|POST",
      "path": "/v1/x402/proxy?country=US&traffic=<GB>",
      "priceModel": "per_gb_metered",
      "priceUsdc": 4.0,
      "priceNote": "$4/GB; port itself $0, duration free. Recipients/assets: returned in the 402 accepts[]. Also accepts facilitator signed intents (EIP-3009) in addition to direct on-chain Base/Solana.",
      "minSpendUsd": 0.4,
      "networks": [
        { "network": "base", "chainId": "eip155:8453", "settlementTime": "~2s" },
        { "network": "solana", "chainId": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", "settlementTime": "~400ms" }
      ],
      "inputNote": "Params: country (ISO-2, one of the live mbl countries), traffic (GB, min 0.1), duration (seconds, 3600-2592000, free), optional city/carrier. Unpaid request returns the 402 quote; retry with Payment-Signature: <txHash>.",
      "outputNote": "proxy{http, socks5, server, httpPort, socksPort, username, password, expiresAt}, rotationUrl, sessionId, portId, traffic{allocatedGB, usedGB, remainingGB}, management{sessionToken}. Failure contract: POST /v1/x402/manage/ports/replace (free, max 3/session, different device), POST /v1/x402/manage/ports/recreate (uses remaining credit), payment-verified-but-provisioning-failed still returns 200 + sessionToken + recover.recreateEndpoint."
    },
    {
      "id": "carrier-ip-reset",
      "name": "Carrier-IP reset (for a purchased dedicated port)",
      "live": true,
      "method": "GET",
      "path": "/v1/rotate/:token",
      "priceModel": "free",
      "priceNote": "Free with any dedicated port. 5-minute cooldown between resets. The :token is the rotationUrl returned by the port purchase; no other auth.",
      "inputNote": "GET the rotationUrl exactly as returned by the dedicated-port purchase.",
      "outputNote": "Triggers a true carrier-side IP reset on the pinned modem (not a pool re-pick). During cooldown returns an error with the wait time; the port keeps serving on the current IP."
    },
    {
      "id": "earn-sell-bandwidth",
      "name": "EARN: sell bandwidth into the network",
      "live": true,
      "method": "POST",
      "path": "/v1/peer/agents/register",
      "priceModel": "revenue_share_earn",
      "priceNote": "You EARN, not spend: a revenue share set by Proxies.sx and customized per partner - there is no fixed public percentage; rates are configured by our team, can be tailored to you, and move with demand, paid NET in USDC on Solana. Always read your live per-GB rate from the earningsPerGB field returned at registration; never hardcode it. Min payout $5 (agents). Payouts go only to the registered wallet; wallet changes have a 7-day cooling period.",
      "inputNote": "JSON body: {name, type, walletAddress(Solana), apiKey(optional psx_* to link earnings to an account)}. No auth; rate limited.",
      "outputNote": "deviceId, jwt (1h), refreshToken, relay (wss URL), earningsPerGB {mobile, residential, datacenter}, throughputContract {minKBps, probeUrl, probeIntervalMin}. Then connect the WebSocket with Sec-WebSocket-Protocol: token.<jwt> and implement the binary tunnel protocol (tunnel_connect + tunnel_data). Reference client: https://agents.proxies.sx/peer/reference-sdk.js. Self-test: POST /v1/peer/my-devices/:deviceId/test. Full contract: https://agents.proxies.sx/peer/skill.md"
    },
    {
      "id": "scrape-job-oneshot",
      "name": "One-shot no-auth scrape job (roadmap)",
      "live": false,
      "inputNote": "PLANNED, not purchasable - no payment endpoint exists. Pay one x402 invoice, receive one bounded collection run as structured data. 10 planned job types: price_stock, serp_intelligence, ad_brand_verification, reviews_ratings, jobs_hiring, travel_fare, listings_classifieds, ai_web_feed, marketplace_social, proxy_flow.",
      "outputNote": "Will be announced in this manifest with live:true and payment fields when purchasable."
    },
    {
      "id": "scheduled-flows",
      "name": "Scheduled collection flows (roadmap)",
      "live": false,
      "inputNote": "PLANNED, not purchasable. Recurring scheduled versions of the one-shot jobs with webhook/S3/CSV delivery, wallet-payable.",
      "outputNote": "Will be announced in this manifest with live:true and payment fields when purchasable."
    },
    {
      "id": "third-party-listings",
      "name": "Third-party task listings (roadmap)",
      "live": false,
      "inputNote": "PLANNED, pending a vetting policy. Until it lands this catalog is first-party only; no third-party services are listed or rendered.",
      "outputNote": "Policy and listing schema will land here when approved."
    }
  ],
  "trust": {
    "replayProtection": "durable (MongoDB) - one tx hash redeems exactly one task; reuse returns 409 across restarts and across products",
    "paymentTolerancePercent": 2,
    "publicReceipts": ["GET /v1/x402/session/tx/:txHash", "GET /v1/x402/sessions/wallet/:wallet"],
    "settlementReceiptHeader": "payment-response (base64 JSON {status:'settled', txHash, network})",
    "custody": "none - direct on-chain settlement, no escrow"
  },
  "limits": {
    "gatewayMaxConcurrentConnectionsPerAccount": 500,
    "gatewayMaxConcurrentSessionsPerAccount": 250,
    "purchaseThrottles": { "poolBuyPerMin": 10, "topupPerMin": 5, "regeneratePerHour": 3, "portReplacePerMin": 5 },
    "ssrf": "private ranges, localhost and cloud-metadata targets refused (E_SSRF_BLOCKED, 403)",
    "aup": "no fraud, no attacks, no CSAM, no illegal content - violations terminate access without refund"
  },
  "fork": {
    "template": "https://github.com/bolivian-peru/marketplace-service-template",
    "license": "MIT",
    "note": "Fork the template, swap in your own x402 service, run your own wallet-payable storefront. A hardened taskmarket repo is coming; the template is the fork target today."
  }
}
