# Proxies.sx > Mobile and residential proxy bandwidth for AI agents, bought and driven from a terminal: a dedicated 4G/5G modem rented per day, week or month (unlimited traffic), metered GB on the Pool Gateway (`gw.proxies.sx:7000` HTTP / `:7001` SOCKS5, one credential for every country), or account-less USDC via x402. REST API with `X-API-Key: psx_...`, an MCP server, or plain curl. Base URL `https://api.proxies.sx/v1`. Last verified: 2026-10-28 against the live site and the backend source. Precedence: the live API wins over every file here; a product skill.md wins over this index; this index wins over page copy. ## If you want to BUY Pick the path by the shape of the need, then read only that file. - **(A) Private modem: one dedicated 4G/5G modem, unlimited traffic, per day / week / month.** Offer this FIRST for any dedicated, port, exclusive-device, p0f (OS fingerprint), OpenVPN or unlimited-traffic request. Own HTTP and SOCKS5 host:port, OpenVPN profile, rotate on demand (API or a public link), auto-renew. Paid from the account balance; the price per plan is live in `GET /v1/private-modems/catalog` and is never hard-coded here. Buying needs an API key with the `modems:purchase` scope. Contract: https://agents.proxies.sx/modems/skill.md - quickstart: https://agents.proxies.sx/quickstart/buy-modem.md - **(B) GB on the Pool Gateway: metered bandwidth, one credential, every country.** $4/GB, volume discounts 10/20/30/40% at 25/50/100/250 GB in one purchase ($2.40/GB at 250 GB+), duration free, same price on the `peer` and `mbl` pools. While country tiers are live (`pricing.live` in `GET /v1/gateway/pool/stock`), a GB of traffic uses 1.00 / 0.375 / 0.1875 GB of balance by exit country (Premium $4, Plus $1.50, Standard $0.75 per GB of traffic at the base price). From 1 TB on the peer pool, volume deals go to $0.50/GB by quote only, not a checkout price: contact maya@proxies.sx with the committed volume and countries. Contract: https://agents.proxies.sx/pool/skill.md - quickstart: https://agents.proxies.sx/quickstart/buy-gb.md - **(C) x402: USDC on Base or Solana, no account, no API key.** `GET https://api.proxies.sx/v1/x402/pool?tier=peer&country=us&traffic=1` answers HTTP 402 with the exact payment; pay, retry with `Payment-Signature: `, receive a ready credential. $4 per GB of traffic in every country (no country tiers), minimum 0.1 GB. A dedicated port is also sold this way at `/v1/x402/proxy`. Contract: https://agents.proxies.sx/pool/skill.md (x402 section) and https://agents.proxies.sx/.well-known/x402.json What a key can and cannot do (so you never promise more): - An account needs one human step: the signup email carries a verification link, and `POST /v1/login/signin` answers 401 until it is clicked (or `GET /v1/login/verify-email?token=...` is called with the token from that link). - API keys are created by a human in the dashboard (https://client.proxies.sx/account, API keys, tick the scopes) or with a dashboard JWT at `POST /v1/api-keys`. A key cannot create or edit keys. `modems:purchase` and `billing:topup` are opt-in and never in the default set; a key without them gets 403 `scope_missing` naming the scope. - Card top-up by API: `POST /v1/stripe/create-balance-checkout {"amount": 20}` with a `billing:topup` key returns a Stripe Checkout `url` that a HUMAN opens and pays; it is not headless. Per-key daily cap `spendCapUsdPerDay`, default 100 USD (403 `spend_cap_reached` above it). Poll `GET /v1/stripe/balance-checkout//receipt` until `credited: true`. Quickstart: https://agents.proxies.sx/quickstart/topup.md - A customer API key cannot buy GB. Balance becomes GB in the dashboard (https://client.proxies.sx/purchase) or with a dashboard JWT at `POST /v1/billing/purchase-traffic`; reseller and admin keys may automate it. Everything after that (proxy password, credentials, stock, usage) is key-drivable. - Every spend carries an `Idempotency-Key` and the `expectedPriceUsd` you were shown; 409 `price_changed` means re-read the price and confirm with the user. Every money step needs the user's approval of the amount. - Peer exit IPs are never published. Stock endpoints return counts per country only; examples mask addresses as `x.x`. ## Prices and errors (machine-readable) - [pricing.json](https://agents.proxies.sx/pricing.json): the GB price table generated from the backend source (base price, volume tiers, country tiers, the 1 TB quote line, payment routes), in the shape of the live `GET https://api.proxies.sx/v1/pricing`, which wins when they disagree - [Live pool stock and country tiers](https://api.proxies.sx/v1/gateway/pool/stock): counts per pool and country plus the `pricing` block (`live`, `basePricePerGB`, `volumeDiscounts`, `tiers[]` with `burnRate`, `pricePerGB`, `countries`), no auth, never an IP - [Live x402 pricing](https://api.proxies.sx/v1/x402/pricing): the $4/GB base and volume discounts for wallet purchases, no auth - [Error table](https://agents.proxies.sx/errors.md): every gateway `E_*` code, purchase-API code and the x402 402 body with HTTP status, meaning, exact fix and whether a retry helps ## Quickstarts (curl first, every step verified) - [Buy GB and connect](https://agents.proxies.sx/quickstart/buy-gb.md): sign up, verify the email, key, top up, buy GB in the dashboard, proxy password, connect through `gw.proxies.sx:7000` - [Rent a private modem](https://agents.proxies.sx/quickstart/buy-modem.md): catalog, quote, buy with `Idempotency-Key` and `expectedPriceUsd`, poll, connect, rotate, renew - [Top up the balance by API](https://agents.proxies.sx/quickstart/topup.md): checkout link, human pays, poll the receipt, balance credited - [Pool quickstart (HTML)](https://agents.proxies.sx/pool-quickstart.html): the shortest path to a working pool credential - [Rotation cookbook](https://agents.proxies.sx/pool/rotation-cookbook.md): copy-paste IP rotation in curl/python/node and the footguns that trip LLMs; read before writing rotation code ## Product contracts (one skill.md per product) - [Private modems](https://agents.proxies.sx/modems/skill.md): catalog, quote, buy, poll, credentials (HTTP, SOCKS5, OpenVPN), rotate, auto-rotate, renew, auto-renew, OS fingerprint, replace; page https://agents.proxies.sx/modems/ - [Pool Gateway](https://agents.proxies.sx/pool/skill.md): API-key path, deposited GB, country tiers, username DSL, stock, sessions, errors, the x402 alternative; page https://agents.proxies.sx/pool/ - [Dedicated port (legacy)](https://agents.proxies.sx/marketplace/skill.md): the older per-port modem pool (`POST /v1/ports`, `/v1/x402/proxy`) in US, GB, FR, NL, PL, GE (Georgia); nearly full, so start at https://agents.proxies.sx/modems/ - [Private Pool](https://agents.proxies.sx/private-pool/skill.md): named country-scoped credentials and Reserved IPs held exclusively for you - [Task market](https://agents.proxies.sx/tasks/skill.md): wallet-only x402 catalog of bounded egress tasks; the 402 response is the quote - [Master skill file](https://agents.proxies.sx/skill.md): the whole machine contract in one file (buy steps, x402 402 shape, username DSL, MCP catalog, peer protocol, compute, reseller keys) - [Agent research index](https://agents.proxies.sx/index.md): one screen, every page and which question it answers ## Use it from a tool - [MCP server](https://agents.proxies.sx/mcp/): `npx -y @proxies-sx/mcp-server` with `PROXIES_API_KEY=psx_...`. Version 3.1.0 (release pending; npm currently 3.0.1) exposes a default toolset of 20 tools: buy (`proxies_modem_catalog`, `proxies_modem_quote`, `proxies_modem_buy`, `proxies_modem_renew`, `proxies_topup_checkout`, `proxies_topup_status`, `get_pricing`), use (`pool_get_stock`, `pool_get_my_credentials`, `pool_build_proxy_url`, `pool_explain_error`, `proxies_modem_mine`, `proxies_modem_rotate`) and manage (account, usage, proxy password, status, tickets). The full set (96 API-key tools plus 16 wallet tools) loads with `--toolset=full` or `PROXIES_TOOLSET=full`. Wallet-only x402 mode with `AGENT_WALLET_KEY`. Call `tools/list` for the authoritative catalog. npm: https://www.npmjs.com/package/@proxies-sx/mcp-server - source: https://github.com/bolivian-peru/proxies-sx-mcp-server - [Integrations](https://agents.proxies.sx/integrations/skill.md): Playwright, browser-use, LangChain, CrewAI, n8n, Make/Zapier, OpenAI Agents SDK, Vercel AI SDK, Stagehand, CloakBrowser (https://agents.proxies.sx/integrations/cloakbrowser/) - [Pool Gateway Swagger](https://api.proxies.sx/docs/gateway): public OpenAPI for the gateway surface; the reseller API is at https://api.proxies.sx/v1/reseller/docs/openapi ## Gateway username (the thing agents get wrong) `psx_--[-rot-][-sid-]`, password = your proxy password (set once with `PATCH /v1/account/proxy-password`; the account login password is never accepted). `pool` is `peer` (flagship: residential and mobile, every country with stock), `mbl` (carrier modems in US, GB, FR, NL, PL, GE = Georgia; `mbl-de` always fails, use `peer-de`), `any` or `best`. `sticky` and `hard` pin the modem, not the IP; `sticky`/`auto*` need a `-sid-` to persist; unknown tokens are dropped silently (there is no `-session-` token). Limits: 500 concurrent connections and 250 sessions per account. ## Build and resell - [Build & resell](https://agents.proxies.sx/build/skill.md): mint per-customer `pak_` keys, set your own retail price, embed a dashboard or ship a storefront; kit https://github.com/bolivian-peru/proxy-reseller-kit, npm `@proxies-sx/pool-sdk` and `@proxies-sx/pool-portal-react` ## Bundles (one fetch) - [llms-full.txt](https://agents.proxies.sx/llms-full.txt): this file plus the modem skill, the quickstarts, the error table and the Pool Gateway skill, under 100 KB - Per-area bundles, each this file plus that area's skill: [peer (earn)](https://agents.proxies.sx/peer/llms-full.txt), [compute](https://agents.proxies.sx/compute/llms-full.txt), [build](https://agents.proxies.sx/build/llms-full.txt), [integrations](https://agents.proxies.sx/integrations/llms-full.txt), [dedicated port](https://agents.proxies.sx/marketplace/llms-full.txt), [private pool](https://agents.proxies.sx/private-pool/llms-full.txt), [tasks](https://agents.proxies.sx/tasks/llms-full.txt) ## Machine discovery - [x402 discovery](https://agents.proxies.sx/.well-known/x402.json): x402 services, wallets, pricing and management endpoints - [Agent card (A2A)](https://agents.proxies.sx/.well-known/agent-card.json): discovery-only card; act through the HTTP endpoints - [ERC-8004 registration](https://agents.proxies.sx/.well-known/erc8004-registration.json): on-chain agent registration record - [docs-manifest.json](https://agents.proxies.sx/docs-manifest.json): the numbers behind the docs - [Live status](https://api.proxies.sx/v1/x402/status): component health as JSON; human page https://agents.proxies.sx/status/ - [Sign up](https://client.proxies.sx/signup), [API keys](https://client.proxies.sx/account), [Buy GB](https://client.proxies.sx/purchase), [Private modems in the dashboard](https://client.proxies.sx/private-modems) ## Company - [About](https://agents.proxies.sx/about/), [Where our IPs come from](https://www.proxies.sx/where-our-ips-come-from), [Terms](https://www.proxies.sx/terms), [Privacy](https://www.proxies.sx/privacy) - [Contact](https://www.proxies.sx/contact): support and sales, maya@proxies.sx; [Telegram](https://t.me/proxies_sx); [X](https://x.com/sxproxies); [GitHub](https://github.com/bolivian-peru) ## Optional - [Earn: peer network](https://agents.proxies.sx/peer/skill.md): share bandwidth from consenting devices and get paid per GB; the live rate is `earningsPerGB` in the register response, never a hard-coded number. Go SDK 1.6.8 https://agents.proxies.sx/peer/go/ (Linux amd64 and arm64; Chinese steps https://agents.proxies.sx/peer/go/linux-zh.md), Node reference 1.6.6 https://agents.proxies.sx/peer/reference-sdk.js?v=1.6.6, Windows https://agents.proxies.sx/peer/windows/, Android https://github.com/bolivian-peru/android-peer-sdk (JitPack 1.3.2). Sign Partner Agreement 2.0 at https://farmer.proxies.sx/agreement first; devices are admitted only after approval (relay close 1013 until then). Payouts: https://farmer.proxies.sx/payouts. Supplier introductions carry no automatic commission. - [Mac compute](https://agents.proxies.sx/compute/skill.md): rent one approved Apple Silicon Mac for 30 days of inference (Starter 24 GB, Pro 48 GB, Max 96 GB; Qwen3.8 27B), or supply one. Early access, no SLA, no x402 checkout; purchases need `compute:purchase`, an `Idempotency-Key`, `expectedPriceUsd` and `pricingVersion`. Live tiers https://api.proxies.sx/v1/peer/compute/tiers, marketplace https://api.proxies.sx/v1/peer/compute/marketplace - [$SX token](https://agents.proxies.sx/sx-token/ecosystem.md): Solana meme token today; utility proposals in development; token ownership is separate from service access and supplier earnings. Overview https://agents.proxies.sx/sx-token/ - [Ground Truth](https://agents.proxies.sx/news/feed.md): source-backed research posts for agents (Atom: https://agents.proxies.sx/news/feed.xml). Latest: https://agents.proxies.sx/news/context-is-capacity/ - [Thesis](https://agents.proxies.sx/thesis/), [System map](https://agents.proxies.sx/system-map/), [Bot detection scanner](https://www.proxies.sx/tools/bot-detection-scanner), [Username builder](https://www.proxies.sx/tools/proxy-username-builder), [x402 SDK](https://github.com/bolivian-peru/x402-sdk) (`@proxies-sx/x402-core`, `-hono`, `-solana` 1.0.1; do not use 1.0.0), [@proxies-sx/lucid-agents](https://www.npmjs.com/package/@proxies-sx/lucid-agents), [Customer portal](https://client.proxies.sx) --- # Source: https://agents.proxies.sx/tasks/skill.md # /tasks - Proxies.sx Task Market (wallet-only, x402 USDC) > A first-party catalog of bounded infrastructure tasks an AI agent buys with just a wallet - no account, no API key, no signup. Pay USDC on Base (~2s) or Solana (~400ms) via the x402 protocol; the HTTP 402 response IS the quote. Plus the reverse rail: sell bandwidth into the network wallet-only and get paid in USDC. **WHAT:** Five live tasks, all fulfilled by our own production infrastructure: (1) multi-country egress over the peer network (the countries listed live at `GET /v1/gateway/pool/stock`), (2) carrier-modem egress in 6 countries, (3) a dedicated mobile proxy port with SOCKS5 and a rotate URL, (4) free carrier-IP resets for that port, (5) the earn rail - sell bandwidth back into the network. This catalog is FIRST-PARTY ONLY; it lists no third-party services. **WHY:** x402 makes agents payable per invocation. Data gathering is the first task class agent markets externalize - an agent that can pay $0.40 for exactly the egress it needs never opens an account. Every task returns a deterministic contract: what you get, what it costs, and a machine-invokable remedy for every failure mode. **FIRST ACTION** - one curl, no auth, no payment. The 402 response is the full machine-readable quote: ```bash curl -s "https://api.proxies.sx/v1/x402/pool?tier=peer&traffic=1" ``` > **Precedence:** this skill.md is the canonical Task Market contract. The machine catalog is [/tasks/manifest.json](https://agents.proxies.sx/tasks/manifest.json). Deep per-product contracts: [/pool/skill.md](https://agents.proxies.sx/pool/skill.md) (pool tasks), [/marketplace/skill.md](https://agents.proxies.sx/marketplace/skill.md) (dedicated port), [/peer/skill.md](https://agents.proxies.sx/peer/skill.md) (earn rail) - those win over this file for their product. If any file disagrees with the live API, the live API wins. > **Already hold a Proxies.sx account API key?** The same egress is available API-first with deposited GB and no crypto - that is the standard Proxies.sx path; see the "Buy & Use With an API Key" section of [/skill.md](https://agents.proxies.sx/skill.md). The Task Market is deliberately its own wallet-only product for agents without accounts. **Base URL:** `https://api.proxies.sx` --- ## Live Task Catalog All prices verified against the live API on 2026-07-21 and again on 2026-10-13. These are x402 purchases, which do not follow the country tiers of the account path: every country costs $4 per GB of traffic here, while an account balance is used at $1.50 or $0.75 per GB outside the Premium countries (see https://agents.proxies.sx/pool/skill.md). | # | Task | Method + Path | Price | Min spend | |---|------|---------------|-------|-----------| | 1 | Multi-country egress (peer tier, the countries listed live at `GET /v1/gateway/pool/stock`, residential + mobile IPs) | `GET/POST /v1/x402/pool?tier=peer&traffic=` | $4/GB, volume-discounted to $2.40/GB at 250 GB+ | 0.1 GB = $0.40 | | 2 | Carrier-modem egress (mbl tier, 6 countries: US, GB, FR, NL, PL, GE = Georgia) | `GET/POST /v1/x402/pool?tier=mbl&traffic=` | Same: $4/GB | 0.1 GB = $0.40 | | 3 | Dedicated mobile proxy port (pinned modem, own host:port, HTTP + SOCKS5, rotate URL) | `GET/POST /v1/x402/proxy?country=US&traffic=` | $4/GB (port + duration free) | 0.1 GB = $0.40 | | 4 | Carrier-IP reset for a purchased port | `GET /v1/rotate/:token` | FREE, 5-min cooldown | - | | 5 | EARN: sell bandwidth into the network | `POST /v1/peer/agents/register` | You earn a revenue share set by Proxies.sx and customized per partner - no fixed public percentage; live rate returned at registration in `earningsPerGB` - never trust a hardcoded $/GB figure. Min payout $5 | - | Volume discounts (single purchase, live from `/v1/x402/pool/pricing`): 25 GB+ 10%, 50 GB+ 20%, 100 GB+ 30%, 250 GB+ 40% (= $2.40/GB). Coverage is live data - read counts (never IPs) before targeting a country: ```bash curl -s https://api.proxies.sx/v1/gateway/pool/stock # per-pool, per-country endpoint counts curl -s https://api.proxies.sx/v1/x402/countries # mbl/dedicated-port countries with device counts ``` --- ## The Buy Loop (identical for tasks 1-3) Header names, exactly: payment proof goes in `Payment-Signature`; session management goes in `X-Session-Token`. ### Step 1 - Discover ```bash curl -s "https://api.proxies.sx/v1/x402/pool/pricing" # pool tier catalog + networks + username DSL curl -s "https://api.proxies.sx/v1/x402/pricing" # dedicated-port pricing + networks ``` ### Step 2 - Quote (the 402 IS the contract) Request the task without payment. Live `accepts[]` shape, captured 2026-07-21 from `GET /v1/x402/pool?tier=peer&traffic=1` (truncated): ```json { "x402Version": 1, "error": "Payment required to access this resource", "accepts": [ { "scheme": "exact", "network": "base", "maxAmountRequired": "4000000", "resource": "https://api.proxies.sx/v1/x402/pool", "payTo": "0xF8cD900794245fc36CBE65be9afc23CDF5103042", "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "maxTimeoutSeconds": 30 }, { "scheme": "exact", "network": "solana", "maxAmountRequired": "4000000", "payTo": "6eUdVwsPArTxwVqEARYGCh4S2qwW2zCs7jSEDRpxydnv", "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" } ], "pool": { "tier": "peer", "pricePerGB": 4, "trafficGB": 1, "amountUSDC": 4, "stockUrl": "https://api.proxies.sx/v1/gateway/pool/stock", "management": { "credit": "GET /v1/x402/manage/pool/credit", "topup": "POST /v1/x402/manage/pool/topup", "usage": "GET /v1/x402/manage/pool/usage", "regenerate": "POST /v1/x402/manage/pool/regenerate", "connection": "GET /v1/x402/manage/pool/connection" } } } ``` How to read it: - `maxAmountRequired` is micro-USDC (6 decimals): `"4000000"` = $4.00 = 1 GB. `"400000"` = $0.40 = the 0.1 GB minimum. - `payTo` is the recipient wallet; `asset` is the USDC token contract/mint. Both are pinned - payment to any other address or token is rejected. - On POOL purchases, trust `accepts[].maxAmountRequired` / `payTo` / `asset` and the `pool` block; IGNORE `accepts[].outputSchema` (it is inherited from the dedicated-port product and describes that product, not the pool - per /pool/skill.md). - The purchase parameter is `traffic` (GB, 0.1 to 1000), not "gb". ### Step 3 - Pay USDC on-chain | Network | Chain id | Settlement | Gas | |---------|----------|-----------|-----| | Base (EVM) | `eip155:8453` | ~2 seconds | ~$0.01 | | Solana | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` | ~400ms | ~$0.0001 | Send the exact `maxAmountRequired` to `payTo`. A 2% underpay tolerance absorbs gas dust. The tx must be a direct on-chain USDC transfer, confirmed, less than 24 hours old. Pool purchases accept on-chain Base/Solana only; the dedicated port additionally accepts facilitator signed intents (EIP-3009). ### Step 4 - Retry with the payment proof ```bash curl -s "https://api.proxies.sx/v1/x402/pool?tier=peer&traffic=1" \ -H "Payment-Signature: YOUR_TX_HASH" ``` ### Step 5 - Receive credentials + session token Pool response (task 1/2): `proxy{host, httpPort, username, password(pak_*), http}`, `credit{allocatedGB, usedGB, remainingGB, expiresAt, enabled}`, `sessionToken (x402s_*)`, `manage{...}`, `payment{txHash, network, amountUSDC}`. Port response (task 3): `proxy{http, socks5, server, httpPort, socksPort, username, password, expiresAt}`, `rotationUrl`, `sessionId`, `portId`, `traffic{...}`, `management{sessionToken}`. **Persist three things:** the credential password, the `sessionToken`, and your tx hash. Verified purchases also return a `payment-response` header: base64 JSON `{"status":"settled","txHash":...,"network":...}`. ### Step 6 - Self-manage (`X-Session-Token: x402s_...`) | Task | Method + Path | What | |------|---------------|------| | 1/2 | `GET /v1/x402/manage/pool/credit` | Remaining GB, live metered | | 1/2 | `POST /v1/x402/manage/pool/topup` | More USDC (new tx hash in `Payment-Signature`) adds GB; re-enables a cap-suspended key. 5/min | | 1/2 | `GET /v1/x402/manage/pool/usage?days=30` | Per-day usage series | | 1/2 | `POST /v1/x402/manage/pool/regenerate` | New `pak_` secret, same username. 3/hour | | 1/2 | `GET /v1/x402/manage/pool/connection` | Re-emit full credentials | | 3 | `GET /v1/x402/manage/session` | Session details | | 3 | `GET /v1/x402/manage/session/credit` | Remaining credit | | 3 | `POST /v1/x402/manage/ports/replace` | Replace an offline port - FREE, max 3/session, new device. 5/min | | 3 | `POST /v1/x402/manage/ports/recreate` | Recreate a deleted port with remaining credit | | 3 | `POST /v1/x402/manage/session/topup` | Extend traffic ($4/GB, new tx) or duration (free, but the `Payment-Signature` header must still be present - any placeholder value). 5/min | ### Step 7 - Recover (no auth needed) ```bash GET /v1/x402/session/tx/:txHash # resolve any payment to its session GET /v1/x402/sessions/wallet/:wallet # all sessions bought by a wallet ``` Retrying the original purchase with the same `Payment-Signature` re-emits the SAME credentials and session token - a lost response never costs a second payment. --- ## Using a Pool Credential (tasks 1-2): username DSL summary Connect to `gw.proxies.sx:7000` as an HTTP proxy (CONNECT works for HTTPS targets), or `gw.proxies.sx:7001` as SOCKS5 - both work for the x402 pool credential too, metered identically (fixed 2026-07-25). The password is your `pak_*` key. The username is a `-`-delimited routing string, lowercased and split on `-`, so no token value may itself contain a hyphen: ``` psx_-{pool}-{country}[-sid-{8-64 a-z0-9_}][-rot-{sticky|hard|auto5|auto10|auto20|auto60|ondemand}][-carrier-..][-city-..] ``` - `pool`: `peer` or `mbl` (an mbl credential is quality-locked: `peer` routes are silently served from modems, by design). - `country`: 2-letter ISO or `any` - edit per request, same credential, no repurchase. - `sid`: session id, 8-64 chars `[a-z0-9_]`. Same sid returns to the same exit. - `rot`: rotation mode; `sticky`/`hard` pin, `auto5/10/20/60` re-pick on interval, `ondemand` re-picks per new connection. Gateway default when omitted: `auto10`. **Two sharp edges (the contract, not bugs):** 1. **Sticky pins the MODEM, not the IP.** Mobile carriers re-NAT egress IPs on their own cadence, so a perfectly pinned modem can still surface different exit IPs. For a held IP use the dedicated port (task 3) and control resets yourself, or prefer residential peer exits (home-ISP IPs hold for hours to days). 2. **`sticky`/`auto*` need a `-sid-`.** Without one, every connection starts a fresh synthetic session and nothing sticks across connections. Use `-sid-`; `-session-` is not a token. Unknown tokens are silently skipped, so `-session-` routes with zero stickiness, and right after the account id (`psx_-session-123`) it fills the pool and country slots: any pool, any country. Full DSL (failover, ttl, isp, asn, pin tokens; error codes): /pool/skill.md. --- ## The Failure Contract (deterministic remedies, no disputes) | Failure | Remedy | Cost | |---------|--------|------| | Pool exit dies mid-workload | Automatic - gateway probes and routes around dead exits on the next pick; you are metered per delivered byte, so failures cost nothing | $0 | | Dedicated port offline | `POST /v1/x402/manage/ports/replace` - provisioned on a DIFFERENT device, max 3 per session | FREE | | Port expired/deleted, credit remains | `POST /v1/x402/manage/ports/recreate` | uses remaining credit | | GB cap reached | Auto-suspend within ~5-35s (no overage billing); `POST /manage/pool/topup` re-enables. No refunds of unused GB | top-up only | | Credential leaked | `POST /v1/x402/manage/pool/regenerate` - new secret, same username, same credit | FREE | | Purchase response lost | Retry with the same `Payment-Signature` - identical credentials re-emitted | $0 | | Everything lost except tx hash | `GET /v1/x402/session/tx/:txHash` (no auth) | $0 | | Paid but provisioning failed | API returns 200 with `sessionToken` + `recover.recreateEndpoint` - never a bare 500 that eats a payment | $0 | --- ## Trust Properties - **Replay protection is durable** - every redeemed tx hash is stored in MongoDB (unique-indexed mint hashes + indexed top-up hashes). One tx = one task; reuse returns 409, across restarts and across products (a hash spent on a pool credential cannot also buy a port). - **2% payment tolerance** on on-chain verification. - **Public receipts** - session-by-txHash and sessions-by-wallet lookups need no auth. - **Settlement receipt header** - `payment-response`: base64 JSON `{"status":"settled","txHash":...,"network":...}` on verified purchases. - **Direct settlement** - USDC moves from your wallet to ours on-chain. We never custody funds; there is no escrow layer and no balance we can freeze. --- ## EARN Rail (task 5) Sell bandwidth into the same network the buy-side tasks consume. Wallet-only: ```bash curl -s -X POST https://api.proxies.sx/v1/peer/agents/register \ -H "Content-Type: application/json" \ -d '{"name":"my-agent","type":"claude","walletAddress":"YOUR_SOLANA_ADDRESS"}' # Returns: deviceId, jwt (1h), refreshToken, relay URL, earningsPerGB (the LIVE rate), # throughputContract {minKBps, probeUrl, probeIntervalMin} ``` - **Rate:** Your payout is 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 carry a 7-day cooling period. - **The earning path** is the binary tunnel protocol (`tunnel_connect` + `tunnel_data`), not the legacy JSON path. Use the reference client: https://agents.proxies.sx/peer/reference-sdk.js - **Self-test before assuming you earn:** `POST /v1/peer/my-devices/:deviceId/test` returns pass/fail with a `reasonCode` and a `fix` string. Full earn contract: /peer/skill.md. --- ## AUP & Limits - No fraud, no attacks (DDoS, credential stuffing, exploitation), no CSAM, no illegal content. Violations terminate access without refund. - SSRF-blocked: private IP ranges, localhost, and cloud-metadata targets are refused at the gateway (`E_SSRF_BLOCKED`, 403). - Purchase throttles: pool buy 10/min, top-up 5/min, regenerate 3/hour; port replace/top-up 5/min. - Gateway concurrency: 500 concurrent connections and 250 concurrent sessions per account (defaults). Errors: `E_RATE_LIMITED_CONN`, `E_SESSION_LIMIT`. --- ## Roadmap (NOT purchasable - no payment endpoint exists for these) Listed for planning only. Nothing below returns a 402 today; do not attempt to pay for them. - **One-shot no-auth scrape jobs** - pay one x402 invoice, receive one bounded collection run as structured data. 10 planned job types: price & stock monitoring, SERP intelligence, ad & brand verification, reviews & ratings, jobs & hiring, travel fare, listings & classifieds, AI web feed, marketplace & social, proxy flow (bring-your-own logic). - **Scheduled flows** - the same jobs on a recurring schedule with webhook/S3/CSV delivery, wallet-payable. - **Third-party listings** - pending a vetting policy; until it lands this catalog stays first-party only. The machine catalog marks these `"live": false` with no payment fields: /tasks/manifest.json. --- ## Links | Resource | URL | |----------|-----| | This skill file | https://agents.proxies.sx/tasks/skill.md | | Human storefront | https://agents.proxies.sx/tasks/ | | Machine catalog (JSON) | https://agents.proxies.sx/tasks/manifest.json | | Master skill file | https://agents.proxies.sx/skill.md | | Pool Gateway skill (deep contract) | https://agents.proxies.sx/pool/skill.md | | Dedicated Port skill | https://agents.proxies.sx/marketplace/skill.md | | Peer skill (earn contract) | https://agents.proxies.sx/peer/skill.md | | Live pool pricing | https://api.proxies.sx/v1/x402/pool/pricing | | Live port pricing | https://api.proxies.sx/v1/x402/pricing | | Live stock (counts only, never IPs) | https://api.proxies.sx/v1/gateway/pool/stock | | Live service status | https://api.proxies.sx/v1/x402/status | | Fork target (MIT template) | https://github.com/bolivian-peru/marketplace-service-template | **Support:** maya@proxies.sx or https://t.me/proxies_sx - quote the `req` id from any gateway error body, or your tx hash for payment questions. --- ## Changelog - **2026-07-21**: Initial release. Five live tasks (peer egress, mbl egress, dedicated port, free IP reset, earn rail), all first-party, all verified against the live API. Roadmap entries (scrape jobs, scheduled flows, third-party listings) marked not purchasable. --- *Managed by Maya (openclaw bot) | Task Market (x402)* |