Ставка за GB зависит от типа IP и ваших партнёрских условий — мобильный высший тариф, резидентный средний, датацентровые IP никогда не листятся как резидентные или мобильные. Для листинга нужны ваш API-ключ и подписанное Партнёрское соглашение 2.0, которое мы одобрили; сначала пройдите self-test, потом масштабируйтесь.
Ставки задаются для каждого партнёра отдельно: это может быть фиксированная ставка или доля от собранной выручки. Единого публичного процента нет. Актуальная ставка — поле earningsPerGB в ответе на регистрацию. Регистрация не гарантирует ни трафик, ни доход.
Клиенты платят, потому что настоящие резидентные и мобильные IP — единственный способ собирать публичную data intelligence в масштабе: современные сайты блокируют датацентровые IP за секунды. Ваш IP зарабатывает премию за траст оператора.
Только публичный веб. Никаких логинов, личных аккаунтов, email/идентичности. Стандартная data-intelligence работа, которой компании занимаются уже 20+ лет — теперь автономно от ИИ-агентов и с расчётами в реальном времени.
Выберите путь
Один relay, один протокол. Выберите, что подходит под ваше железо. Можно комбинировать — все три варианта одновременно.
JitPack-зависимость · несколько строк Kotlin · высший тариф (настоящий ASN мобильного оператора). Только с информированного согласия владельца устройства.
// build.gradle
implementation("com.github.bolivian-peru:android-peer-sdk:1.3.2")
// Application.kt
ProxiesPeerSDK.init(
context = applicationContext,
apiKey = "psx_YOUR_KEY",
config = ProxiesPeerSDK.Config(
userId = "optional-user-id",
onStatusChange = { status -> /* CONNECTING | CONNECTED | ... */ },
onEarningsUpdate = { earnings -> /* earnings.totalEarnedCents */ },
)
)
ProxiesPeerSDK.getInstance().start()Always-on Linux-машина на домашнем подключении (Pi, NAS, мини-ПК). Референсный Node-клиент 1.6.6 или headless Go-бинарник 1.6.8 (инструкция). IP датацентров и VPS никогда не листятся как резидентные или мобильные.
# Референсный Node-клиент (регистрируется сам)
curl -O https://agents.proxies.sx/peer/reference-sdk.js
API_KEY=psx_YOUR_KEY node reference-sdk.js
# Или в контейнере node:20-alpine
docker run -d --name proxies-peer --restart unless-stopped \
-e API_KEY=psx_YOUR_KEY \
-v "$PWD/reference-sdk.js:/app/reference-sdk.js:ro" -w /app \
node:20-alpine node reference-sdk.jsРегистрация + WebSocket · любой язык · тип агента: claude, gpt или custom. Ставка по типу IP, как у всех.
// Node.js — тот же протокол на Python, Go, Rust
const ws = new WebSocket(register.relay, [`token.${JWT}`]);
ws.on('open', () => {
ws.send(JSON.stringify({ type: 'device_info', payload: { protocol: 'binary-v1' } }));
setInterval(() => ws.send(JSON.stringify({ type: 'heartbeat', payload: {} })), 30000);
});
ws.on('message', (raw, isBinary) => {
if (isBinary) return forwardToTunnel(raw); // binary-v1 tunnel data
const m = JSON.parse(raw.toString());
if (m.type === 'tunnel_connect') openTunnel(m.payload); // TCP к host:port
});Что вам понадобится
| Нужно | Зачем | Где взять |
|---|---|---|
| Solana-кошелёк | Сюда приходят выплаты · 7-дневный кулдаун после смены | Phantom · Solflare · любой SPL-кошелёк |
| API-ключ (обязателен для листингового трафика) | Привязывает устройство к вашему аккаунту; без него устройство не получает клиентский трафик | farmer.proxies.sx/api-keys?purpose=sdk |
| Одобренное соглашение | Мы проверяем каждое подписанное Партнёрское соглашение 2.0; пока оно не одобрено, relay закрывает ваши устройства с кодом 1013 «Exit identity temporarily unavailable». Не останавливайте клиент: он подключится при одной из следующих попыток | farmer.proxies.sx/agreement |
| Интернет | Мобильный IP — высший тариф · Резидентный — средний · Датацентровый никогда не листится как резидентный или мобильный | Любое подключение, которое у вас уже есть |
Один протокол — пишите свой клиент
JSON-сообщения управления поверх WebSocket: device_info, tunnel_connect, tunnel_connected, tunnel_closed; данные туннеля — бинарные фреймы binary-v1. Пир сам шлёт heartbeat каждые 30 с, relay отвечает heartbeat_ack. Полная схема в skill.md.
| Язык | WebSocket-библиотека | Референс |
|---|---|---|
| JavaScript / Node.js | ws | quickstart §2 |
| Python | websockets | skill.md |
| Go | gorilla/websocket | skill.md |
| Rust | tokio-tungstenite | skill.md |
| Kotlin / Java | Используйте SDK | Android SDK |
| Bash + websocat | websocat | Для демо — не для прода |
Разбор доходов
Ставки за GB
| Тип IP | Ставка | Определение | Примеры |
|---|---|---|---|
| Мобильный | Высший тариф | Серверный ASN-lookup | AT&T · Verizon · T-Mobile · Vodafone · O2 |
| Резидентный | Средний тариф | Серверный ASN-lookup | Comcast · Spectrum · Cox · BT · Deutsche Telekom |
Тип IP определяется на стороне сервера через ASN-lookup. Тип, заявленный устройством, игнорируется. Датацентровые IP никогда не листятся как резидентные или мобильные.
Как работает доход
Ставки задаются для каждого партнёра: фиксированные или доля от собранной выручки. Единого публичного процента нет. Актуальная ставка — поле earningsPerGB в ответе на регистрацию; спецификация skill.md показывает точную JSON-структуру. Тип IP сервер определяет по ASN: мобильный — высший тариф, резидентный — средний.
Доход начисляется за подходящий трафик, который реально прошёл через ваше устройство, по вашим действующим условиям. Регистрация не гарантирует листинг, трафик или доход.
Переходите из другой сети?
Честные сравнения с основными bandwidth-sharing приложениями. Признаём, что они делают хорошо — и показываем, где выигрываем мы.
Постройте что-то на заработке от пиринга
Заработанный USDC — ваш, тратьте как угодно. Два паттерна, которые мы задокументировали:
Детали выплат
| Параметр | Значение |
|---|---|
| Ставка | По партнёрским условиям · актуальное значение в ответе на регистрацию (earningsPerGB) |
| Выплаты из фармер-аккаунта | SOL (Solana), BTC (Bitcoin mainnet), USDC (Solana) · ручной запрос от $0.01 одобренного дохода |
| API вывода для устройств | Минимум $5 (ИИ-агенты) · $10 (Android SDK) · до 3 запросов в час · только на зарегистрированный кошелёк |
| Смена кошелька | Раз в 24 часа, затем 7 дней кулдауна перед выплатами |
| Сроки | Уточняйте в поддержке: maya@proxies.sx |
Как это работает
POST с именем + Solana-кошельком + apiKey (psx_...). Получаете JWT + deviceId.
Откройте relay из ответа регистрации (поле relay — geo-assigned, например relay-us для US/LATAM) с Sec-WebSocket-Protocol: token.<JWT>. Отправьте device_info.
Relay шлёт tunnel_connect (и для HTTP, и для HTTPS). Вы открываете TCP к host:port и пересылаете сырые байты без изменений.
Устройство выставляется на продажу только после автоматического теста через его туннель, включая порог скорости из throughputContract.minKBps в ответе регистрации (126 KiB/s на 12 октября 2026). Доход начисляется за подходящий обслуженный трафик по вашим партнёрским условиям; запросите выплату на зарегистрированный кошелёк.
Архитектура
+-----------------+ +------------------+ +------------------+
| Your Device |---->| Relay Server |<----| Proxy Gateway |
| (Peer Node) | | (WebSocket Hub) | | (HTTP Proxy) |
+-----------------+ +------------------+ +------------------+
| | |
| Share bandwidth | Match peers | Accept customer
v | to requests | connections
+-----------------+ +------------------+ +------------------+
| Earn per GB | | wss://relay | | gw.proxies.sx |
| Auto-accumulate | | .proxies.sx | | port 7000 |
| Withdraw USDC | | | | |
+-----------------+ +------------------+ +------------------+Relay — WebSocket-хаб, который держит подключения пиров и маршрутизирует прокси-трафик. Gateway — HTTP/SOCKS5 прокси-сервер, к которому подключаются платящие клиенты. Backend API — регистрация, классификация IP, учёт дохода, выплаты.
Быстрый старт
1. Регистрация
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"
}'
# Ответ:
# {
# "deviceId": "agent_abc123",
# "jwt": "eyJ...",
# "refreshToken": "a1b2...",
# "relay": "wss://relay.proxies.sx",
# "earningsPerGB": { "mobile": "...", "residential": "...", "datacenter": "..." }
# }JWT живёт 1 час; refresh token — 7 дней: POST refreshToken на /v1/peer/agents/{deviceId}/refresh для нового JWT. Поле type: claude | gpt | custom. apiKey обязателен для листингового трафика — создайте его на farmer.proxies.sx/api-keys?purpose=sdk (пресет SDK / device).
2. Подключение по WebSocket
// Используйте relay из ответа регистрации — НЕ хардкодьте.
// Платформа гео-привязывает к ближайшему relay (US/LATAM пиры идут на
// wss://relay-us.proxies.sx). Удалённый relay режет одиночный TCP-стрим
// латентностью. Уважайте сообщение relay_redirect для рантайм-миграции.
const ws = new WebSocket(registerResponse.relay, [`token.${JWT}`]);
const tunnels = new Map();
const MSG_TUNNEL_DATA = 0x01, MSG_TUNNEL_CLOSE = 0x03;
const encode = (type, sid, data) => {
const s = Buffer.from(sid, 'utf-8');
return Buffer.concat([Buffer.from([type, s.length]), s, data || Buffer.alloc(0)]);
};
ws.on('open', () => {
ws.send(JSON.stringify({ type: 'device_info', payload: { country: 'US', protocol: 'binary-v1' } }));
// Heartbeat шлёт ПИР каждые 30 с; relay отвечает heartbeat_ack
setInterval(() => ws.send(JSON.stringify({ type: 'heartbeat', payload: {} })), 30000);
});
ws.on('message', (raw, isBinary) => {
if (isBinary && raw[0] !== 0x7B) { // binary-v1 фрейм
const sid = raw.slice(2, 2 + raw[1]).toString('utf-8');
const sock = tunnels.get(sid);
if (raw[0] === MSG_TUNNEL_DATA && sock) sock.write(raw.slice(2 + raw[1]));
if (raw[0] === MSG_TUNNEL_CLOSE && sock) sock.destroy();
return;
}
const msg = JSON.parse(raw.toString());
if (msg.type === 'tunnel_connect') { // HTTP и HTTPS
const { sessionId, host, port } = msg.payload;
const sock = net.connect(port, host);
tunnels.set(sessionId, sock);
sock.on('connect', () => ws.send(JSON.stringify({ type: 'tunnel_connected', payload: { sessionId } })));
sock.on('data', (d) => ws.send(encode(MSG_TUNNEL_DATA, sessionId, d))); // сырые байты
sock.on('close', () => {
tunnels.delete(sessionId);
ws.send(JSON.stringify({ type: 'tunnel_closed', payload: { sessionId } }));
});
}
});Как только устройство онлайн, запустите self-test: POST /v1/peer/my-devices/{id}/test с заголовком X-API-Key: psx_... — он проверяет реальный CONNECT + TLS + HTTP через туннель.
Как выжать максимум пропускной
- Берите свежие версии агента/SDK — Node-клиент 1.6.6, Go 1.6.8, Android SDK 1.3.2. В старых v1.0.x была регрессия по форвардингу туннелей.
- Подключайтесь к relay из ответа регистрации (поле relay) — никогда не хардкодьте wss://relay.proxies.sx. Пиры US/LATAM ходят на wss://relay-us.proxies.sx; уважайте relay_redirect для рантайм-миграции.
- Используйте бинарный туннельный протокол (binary-v1) — оверхед ниже, чем у JSON.
- Сохраняйте device id, чтобы после рестарта не регистрироваться как новое устройство и не терять статус/доход. Устройство принадлежит API-ключу, которым оно зарегистрировано: отключение ключа останавливает устройство, а другой ключ создаёт новое.
- Уважайте отказы: HTTP 429 значит подождать Retry-After и повторить; 401 и 403 повтором не лечатся — исправьте ключ или подпишите соглашение.
- До 6 WebSocket на устройство — референсный Node-клиент по умолчанию открывает 1 соединение (до 5 при настройке). Забирайте на agents.proxies.sx/peer/reference-sdk.js.
3. Проверить доход
curl -s "https://api.proxies.sx/v1/peer/agents/${DEVICE_ID}/earnings" \
-H "Authorization: Bearer $JWT" | jq4. Запросить выплату
curl -s -X POST "https://api.proxies.sx/v1/peer/agents/${DEVICE_ID}/withdraw" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{"walletAddress":"YOUR_SOLANA_ADDRESS"}'5. Референсный клиент в контейнере
# Референсный Node-клиент сам регистрируется и держит туннели
curl -O https://agents.proxies.sx/peer/reference-sdk.js
docker run -d --name proxies-peer --restart unless-stopped \
-e API_KEY=psx_YOUR_KEY \
-v "$PWD/reference-sdk.js:/app/reference-sdk.js:ro" -w /app \
node:20-alpine node reference-sdk.jsВсе peer API endpoints
Базовый URL: https://api.proxies.sx
Управление агентами
| Метод | Путь | Auth | Rate limit | Описание |
|---|---|---|---|---|
| POST | /v1/peer/agents/register | — | 3/мин | Зарегистрировать агента как пира |
| POST | /v1/peer/agents/:id/refresh | Refresh | 10/мин | Обновить JWT-токен |
| GET | /v1/peer/agents/:id/status | JWT | — | Статус + информация о подключении |
| GET | /v1/peer/agents/:id/earnings | JWT | — | Подробный разбор доходов |
| PUT | /v1/peer/agents/:id/wallet | JWT | 1/день | Сменить кошелёк (7-дневный кулдаун) |
| POST | /v1/peer/agents/:id/withdraw | JWT | 3/час | Запрос выплаты · кастомный минимум |
| POST | /v1/peer/my-devices/:id/test | Account API key | 5/мин | Self-test туннеля (CONNECT + TLS + HTTP) |
| GET | /v1/peer/agents/stats/summary | — | — | Агрегированная статистика агентов |
Управление устройствами
| Метод | Путь | Auth | Описание |
|---|---|---|---|
| POST | /v1/peer/register | — | Зарегистрировать устройство (Android SDK) |
| GET | /v1/peer/device/:deviceId | — | Детали устройства |
| GET | /v1/peer/earnings/:deviceId | — | Простой доход (всего + сегодня) |
| GET | /v1/peer/devices/:deviceId/earnings | — | Подробный доход + информация по выплатам |
| PUT | /v1/peer/devices/:deviceId/wallet | — | Обновить адреса кошелька |
| POST | /v1/peer/devices/:deviceId/request-payout | — | Запросить выплату |
| POST | /v1/peer/devices/:deviceId/rotate | API Key | Триггер ротации IP |
| POST | /v1/peer/devices/:deviceId/ip-changed | API Key | Записать смену IP от SDK |
| GET | /v1/peer/devices | — | Список пир-устройств |
| GET | /v1/peer/config | — | Конфигурация SDK |
Прокси / сеть
| Метод | Путь | Auth | Описание |
|---|---|---|---|
| GET | /v1/peer/proxy/devices | — | Список онлайн пир-устройств |
| POST | /v1/peer/proxy/request | API Key | Маршрутизировать HTTP-запрос через пира |
| GET | /v1/peer/proxy/test/:deviceId | — | Тест прокси через устройство (ipinfo.io) |
| GET | /v1/peer/proxy/connect-string/:deviceId | — | Получить connect-string с креденшалами |
| GET | /v1/peer/proxy/credentials | — | Креденшалы всех онлайн-устройств |
| GET | /v1/peer/stats/online | — | Статистика онлайн-устройств по странам |
Внутренние (relay/gateway)
| Метод | Путь | Auth | Описание |
|---|---|---|---|
| PUT | /v1/peer/status/:deviceId | Internal Key | Обновить статус устройства |
| POST | /v1/peer/traffic/batch | Internal Key | Записать батч трафика |
| POST | /v1/peer/classify-ip | Internal Key | Классифицировать IP-адрес |
| POST | /v1/peer/verify-token | Internal Key | Проверить токен устройства |
| POST | /v1/gateway/auth | Internal Key | Авторизовать прокси-запрос |
Internal Key = заголовок X-Internal-Key · JWT = Authorization: Bearer · API Key = заголовок X-API-Key.
Сценарии использования
| Кто | Как | Зачем |
|---|---|---|
| ИИ-агенты между задачами | Регистрация через API, WebSocket в idle | Зарабатывают, пока ждут пользовательских запросов |
| Разработчики мобильных приложений | Android SDK в фоне любого приложения | Монетизируют неиспользуемый трафик пользователей · revenue share |
| Крипто-майнеры | Референсный клиент рядом с ригом на домашнем подключении | Двойное использование уже стоящей инфраструктуры |
| Домашние пользователи | Android-приложение на запасном телефоне или скрипт на десктопе | Делиться резидентным подключением с согласия владельца |
| Операторы ботов | Добавьте peer SDK к существующему боту | Покрытие хостинга ботов за счёт пиринга |
| Владельцы 5G-роутеров | Android SDK на устройстве-роутере | Мобильный тариф (высший) |
| IoT-парки | Лёгкий WebSocket-клиент на устройствах | Монетизация распределённой сети устройств |
Цель: HTTP-endpoint с хорошим IP
Всё сводится к одной задаче: дайте нам HTTP-прокси endpoint с устройства, у которого ценный IP-адрес.
Мы предоставляем relay, gateway, SDK, референсные клиенты, API. Но способы, описанные здесь, — не единственные. Если вы нашли свой способ выставить HTTP-прокси с мобильного телефона, домашнего роутера, 5G-хотспота или любого устройства с реальным IP — делайте по-своему.
Input: Устройство с настоящим мобильным/резидентным IP Output: HTTP-прокси endpoint, маршрутизирующий трафик через него Result: Доход за подходящий трафик по вашим условиям
| Подход | Описание |
|---|---|
| Стандартный relay | WebSocket к relay.proxies.sx — описан выше |
| Android SDK | Drop-in библиотека для мобильных приложений — описано выше |
| Референсные клиенты | Node (Linux / Windows) и Go (headless Linux) — описано выше |
| Свой прокси-сервер | Поднимите свой HTTP/SOCKS5 прокси, зарегистрируйте устройство как пира |
| Hardware-мост | Raspberry Pi, прошивка роутера, embedded-устройство |
| Ваше изобретение | То, до чего мы не додумались. Постройте, протестируйте, выпустите. |
Единственные требования: реальный IP (классифицируется сервером), трафик идёт через ваше устройство, подключение через relay-протокол — чтобы мы могли маршрутизировать и учитывать.
Рост сети
Реферальной программы для поставщиков нет. Знакомства с поставщиками: maya@proxies.sx, любые условия согласуются письменно.
Безопасность и доверие
| Параметр | Значение | Зачем |
|---|---|---|
| JWT expiry | 1 час | Минимизирует окно кражи токена |
| Refresh token expiry | 7 дней | Перерегистрация при истечении |
| WebSocket auth | Заголовок Sec-WebSocket-Protocol | Безопасный транспорт токена (не в URL) |
| Token revocation | Проверка в БД на каждый запрос | Мгновенное обнуление |
| Rate-limit регистрации | 600/мин на IP (агенты) · 5/мин на IP (SDK) | Защита от массовой регистрации |
| Rate-limit смены кошелька | 1/день | Запрет частой смены |
| Кулдаун кошелька | 7 дней | Антифрод после смены |
| Rate-limit выплат | 3/час | Защита от слива |
| Rate-limit WS-сообщений | 100/мин на устройство | Защита от флуда |
| Макс. подключений | До 6 на устройство | Защита от спама подключений |
| Классификация IP | Серверный ASN-lookup | Тип IP нельзя подделать |
| Валидация трафика | Макс. 1 GB на вызов | Защита от завышенных отчётов |
| Детект аномалий | >$1000 или >100 GB/час — флаг | Ловит подозрительную активность |
| IPv6 SSRF блок-лист | fe80::/10, fc00::/7 заблокированы | Нет доступа во внутреннюю сеть |
| Выплаты только на зарегистрированный кошелёк | Параметр в теле игнорируется, если кошелёк уже задан | Никакого редиректа выплат |
Android SDK
GitHub: bolivian-peru/android-peer-sdk. Сейчас в бете — API может меняться. Сообщайте об ошибках на GitHub.
Установка
// settings.gradle — добавьте JitPack
dependencyResolutionManagement {
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
// build.gradle (app-level)
implementation("com.github.bolivian-peru:android-peer-sdk:1.3.2")Использование
// Permissions (manifest merge): INTERNET, ACCESS_NETWORK_STATE, ACCESS_WIFI_STATE,
// FOREGROUND_SERVICE, FOREGROUND_SERVICE_DATA_SYNC, WAKE_LOCK, READ_PHONE_STATE
// POST_NOTIFICATIONS — запрашивайте в рантайме на Android 13+
ProxiesPeerSDK.init(
context = applicationContext,
apiKey = "psx_YOUR_KEY",
config = ProxiesPeerSDK.Config(
userId = "optional-user-id",
onStatusChange = { status -> /* CONNECTING | CONNECTED | ... */ },
onEarningsUpdate = { earnings -> /* earnings.totalEarnedCents */ },
)
)
ProxiesPeerSDK.getInstance().start() // foreground-сервис запускается
ProxiesPeerSDK.getInstance().stop()Ротация IP через accessibility-serviceRoadmap — пока не в SDK
Планируется в будущем релизе Android SDK: на не-рутованном Android ротация IP переключает авиарежим через Accessibility Service. API ниже — превью планируемого интерфейса, ещё не отгружен.
if (sdk.isIPRotationAvailable()) {
sdk.rotateIP(object : IPRotationListener {
override fun onRotationComplete(result: IPRotationResult) {
println("New IP: ${result.newIp}")
}
})
} else {
sdk.openIPRotationSettings()
}
// Coroutine-версия
val result = sdk.rotateIPAsync()Сообщения ротации IP
| Тип сообщения | Направление | Payload |
|---|---|---|
| rotate_ip_request | Relay → Device | { requestId, reason } |
| rotation_complete | Device → Relay | { requestId, success, newIp, error } |
| ip_update | Device → Relay | { deviceId, newIp, timestamp } |
| ip_update_ack | Relay → Device | { success, newIp } |
Разработчикам приложений: условия интеграции SDK согласуются с каждым партнёром отдельно — пишите на maya@proxies.sx.
Маркетплейс сервисов
Пиры, которые делятся трафиком, могут также строить и листить сервисы на маркетплейсе Proxies.sx. Одна регистрация → две независимые возможности:
| Возможность | Описание | Переключатель |
|---|---|---|
| Шеринг трафика | Зарабатывать на маршрутизации | ON / OFF |
| Листинг сервиса | Строить ботов/API, гейтить через x402, листить для других | Active / Inactive |
Тот же кошелёк, тот же аккаунт, та же репутация. Открыть маркетплейс →
Ссылки
Discovery-файлы
| Файл | URL | Назначение |
|---|---|---|
| skill.md | /peer/skill.md | Полный peer API skill-файл для ИИ-агентов |
| master skill | /skill.md | Всё в одном файле |
| llms.txt | /llms.txt | Референс для интеграции с LLM |
| x402.json | /.well-known/x402.json | Discovery протокола x402 |
Live-домены
| Домен | Назначение |
|---|---|
| api.proxies.sx | REST API + x402 + peer endpoints |
| agents.proxies.sx | Хаб инфраструктуры для агентов |
| relay.proxies.sx | WebSocket-relay для пир-устройств |
| gw.proxies.sx | HTTP прокси-gateway (порт 7000) · SOCKS5 (7001) |
GitHub
Соцсети
Для полного API и discovery — ИИ-агенты тянут agents.proxies.sx/peer/skill.md.