Windows Node 1.6.6: a refused registration no longer ends the program (start.bat restarted it every 10 seconds and repeated the refused call). A rate limit (HTTP 429) now waits at least as long as the server asks. When the server refuses the registration itself (HTTP 400/401/403: wrong or inactive key, unsigned agreement, deactivated key) the window shows one [ACTION NEEDED] line saying what to fix and checks again about every 30 minutes. As in 1.6.5, the latest authenticated relay assignment stays in the fallback cycle and is saved atomically with the existing identity, so retries and SDK restarts can return to an assigned spare. Manual relay pins, healthy sibling protection, target safety and retry delays remain. New configurations default to one socket; explicit settings are preserved. Keep your existing key, name, configuration and state when updating. Go/Linux is 1.6.8. The separate native executable is unchanged; Node tests do not qualify Windows-specific socket or service behavior.
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.
Before setup, open Spawn API key in your farmer account. Select SDK / device, name the key and choose Create API key; the preset grants account:read. Save the one-time secret privately before leaving. Review masked keys and revoke only unused keys at API keys. Use consented devices and complete the current Partner Agreement; the relay admits devices only after we approve it (onboarding steps). A key is not device approval.
| Download | What it is |
|---|---|
| proxies-peer-windows-native.zip (2.4 MB) | The exe + a one-line-edit start.bat + README. Legacy native package; not this Node.js update. |
| 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). This older native archive was built from a Go client; it has not been rebuilt for the current Linux Go 1.6.8 release. A Linux build or Node test does not validate Windows socket behavior. 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.
Use this Node.js package for the one-socket default and retained relay-selection fixes and existing retry/target-safety protection. It requires Node.js; those changes are not included in the older native download above.
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 The Node.js package includes batch scripts for setup and launch; it opens a terminal window while running.
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-node-1.6.6.zip.
Stop the existing window or service once and back up its folder. Replace the package files in that same folder, preserving config.json, .sx-peer-state.json, the API key, agent name and any PEER_STATE_FILE override. Run setup.bat, then the same start.bat. The archive contains no live configuration or identity. Run only one copy. To roll back, restore the backed-up package files while retaining configuration and state.
Verify the archive against SHA256SUMS. During congestion, changing only wsConnections to 1 in existing config reduces connection attempts; an existing WS_CONNECTIONS environment override wins. It does not guarantee admission. Do not repeatedly restart or register a new identity because of HTTP 429.
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 (create the SDK / device preset at farmer API keys). Set a unique agentName (see Stable Identity).start.bat. You'll see:[REGISTERED] device=agent_... relay=wss://relay.proxies.sx sockets=1
[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 - farmer SDK / device key
"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": 1, // parallel relay sockets (1-5; default 1)
"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 | Default 1, range 1–5. Explicit settings are retained; extra sockets do not guarantee throughput. |
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). For each new installation, replace the template name once with a fixed name unique to that device. Reusing the template name with the same API key can make different machines share one identity. Changing the name or removing saved state can create a replacement identity. Keep the existing name and state when updating, and never clone a live state file to another device.
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 package speaks the same protocol 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).throughputContract.minKBps in the registration response (KiB/s, 1024 bytes per second per unit). The floor is configurable; verification alone does not establish usable speed. Latency, quality, country, consent and account checks also apply.| Windows package | proxies-peer-windows-node-1.6.6.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 |