agents.proxies.sx into any agentic chat (Claude, ChatGPT, Cursor …), or ask straight from your repo – then ask anything. Your agent reads the whole contract and can buy, build, and run it for you.
read agents.proxies.sx and set up my proxies
First request: curl -s 'https://api.proxies.sx/v1/x402/pricing' - no auth needed. Then an unpaid GET /v1/x402/proxy (Dedicated Port) or GET /v1/x402/pool (Pool Gateway Access) returns HTTP 402 with the payment catalog. Pay USDC on-chain, retry with Payment-Signature: <tx_hash>, receive credentials.
Master Skill File: agents.proxies.sx/skill.md - the complete contract in one read for AI agents
Claude Code, Cursor, an MCP client, or a script you wrote - hand it agents.proxies.sx. It reads the contract, pays with USDC or an API key, and stands up whatever you asked for. Any data. Any country. No dashboard.
Give your agent the contract →Same real mobile + residential network, same $4/GB, same countries - two ways for an agent to buy and drive it. Pick by how it authenticates: an API key it holds, or a wallet it pays from. Most integrations use the account + API key path; x402 is there for wallet-only agents.
| ① Account + API key / MCP — recommended | ② Autonomous x402 (USDC) | |
|---|---|---|
| Setup | Register at client.proxies.sx, deposit GB (card or crypto), create an API key (psx_...) | None — no account, no key, no signup |
| How the agent buys | Call api.proxies.sx/v1 with X-API-Key: psx_..., or point an MCP client at the MCP server | Unpaid request → HTTP 402 → pay USDC on-chain → retry with the tx hash |
| Management | Full & persistent: ports, GB top-ups, rotation, usage, billing — via API, MCP, or dashboard | Per-purchase session token (x402s_); no account-wide view |
| Payment | Deposit once (card / USDT / USDC / BTC / ...), spend from GB balance | USDC per purchase — Base (~2s) or Solana (~400ms) |
Create an account at client.proxies.sx, deposit GB, and generate an API key. Your AI agent then has full access to the same API these products expose — dedicated ports, the pool gateway, rotation, usage, billing — by sending X-API-Key: psx_..., in any language, no wallet required. Prefer Claude, Cursor, or another MCP client? Point it at the MCP server:
npx @proxies-sx/mcp-server
and it creates ports, buys GB, rotates IPs, and reads usage as native tools (89 tools). One balance, persistent keys, one dashboard — how most integrations run.
No account, no key: the agent pays USDC over HTTP 402 per purchase. Ideal for wallet-native agents and one-off buys. Full protocol below.
Both paths reach the same network at the same $4/GB with the same volume discounts. The only difference is authentication.
HTTP 402 Payment Required for machine-to-machine USDC payments. No account, no API key. The same protocol gates both buy products: Dedicated Port (/v1/x402/proxy) and Pool Gateway Access (/v1/x402/pool).
1. Request without payment GET /v1/x402/proxy?country=US&traffic=1 2. Receive 402 response price, recipient wallet, supported networks 3. Send USDC on-chain Base (~2s) or Solana (~400ms) 4. Retry with payment proof Payment-Signature: <tx_hash> 5. Receive proxy credentials host, port, username, password, session token
| Network | Settlement | Gas | USDC Contract | Recipient |
|---|---|---|---|---|
| Base (EVM) | ~2 sec | ~$0.01 | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | 0xF8cD900794245fc36CBE65be9afc23CDF5103042 |
| Solana | ~400ms | ~$0.0001 | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v | 6eUdVwsPArTxwVqEARYGCh4S2qwW2zCs7jSEDRpxydnv |
| Type | Price/GB | Min Purchase | Duration |
|---|---|---|---|
| Shared | $4.00 | 0.1 GB ($0.40) | Free (unlimited) |
Real mobile IPs, not datacenter relabelled as "residential" - the cheap kind that gets flagged the moment you hit a protected site. Verify any exit IP on ipinfo.io / MaxMind / IP2Location before you pay.
# 1. Request proxy (receive 402 with payment info)
curl -s 'https://api.proxies.sx/v1/x402/proxy?country=US&traffic=1'
# 2. After sending USDC, retry with tx hash
curl -s 'https://api.proxies.sx/v1/x402/proxy?country=US&traffic=1' \
-H "Payment-Signature: YOUR_TX_HASH"
# 3. Check session
curl -s https://api.proxies.sx/v1/x402/manage/session \
-H "X-Session-Token: x402s_YOUR_TOKEN"
# 4. Replace offline port (free, max 3)
curl -s -X POST https://api.proxies.sx/v1/x402/manage/ports/replace \
-H "X-Session-Token: x402s_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"country":"US"}'
# 5. Top up session (pay for more traffic)
curl -s -X POST https://api.proxies.sx/v1/x402/manage/session/topup \
-H "X-Session-Token: x402s_YOUR_TOKEN" \
-H "Payment-Signature: NEW_TX_HASH" \
-H "Content-Type: application/json" \
-d '{"addTrafficGB":2,"addDurationSeconds":86400}'
Pool Gateway endpoints (GET/POST /v1/x402/pool, /v1/x402/pool/pricing, /v1/x402/manage/pool/*) are in the Pool Gateway section below and in /pool/skill.md. Live per-component health: GET /v1/x402/status.
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /v1/x402/pricing | - | Pricing tiers and structure |
| GET | /v1/x402/countries | - | Available countries with device counts |
| GET | /v1/x402/calculate | - | Calculate cost |
| GET | /v1/x402/health | - | Service health |
| GET | /v1/x402/info | - | Master info (pricing, countries, MCP) |
| GET | /v1/x402/.well-known | - | Protocol discovery |
| GET | /v1/x402/proxy | x402 | Purchase mobile proxy |
| POST | /v1/x402/proxy | x402 | Purchase mobile proxy (POST) |
| GET | /v1/x402/manage/session | Token | Session details via token |
| GET | /v1/x402/manage/session/credit | Token | Check remaining credit |
| GET | /v1/x402/manage/ports | Token | List all ports in session |
| GET | /v1/x402/manage/ports/:portId/status | Token | Port status |
| POST | /v1/x402/manage/ports/replace | Token | Replace offline port (free, max 3) |
| POST | /v1/x402/manage/ports/recreate | Token | Recreate deleted port with remaining credit |
| GET | /v1/x402/manage/session/topup/calculate | Token | Preview top-up cost |
| POST | /v1/x402/manage/session/topup | Token+x402 | Pay to extend session |
| GET | /v1/x402/session/:id | - | Session by ID |
| GET | /v1/x402/session/tx/:txHash | - | Session by transaction hash |
| GET | /v1/x402/sessions/wallet/:wallet | - | Sessions by wallet address |
| POST | /v1/x402/agents | - | Register agent |
| GET | /v1/x402/agents/:wallet | - | Get agent by wallet |
| GET | /v1/rotate/:token | - | Rotate IP via public token |
Token = X-Session-Token: x402s_<hex> header. x402 = Payment-Signature: <tx_hash> header.
Port Replacement - If proxy goes offline, POST /manage/ports/replace for free replacement. Max 3 per session. Session Top-Up - Add traffic ($4/GB) or duration (free). POST /manage/session/topup with Payment-Signature. Port Recreation - If port deleted but session has credit, POST /manage/ports/recreate. IP Rotation - GET /v1/rotate/:token to rotate IP without auth.
Two ways to buy - Pool Gateway Access (recommended) and the Dedicated Port, both x402-gated at api.proxies.sx, paid in USDC. The Peer Network is the flagship supply behind them - residential + mobile IPs across 150+ countries, scaling toward millions of devices - and the one way to earn.
| Product | Endpoint | Price | Payment | Status |
|---|---|---|---|---|
| Pool Gateway Access (one credential, whole network) - recommended | GET/POST /v1/x402/pool |
$4.00/GB | USDC on Base or Solana | LIVE |
| Dedicated Port (one pinned modem) | GET /v1/x402/proxy |
$4.00/GB | USDC on Base or Solana | LIVE |
| Peer Network (earn) | POST /v1/peer/agents/register |
earn per GB | USDC payout | LIVE |
One USDC payment buys one credential that reaches every country in your tier through the shared Pool Gateway (gw.proxies.sx:7000) - no per-country repurchase. It routes the whole network: request tier=peer for the flagship peer network (residential + mobile IPs across 150+ countries, scaling toward millions of devices), or tier=mbl for the guaranteed-quality carrier modems in 6 countries. Both $4/GB, metered and capped - the gateway probes peers and routes around dead ones, so broken peers cost you nothing. Buy at GET/POST /v1/x402/pool (no payment returns HTTP 402 with the tier catalog; pay USDC and retry to receive credentials), or drive the same gateway with your account API key + deposited GB (see TWO WAYS TO ACCESS). Pool Gateway page · Quickstart · Agent guide (skill.md) · Rotation Cookbook (copy-paste IP rotation + footguns).
The specialized option: your own port on a real 4G/5G modem in one of the 6 carrier-modem countries (NL, PL, US, GE, FR, GB as of last edit; it shifts with carrier supply - read live availability, not this sentence). Pick it when you need a public rotate URL for a true carrier-IP reset, or a single pinned host:port. HTTP and SOCKS5, city/carrier targeting, auto IP rotation. Free port replacement (max 3) and session top-up. Buy a Dedicated Port.
POOL GATEWAY = one credential on gw.proxies.sx:7000 over the whole network, every country in the tier - country, session and rotation are declared per-request in the proxy username. DEDICATED PORT = one real port on one modem, its own host:port, one country fixed at purchase - the IP holds until YOU hit the rotate URL.
The pool username IS the routing API (no SDK needed - just build the string):
psx_<accountId>-<pool>-<country>[-rot-<mode>][-sid-<name>]
# pool: mbl | peer | any country: 2-letter ISO or 'any'
# rot: auto5|auto10|auto20|auto60 (soft-rotate) | sticky (pin) | ondemand
# sid: REQUIRED for a session to stick across connections
# (use -sid-, NOT -session- - the latter is silently ignored)
# US modem, rotate every 10 min, pinned session "job42":
curl -x "http://psx_ab12cd-mbl-us-rot-auto10-sid-job42:PASS@gw.proxies.sx:7000" https://api.ipify.org
Copy-paste rotation recipes (curl / python / node) + the footguns: rotation cookbook.
| Pool Gateway (/v1/x402/pool) - recommended | Dedicated Port (/v1/x402/proxy) | |
|---|---|---|
| What payment mints | A metered pak_ credential; no device touched - modem/peer picked live per connection, over the whole 150+-country network | A real port on ONE modem (ProxySmart), bound to that device |
| Endpoint | Shared gw.proxies.sx:7000 for everyone; routing lives in the username | Unique serverIp:port per purchase |
| Country | Edit the country slot in the username per request - same credential, no repurchase; the full peer network reaches 150+ countries | Fixed at purchase. Change = recreate the port (only with 0 active ports left) |
| Rotation | -rot- token only: auto5/10/20/60 re-pick an endpoint on interval; sticky/hard pin it. No rotate URL; no mode gives per-request IP change | True carrier-IP reset via public /v1/rotate/<token> URL (5-min cooldown, auto 5-1440 min) |
| SOCKS5 | Yes - HTTP :7000 and SOCKS5 :7001 both work, GB metered identically on either | Yes - working socks5:// URL included |
| Concurrency | Parallel sessions on different endpoints via distinct -sid- values; capped at 250 sessions / 500 connections per account | One modem. Fan-out = buy more ports |
| Payment rails | Solana and Base on-chain only - facilitator rail rejected | Solana, Base, AND facilitator signed intents (EIP-3009) |
| Failure recovery | Automatic - dead peers/modems are routed around on the next pick, and you are metered so failures cost nothing; /manage/pool/regenerate rotates the secret | /manage/ports/replace (free, max 3, new device) or /ports/recreate |
IP caveats (both): mobile carriers re-NAT egress IPs on their own cadence - a dedicated port holds a MODEM you control the rotation of, not a fixed IP; pool -rot-sticky pins the MODEM for the session, never the IP. Pool sessions need a -sid-<id> token to stick across connections (-session- is silently ignored).
> Country coverage: the peer network reaches 150+ countries; retarget us → gb → pl → fr in the username per request from one credential, no repurchase.
> High fan-out: hundreds of parallel sticky sessions (distinct -sid- values land on different endpoints) through one credential.
> A fleet of agents shares one secret, one top-up, one credit meter - instead of N ports with N passwords.
> Zero babysitting: default auto10 rotates every 10 min with no API calls, dead peers/modems are routed around automatically, and you are metered so failures never cost you.
> You need on-demand true carrier-IP resets via the public rotate URL - the pool cannot do this at all (pool rotation only re-picks an endpoint, it never resets a carrier IP).
> Cookie-bound / login / 2FA work where you want one held modem whose IP changes only when you trigger it - no selector re-picks under you.
> You must hard-pin a city or carrier at purchase, or you pay via facilitator signed intents (EIP-3009) - only this product accepts either.
Same for both: $4.00/GB, 0.1 GB ($0.40) minimum, duration free - you only pay for traffic. Accountless x402 flow (HTTP 402 → pay USDC on Base ~2s or Solana ~400ms → retry with Payment-Signature), same replay protection, same x402s_ session token for management. The difference is topology, not price: the Pool Gateway spans the whole network (peer 150+ countries + the 6-country carrier modems), while a Dedicated Port is one carrier modem in one of those 6 countries (US, GB, PL, FR, NL, GE).
Will it work on my target? Check live per-country stock before a run and component health at /status/. Real mobile/residential IPs clear IP-reputation gates (DataDome t=bv, Cloudflare, PerimeterX) that flag datacenter proxies - but no vendor can promise a given site: verify your exit yourself on ipinfo.io / MaxMind before you scale. If a target still blocks clean mobile + residential, it's a genuinely hard target - that's what our managed Data Works tier is for.
Share mobile/residential bandwidth and earn USDC. 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. Read earningsPerGB in the registration response for your live per-GB value. Start earning.
@proxies-sx/mcp-server v2.4.0 on npm - 89 tools for AI agents to manage proxy infrastructure via the Model Context Protocol (70 API-key tools incl. the ops + pool groups, 19 wallet-only x402 tools incl. buying Pool Gateway access with USDC). The server self-describes via tools/list.
npx -y @proxies-sx/mcp-server
// API Key mode (account required)
{
"mcpServers": {
"proxies-sx": {
"command": "npx",
"args": ["-y", "@proxies-sx/mcp-server"],
"env": { "PROXIES_API_KEY": "psx_your_key" }
}
}
}
// x402 mode (no account needed)
{
"mcpServers": {
"proxies-sx": {
"command": "npx",
"args": ["-y", "@proxies-sx/mcp-server"],
"env": { "AGENT_WALLET_KEY": "your_private_key", "PREFERRED_NETWORK": "base" }
}
}
}
You don't load 79. A scraper needs ~5: purchase_shared_traffic, create_port (or mint a pool credential), rotate_port, list_available_countries, get_account_usage. The rest are advanced surfaces (x402, reseller, ops) you only pull in if you use them - the count is coverage, not required context.
| Category | Count | Key Tools |
|---|---|---|
| Account | 2 | get_account_summary, get_account_usage |
| Port Mgmt | 7 | list_ports, create_port, delete_port, update_port_credentials, reconfigure_port |
| Port Status | 4 | get_port_status, get_port_ip, ping_port, speed_test_port |
| Rotation | 5 | rotate_port, configure_auto_rotation, get_rotation_history |
| Billing | 3 | get_pricing, calculate_price, purchase_shared_traffic |
| Crypto Pay | 5 | create_crypto_payment, check_crypto_payment_status |
| Reference | 1 | list_available_countries |
| Utilities | 3 | get_proxy_connection_string, get_all_proxy_formats |
| Support | 5 | create_support_ticket, list_my_tickets, reply_to_ticket |
| x402 Session | 8 | get_x402_session, replace_x402_port, calculate_x402_topup, topup_x402_session |
| x402 Auto | 11 | x402_get_proxy, x402_wallet_balance, x402_rotate_ip, x402_extend_session |
| x402 Pool (wallet-only) | 7 | x402_get_pool_access, x402_pool_credit, x402_pool_topup |
| Ops (admin-scoped keys) | 11 | ops_get_user, ops_list_tickets, ops_reconcile_payments |
| Pool Gateway (reseller) | 7 | pool_get_stock, pool_mint_key, pool_topup_key |
Share your internet bandwidth, get paid in USDC on Solana. AI agents and humans connect via WebSocket, route traffic, earn automatically. This section is a summary - the canonical contract (binary tunnel protocol, self-test, SDK implementer checklist) is the Peer Network page and /peer/skill.md; if this page ever disagrees with them, they win.
| IP Type | Rate Tier | Examples |
|---|---|---|
| Mobile | Highest | AT&T, Verizon, T-Mobile, Vodafone |
| Residential | Mid | Comcast, Spectrum, Cox, BT |
| Datacenter | Base | AWS, GCP, Azure, Hetzner, VPNs |
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 and accumulating automatically. IP type is classified server-side via ASN lookup - the value your device reports is ignored. Read earningsPerGB from the registration response for your live per-GB value. Min payout: $5 USDC (agents; Android SDK devices: $10).
1. Register POST /v1/peer/agents/register - get JWT + device ID
2. Connect wss://relay.proxies.sx with Sec-WebSocket-Protocol: token.{JWT}
3. Tunnel Receive tunnel_connect - open TCP to the target - stream bytes both ways
4. Earn Earnings credited per GB. Request payout min $5 USDC to Solana wallet.
Fastest start - use a ready, tested SDK (it does the whole protocol for you):
Node.js ·
Go ·
Windows ·
Android.
Full guide at the Peer Network page. The inline snippets below are only for building your own client - if you do, implement the streaming tunnel_connect flow documented in /peer/skill.md, not the legacy proxy_request.
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",
"apiKey":"psx_YOUR_API_KEY"
}'
# Response:
# { "deviceId": "agent_abc123", "jwt": "eyJ...", "refreshToken": "a1b2...",
# "relay": "wss://relay.proxies.sx",
# "earningsPerGB": { "mobile": <number>, "residential": <number>, "datacenter": <number> } }
#
# Your payout is a revenue share set by Proxies.sx and customized per partner,
# NET - there is no fixed public percentage; read earningsPerGB for your live
# per-GB value. Tier order: mobile > residential > datacenter. Rates can change anytime.
# Min payout: $5 (agents) / $10 (Android SDK).
# JWT expires in 1h - refresh via POST /v1/peer/agents/{id}/refresh.
const ws = new WebSocket('wss://relay.proxies.sx', [`token.${JWT}`]);
ws.onopen = () => {
ws.send(JSON.stringify({ type: 'device_info', payload: { country: 'US' } }));
};
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
if (msg.type === 'proxy_request') {
const { requestId, method, url, headers, body } = msg.payload;
fetch(url, { method, headers, body: body ? atob(body) : undefined })
.then(async (res) => {
const buf = await res.arrayBuffer();
ws.send(JSON.stringify({
type: 'proxy_response',
payload: { requestId, statusCode: res.status,
headers: Object.fromEntries(res.headers),
body: btoa(String.fromCharCode(...new Uint8Array(buf))) }
}));
});
}
if (msg.type === 'heartbeat') ws.send(JSON.stringify({ type: 'heartbeat_ack' }));
};
This snippet shows the connection handshake plus the legacy JSON proxy_request flow for illustration. Production clients must handle the binary tunnel_connect protocol - full lifecycle, message shapes, and the two porting mistakes that cause intermittent auth are in /peer/skill.md.
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| POST | /v1/peer/agents/register | - | Register as peer (600/min per IP rate limit) |
| POST | /v1/peer/agents/:id/refresh | Refresh | Refresh JWT (expires 1h) |
| GET | /v1/peer/agents/:id/status | JWT | Peer status |
| GET | /v1/peer/agents/:id/earnings | JWT | Earnings and traffic stats |
| PUT | /v1/peer/agents/:id/wallet | JWT | Update wallet (7-day cooling period) |
| POST | /v1/peer/agents/:id/withdraw | JWT | Request payout (min $5 USDC; paid only to the registered wallet) |
| Feature | Value |
|---|---|
| JWT expiry | 1 hour |
| Refresh token expiry | 7 days |
| Max WebSocket connections | 6 per device (multi-WS socket pool; over-cap evicts the oldest socket; reference SDK opens 4 by default) |
| Message rate limit | 100/min per device |
| Registration rate limit | 600/min per IP (agents); 5/min per IP (Android SDK device registration) |
| Wallet change cooling | 7 days |
| IP classification | Server-side ASN lookup (cannot spoof) |
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 earnings scale with demand routed through your IP - there is no fixed monthly figure. Always pull the current earningsPerGB at registration and multiply by your own throughput. Illustrative relative shape only:
| Connection | Relative earning potential |
|---|---|
| Mobile 5G (US) | Highest - premium tier, most demand |
| Residential (US) | Mid |
| Datacenter VPS | Lowest - base tier |
Actual earnings depend on demand, location, uptime, and carrier ASN reputation.
// build.gradle
implementation("com.github.bolivian-peru:android-peer-sdk:1.3.1")
// Usage
ProxiesPeerSDK.init(context, "api-key", config)
ProxiesPeerSDK.getInstance().start() // Start sharing
ProxiesPeerSDK.getInstance().stop() // Stop sharing
| Package | Description |
|---|---|
| @proxies-sx/mcp-server | MCP server - 89 tools published on npm (v2.4.0) |
| @proxies-sx/x402-core | x402 types, utilities, payment requirement builder |
| @proxies-sx/x402-hono | x402 Hono middleware for building paywall APIs |
| @proxies-sx/x402-solana | Solana transaction verification for x402 |
| Repository | Description |
|---|---|
| proxies-sx-mcp-server | MCP server source |
| x402-sdk | x402 payment protocol SDK |
| android-peer-sdk | Android SDK for peer bandwidth sharing |
| Framework | Integration | Details |
|---|---|---|
| MCP | npx @proxies-sx/mcp-server | 89 tools for Claude, Cursor, Windsurf |
import { Hono } from 'hono';
import { x402Middleware } from '@proxies-sx/x402-hono';
import { verifySolanaPayment } from '@proxies-sx/x402-solana';
const app = new Hono();
app.use('/api/*', x402Middleware({
price: 10000, // $0.01 in micro-units
recipient: 'YOUR_SOLANA_WALLET',
verify: verifySolanaPayment,
}));
app.get('/api/data', (c) => c.json({ data: 'premium content' }));
| File | URL | Purpose |
|---|---|---|
| skill.md | /skill.md | Master skill file - everything for AI agents in one read |
| llms.txt | /llms.txt | LLM integration reference |
| x402.json | /.well-known/x402.json | x402 protocol discovery |
| peer skill.md | /peer/skill.md | Peer Network detailed contract (earn side) |
| pool skill.md | /pool/skill.md | Pool Gateway agent guide - API key + deposited GB (standard path) or x402 USDC (wallet-only) |
| pool quickstart | /pool-quickstart.html | Pool Gateway: buy with USDC or use a pak_ key in 30 seconds |
Hierarchy: if this page disagrees with a skill.md, the skill.md wins; if a skill.md disagrees with the live API, the live API wins.
| Domain | Purpose |
|---|---|
| api.proxies.sx | REST API + x402 endpoints + agent APIs |
| client.proxies.sx | Customer portal |
| admin.proxies.sx | Admin dashboard |
| agents.proxies.sx | This page |
| relay.proxies.sx | WebSocket relay for peer devices |
| gw.proxies.sx | HTTP proxy gateway |
Twitter/X | Telegram | GitHub | Dashboard
Support: maya@proxies.sx or Telegram. When reporting an error, quote the req id from the error message.