x402 uses HTTP's 402 Payment Required status code to enable instant, permissionless proxy access. AI agents pay with USDC and receive credentials in a single request - zero registration required.
npx @proxies-sx/mcp-server/v1/x402/infoAll info in one call - pricing, networks, limits
agents.proxies.sx/skill.mdMaster machine contract - the full x402 flow for agents
agents.proxies.sx/llms.txtThe whole contract in one file for LLMs & agents
/.well-known/x402.jsonMachine-readable x402 payment discovery manifest
agents.proxies.sx/index.mdResearch index of every agent-facing doc
/v1/x402/countriesAvailable countries with device counts
/v1/x402/healthCheck if x402 integration is enabled
/v1/x402/pricingCurrent pricing & payment networks
/v1/x402/calculateCalculate cost for duration & traffic
/api#/x402Interactive API documentation
x402scan.comOfficial x402 server registry & analytics
/v1/x402/proxyPayment-gated proxy credential purchase
/v1/x402/manage/sessionHeader: X-Session-Token: x402s_...
/v1/x402/manage/ports/:id/statusHeader: X-Session-Token: x402s_...
All x402 responses include live data:
Agent uses wallet to sign USDC payment authorization
When calling /v1/x402/proxy without payment, you receive a 402 response with payment requirements.
Updated every 5 minutes from actual inventory
Private tier may have fewer country options
Follows x402scan validation schema for AI agents
{
"x402Version": 1,
"accepts": [{
"scheme": "exact",
"network": "base",
"maxAmountRequired": "4000000",
"resource": "https://api.proxies.sx/v1/x402/proxy",
"description": "Real 4G/5G Mobile Proxy - 5 countries available...",
"mimeType": "application/json",
"payTo": "0xF8cD900794245fc36CBE65be9afc23CDF5103042",
"maxTimeoutSeconds": 30,
"asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"outputSchema": {
"input": {
"type": "http",
"method": "GET",
"queryParams": {
"country": {"type": "string", "required": true, "enum": ["DE", "PL", "US", "FR", "GB"]},
"duration": {"type": "number", "required": true, "description": "Duration in seconds (3600-2592000)"},
"traffic": {"type": "number", "required": true, "description": "Traffic in GB (min 0.1)"},
"tier": {"type": "string", "enum": ["shared"], "default": "shared"}
},
"headerFields": {
"X-Agent-Name": {"type": "string", "required": false}
}
},
"output": {
"sessionToken": {"type": "string"},
"proxy": {"type": "object"},
"expiresAt": {"type": "string"}
}
},
"extra": {
"availableCountries": ["DE", "PL", "US", "FR", "GB"],
"pricing": {
"shared": {"portPerMonth": 0, "trafficPerGB": 4}
},
"limits": {
"minDurationSeconds": 3600,
"maxDurationSeconds": 2592000,
"minTrafficGB": 0.1
}
}
}]
}from x402 import X402Client
# Initialize x402 client with your wallet
client = X402Client(
private_key="0xYourPrivateKey...",
network="base"
)
# Request a proxy - handles 402 flow automatically
response = client.get(
"https://api.proxies.sx/v1/x402/proxy",
params={
"country": "US",
"duration": 3600, # 1 hour
"traffic": 1, # 1 GB
"tier": "shared"
}
)
# Use the proxy
proxy = response.json()
print(f"HTTP Proxy: {proxy['proxy']['http']}")
print(f"SOCKS5 Proxy: {proxy['proxy']['socks5']}")
print(f"Expires: {proxy['proxy']['expiresAt']}")
# Rotate IP when needed
import requests
requests.get(proxy['rotationUrl'])import { createX402Client } from '@x402/evm';
import { privateKeyToAccount } from 'viem/accounts';
// Create x402 client
const account = privateKeyToAccount('0xYourPrivateKey...');
const x402Client = createX402Client({
account,
network: 'base',
});
// Get proxy with automatic payment
const response = await x402Client.fetch(
'https://api.proxies.sx/v1/x402/proxy?country=US&duration=3600&traffic=1'
);
const data = await response.json();
console.log('Proxy:', data.proxy.http);
console.log('Rotation URL:', data.rotationUrl);
// Use proxy with fetch
const proxyResponse = await fetch('https://api.ipify.org', {
agent: new HttpsProxyAgent(data.proxy.http)
});import { createDaydream } from '@daydreams/core';
import { x402Extension } from '@daydreams/x402';
const agent = createDaydream({
extensions: [
x402Extension({
privateKey: process.env.AGENT_WALLET_KEY,
network: 'base',
})
]
});
// Agent can now make x402 payments automatically
const result = await agent.run(`
Get a US mobile proxy for 1 hour with 1GB traffic,
then check my current IP address through it.
`);Base URL: https://api.proxies.sx/v1/x402
/v1/x402/pricingGet current pricing information. Ports are free - you pay only for traffic.
{
"shared": {
"tier": "shared",
"portPriceMonthly": 0,
"trafficPricePerGB": 4,
"portPricePerHour": 0,
"portPricePerDay": 0
},
"networks": [
{
"network": "base",
"chainId": "eip155:8453",
"enabled": true,
"usdcAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"recipientAddress": "0xF8cD900794245fc36CBE65be9afc23CDF5103042"
},
{
"network": "solana",
"chainId": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"enabled": true,
"usdcAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"recipientAddress": "6eUdVwsPArTxwVqEARYGCh4S2qwW2zCs7jSEDRpxydnv"
}
],
"minDurationSeconds": 3600,
"maxDurationSeconds": 2592000,
"minTrafficGB": 0.1
}/v1/x402/calculateCalculate cost for specific duration and traffic.
| Parameter | Type | Required | Description |
|---|---|---|---|
| tier | string | No | shared or private |
| duration | number | Yes | Duration in seconds |
| traffic | number | Yes | Traffic allocation in GB |
/v1/x402/healthCheck if x402 integration is enabled and healthy.
/v1/x402/proxy402 GatedGet proxy credentials. Returns 402 if payment not provided.
| Parameter | Type | Required | Description |
|---|---|---|---|
| country | string | Yes | Country code (e.g., US, DE) |
| duration | number | Yes | Duration in seconds (min: 3600) |
| traffic | number | Yes | Traffic in GB (min: 0.1) |
| tier | string | No | shared or private |
| network | string | No | base or solana |
| city | string | No | City code or ID |
| carrier | string | No | Carrier code or ID |
{
"proxy": {
"http": "http://psx_abc123:xK9mP2qR@138.201.158.43:8045",
"socks5": "socks5://psx_abc123:xK9mP2qR@138.201.158.43:5045",
"server": "138.201.158.43",
"httpPort": 8045,
"socksPort": 5045,
"username": "psx_abc123",
"password": "xK9mP2qR",
"expiresAt": "2024-12-31T23:59:59.000Z"
},
"rotationUrl": "https://api.proxies.sx/v1/rotate/tok_abc123xyz",
"sessionId": "675abc123def456789012345",
"portId": "675def456abc789012345678",
"traffic": {
"allocatedGB": 1,
"usedGB": 0,
"remainingGB": 1
},
"payment": {
"txHash": "0x1234567890abcdef...",
"network": "base",
"amountUSDC": 4.00,
"walletAddress": "0xYourWallet..."
},
"location": {
"country": "United States",
"countryCode": "US",
"city": null,
"carrier": null
}
}/v1/x402/session/:sessionIdGet session details by session ID.
/v1/x402/session/tx/:txHashGet session details by transaction hash.
Mobile proxy port - no monthly fee, no per-hour or per-day port charges
Volume ladder ($4.00 / $3.60 / $3.20 / $2.80 / $2.40 per GB) on account-based plans
There is no port rent and no per-second pro-rating. Pick any duration from 1 hour to 30 days - you pay only for the traffic you allocate, at $4.00/GB.
Example: 1 hour with 1 GB costs $4.00. 30 days with 1 GB also costs $4.00. Verify with /v1/x402/calculate.
0xF8cD900794245fc36CBE65be9afc23CDF5103042USDC Contract: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
6eUdVwsPArTxwVqEARYGCh4S2qwW2zCs7jSEDRpxydnvUSDC on Solana: Native SPL Token
Each proxy comes with a rotation URL that can be used to get a new IP without re-purchasing:
# Rotate to new IP (no authentication required)
curl https://api.proxies.sx/v1/rotate/tok_abc123xyz
# Response:
{
"success": true,
"message": "Port rotated successfully",
"newDevice": {
"country": "United States",
"carrier": "T-Mobile"
}
}| Status | Error | Description |
|---|---|---|
| 402 | Payment Required | No payment or insufficient |
| 400 | Invalid duration | Outside 1h-30d range |
| 400 | Invalid traffic | Below 0.1 GB minimum |
| 404 | No devices | Location unavailable |
| 429 | Rate limited | Too many requests |
payment_expiredSignature expiredinsufficient_amountPayment too lowinvalid_recipientWrong recipientnetwork_mismatchWrong networkalready_settledTX already usedEach txHash can only be used once
Requirements expire after 5 minutes
Payment wallet recorded per session
10 requests/min on payment endpoints
Server verifies payment matches request
Countries are fetched dynamically from actual device inventory - the list changes as devices are added/removed or reach capacity.
GET /v1/x402/countries # All available countries (dedicated port)Live device counts shift with supply - this is a snapshot, always read the endpoint for the current list.
[
{"code": "NL", "name": "Netherlands", "availableDevices": 29, "tier": "both"},
{"code": "PL", "name": "Poland", "availableDevices": 26, "tier": "both"},
{"code": "US", "name": "United States", "availableDevices": 27, "tier": "both"},
{"code": "GE", "name": "Georgia", "availableDevices": 9, "tier": "both"},
{"code": "FR", "name": "France", "availableDevices": 17, "tier": "both"},
{"code": "GB", "name": "United Kingdom", "availableDevices": 15, "tier": "both"}
]Device counts shift with real-time carrier supply. Always call this endpoint before targeting a country rather than hardcoding a list - stock can go to zero and come back within minutes.
Enable your AI agents to purchase and use mobile proxies instantly with USDC payments.
Support: support@proxies.sx | Swagger: proxies.sx/docs
How AI agents purchase resources using blockchain payments and ERC-8004.
Scale LLM & agent validation with real 4G/5G networks.
Compare x402 instant access with traditional account-based plans.
How agents put x402 to work: keyless wallet mode, the MCP server, and dedicated 4G/5G mobile proxies your agent buys itself with USDC - no signup, no API key.
Build services, claim bounties, and earn USDC with x402 micropayments.
Build an agent that earns USDC by sharing bandwidth, then spends it on proxies via x402. Self-funding loop with Anthropic Claude.
Deep dive into the protocol - how AI agents pay autonomously without API keys.
The supply side of the x402 economy - share bandwidth, earn USDC for AI agents to spend.