WINDOWS PEER SDK - FLEET DEPLOYMENT GUIDE

Double-click app, no terminal required (v1.3.1). Full relay protocol. Auto-restarts, installs as a service, and scales to fleets of Windows machines the stable, non-flooding way.

For non-technical users: sections 1-3 are all you need - download, run setup.bat, paste your key, run start.bat. The rest is for running many machines.

NATIVE .EXE - NO NODE.JS, NO DEPENDENCIES (recommended)

A single 5 MB native executable. No Node.js, no Go, no runtime to install - runs on any 64-bit Windows machine on its own. This is the easiest way to deploy across many Windows endpoints (machines you don’t control, locked-down PCs, end-user devices).
DownloadWhat it is
proxies-peer-windows-native.zip (2.4 MB)The exe + a one-line-edit start.bat + README. Start here.
proxies-peer.exe (5.4 MB)Just the bare 64-bit (amd64) binary, to script yourself.
proxies-peer-arm64.exeWindows on ARM.

30-second setup

  1. Unzip the native zip anywhere (e.g. C:\proxies-peer).
  2. Right-click start.bat → Edit, paste your psx_ key into the API_KEY line, save.
  3. Double-click start.bat. Done - no install of anything.

The device name is auto-set to the PC name (%COMPUTERNAME%) - stable + unique per machine, so restarts reuse the same device (no duplicate-device churn). start.bat auto-restarts on exit. Or run the exe directly with your own flags:

proxies-peer.exe -key=psx_YOUR_KEY -name=my-rig-01

Community Edition - open-source, MIT, provided AS IS (not a warranted Proxies.sx product). Built from the same source as the Go SDK (GOOS=windows go build) - identical protocol, just shipped as a Windows binary. Deliberately not UPX-packed: packing would halve the size but trips Windows Defender heuristics on networked binaries, which would block installs. 5 MB + clean beats 2 MB + quarantined.

WHAT THIS IS (Node.js package - alternative)

Prefer a native binary? Use the no-dependency .exe above. The Node.js package below is the original option - it needs Node.js installed but is handy if you already run Node.

A ready-to-run Windows package that shares your internet connection's bandwidth and earns USDC. It speaks the complete Proxies.sx relay protocol - identical wire format to the Node, Go, and Android SDKs (peer.js is the production-tested reference client wrapped in two batch files so no command line is needed).

Requires Node.js LTS (free, one-time install). Download: proxies-peer-windows.zip.

QUICK START (single machine)

  1. Install Node.js - grab the "LTS" installer from nodejs.org, accept the defaults. (One time, ~1 min.)
  2. Download & unzip proxies-peer-windows.zip into a folder, e.g. C:\proxies-peer.
  3. Double-click setup.bat - it checks Node, installs the one dependency, and creates config.json from the template.
  4. Open config.json in Notepad and paste your psx_ API key (get it at client.proxies.sx/account → API Keys). Set a unique agentName (see Stable Identity).
  5. Double-click start.bat. You'll see:
[REGISTERED] device=agent_... relay=wss://relay.proxies.sx sockets=4
[CONNECTED]  device=agent_...
[ACK] relay confirmed connection
CONNECTED + ACK = it's working. Leave the window open. Earnings start a little later (the node goes CONNECTED → VERIFIED → LISTED → EARNING automatically). Track it at farmer.proxies.sx.

CONFIGURATION (config.json)

setup.bat writes config.json from config.example.json. Edit it in any text editor:

{
  "apiKey": "psx_YOUR_API_KEY",     // required - client.proxies.sx/account
  "agentName": "my-windows-rig",    // STABLE + UNIQUE per machine (see below)
  "walletAddress": "",              // optional USDC payout wallet
  "country": "US",                  // ISO-2 hint (server verifies the real IP)
  "carrier": "unknown",             // optional
  "wsConnections": 4,               // parallel relay sockets (1-8)
  "connectionMethod": "windows",    // leave as-is (shows correctly on dashboard)
  "verbose": false                  // true = log every tunnel open/close
}
FieldRequiredMeaning
apiKeyyesYour psx_ key. Every machine can share the SAME key - devices auto-link to your account.
agentNameyesMust be stable + unique per machine. Same name + key = same device across restarts.
countrynoISO-2 hint. The real exit IP is what's classified server-side.
wsConnectionsno4 is ideal. Higher only helps on very fast lines.
walletAddressnoUSDC payout address; can also be set later in the dashboard.
verbosenoSet true to watch each tunnel for debugging.

STABLE IDENTITY - THE #1 FLEET RULE

