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.
| Download | What 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.exe | Windows on ARM. |
C:\proxies-peer).start.bat → Edit, paste your psx_ key into the API_KEY line, save.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.
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).
relay_redirect)start.bat auto-restarts the peer if it ever stops - close the window to stop sharingRequires Node.js LTS (free, one-time install). Download: proxies-peer-windows.zip.
C:\proxies-peer.setup.bat - it checks Node, installs the one dependency, and creates config.json from the template.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).start.bat. You'll see:[REGISTERED] device=agent_... relay=wss://relay.proxies.sx sockets=4
[CONNECTED] device=agent_...
[ACK] relay confirmed connection
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
}
| Field | Required | Meaning |
|---|---|---|
apiKey | yes | Your psx_ key. Every machine can share the SAME key - devices auto-link to your account. |
agentName | yes | Must be stable + unique per machine. Same name + key = same device across restarts. |
country | no | ISO-2 hint. The real exit IP is what's classified server-side. |
wsConnections | no | 4 is ideal. Higher only helps on very fast lines. |
walletAddress | no | USDC payout address; can also be set later in the dashboard. |
verbose | no | Set true to watch each tunnel for debugging. |
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.
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
:: 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.
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.
config.json with your shared apiKey but leave agentName as a placeholder.:: 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
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.
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.
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.
earningsPerGB field in the register response (and on the dashboard).| Windows package | proxies-peer-windows.zip |
| Go SDK (fleets) | /peer/go/ |
| Node.js SDK | reference-sdk.js |
| Android SDK | android-peer-sdk |
| Peer Network overview | agents.proxies.sx/peer/ |
| AI-agent skill file | /peer/skill.md |
| Dashboard | farmer.proxies.sx |
| Fleet help | agents@proxies.sx · @proxies_sx |