The deviceId is derived from SHA-256(apiKey + ":" + agentName). If agentName is left as the default or randomized, every restart creates a brand-new device. A fleet that restarts will balloon into thousands of ghost devices, none of which earn, and your account will hit the device cap. Give each machine a fixed, unique agentName and you're permanently fine.

One machine = one entry in config.json with one stable agentName (office-pc-01, office-pc-02, …). The package also saves a state file next to peer.js so identity survives even before the name hash is needed - don't delete it.

One machine = one real connection/IP. Customers route by exit IP. Running 10 copies on one PC behind one home line is still one IP and one uplink - one peer's worth of value, not 10. Run one instance per genuinely distinct connection. Fewer fast nodes beat many slow ones every time.

RUN AS A WINDOWS SERVICE (survives reboot / logout)

start.bat already auto-restarts on crash, but the window must stay open. To run headless and survive reboots, install it as a service with the free NSSM (Non-Sucking Service Manager):

:: From an elevated (Administrator) Command Prompt, in the unzipped folder:
nssm install ProxiesPeer "C:\Windows\System32\cmd.exe" "/c C:\proxies-peer\start.bat"
nssm set ProxiesPeer AppDirectory C:\proxies-peer
nssm set ProxiesPeer Start SERVICE_AUTO_START
nssm start ProxiesPeer

:: Manage it:
nssm status ProxiesPeer
nssm restart ProxiesPeer
nssm stop ProxiesPeer

Alternative: Task Scheduler (no extra download)

:: Run at startup, restart if it ever exits, no visible window:
schtasks /create /tn "ProxiesPeer" /tr "C:\proxies-peer\start.bat" ^
  /sc onstart /ru SYSTEM /rl HIGHEST /f

Both keep the peer online across reboots with zero device churn, because agentName + the state file are fixed.

FLEET DEPLOYMENT - MANY MACHINES

Device limit

Accounts scale to 200,000 devices - real fleets are welcome. The only limit that bites is an anti-flood guard on unproven devices: at most 20,000 that have never served traffic (and aren’t yet verified). The moment a device serves a byte or passes verification it stops counting against that guard, so a fleet that’s actually earning grows freely to the full 200k. A flood of random-named ghosts (which never serve) simply parks at 20,000 and goes no further. The rule is the same either way: give every machine a stable, unique name so it reconnects as one device instead of spawning a ghost on each restart. Need more than 200k genuine nodes? Email agents@proxies.sx.

Deploy to N machines (same key, unique name each)

  1. Unzip the package once, fill in config.json with your shared apiKey but leave agentName as a placeholder.
  2. Push the folder to each machine (GPO, PDQ Deploy, Intune, a network share, or a USB stick).
  3. On each machine set a unique name - a one-liner that stamps the hostname in is the easiest:
:: per-machine: set agentName = the PC's hostname (unique by definition)
powershell -Command "(Get-Content config.json) -replace 'my-windows-rig', $env:COMPUTERNAME | Set-Content config.json"
:: then install the service (see above) and start it

Multiple distinct uplinks on one box

Only if a single PC truly has several separate connections (e.g. multiple USB modems), copy the folder once per uplink into its own directory (C:\peer-modem-1, C:\peer-modem-2), each with its own unique agentName and its own service. One uplink = one instance.

STANDALONE .EXE (no Node.js on target machines)

The package ships build-exe.bat. Run it once on a build machine (with Node installed) to produce a single proxies-peer.exe you can copy to machines that don't have Node:

:: produces dist\proxies-peer.exe (bundles Node + peer.js)
build-exe.bat

:: on target machines, just drop the exe next to a config.json and run:
proxies-peer.exe

Identity rules are unchanged - the exe still reads config.json and persists the state file beside itself.

HOW IT WORKS (protocol, in order)

1. Register   POST /v1/peer/agents/register {name, type:"custom", apiKey, sdkVersion}
              -> { deviceId, token|jwt, refreshToken, relay, earningsPerGB }
              deviceId = SHA-256(apiKey + ":" + agentName)  (stable across restarts)
2. Connect    wss to register.relay, JWT in Sec-WebSocket-Protocol as token.<jwt>
              (NEVER in the URL). Opens wsConnections parallel sockets.
3. device_info  announce {country, protocol:"binary-v1", supportsRelayRedirect:true}
4. Heartbeat  every 30s
5. tunnel_connect  open raw TCP to target host:port, stream bytes both ways.
              HTTPS stays end-to-end - the peer never sees plaintext.
6. relay_redirect  server can move you to a nearer relay; the pool reconnects there.

This is the same client as reference-sdk.js - if you'd rather script it yourself, the Node and Go pages document the protocol identically.

EARNINGS REALITY (read before scaling)