# Proxies.sx Mac Compute — early access Customer portal: https://compute.proxies.sx/ · Supplier portal: https://farmer.proxies.sx/compute A dedicated rental allocates one approved Mac to one customer for 30 days. No per-token billing; request limits apply. Suppliers accrue the admin-approved share of successfully committed paid rentals; see their authenticated pricing and earnings views. Complimentary test rentals earn nothing. ## Install agent 0.3.1 Requires native Apple Silicon, macOS 14+, at least 24GB RAM, Node 18+ and Python 3.10+. Keep at least 26GB free for the smallest model (larger models need more). Keep the Mac plugged in, awake and online during rentals. Complete the Partner Agreement in the farmer portal and create a **compute agent key** on its Compute page. This key has `account:read` and `compute:supply`; it cannot purchase rentals. ```sh node --version && python3 --version curl -fSLo compute-agent.js https://agents.proxies.sx/compute/compute-agent.js node compute-agent.js --install ``` The installer prompts for the key without echo, creates a private Python environment with mlx-lm 0.31.3, MLX 0.31.2 and Transformers 5.4.0, and copies the agent to `~/.proxies-compute/compute-agent.js`. No global pip install is needed. launchd starts the agent at login; it does not prevent lid-close sleep. State and credentials are in `~/.proxies-compute/` with private permissions. Logs: `~/Library/Logs/proxies-compute.log`. ```sh node ~/.proxies-compute/compute-agent.js --status node ~/.proxies-compute/compute-agent.js --uninstall ``` Uninstall stops the agent and removes its saved API key. Identity, runtime and downloaded models remain. Revoke the key in the farmer portal when retiring the device. Do not delete a shared Hugging Face cache without checking other applications. ## Admission and operation - Registration stages an unlisted node. A current signed and countersigned Partner Agreement, a passing benchmark and admin approval are required before listing or assignment. - The agent downloads the catalog's immutable Hugging Face revision. It exposes MLX on loopback only, checks a real startup generation and reports ready only when serving. It refuses to kill an unrelated process occupying its port. - A benchmark measures output and throughput; it is not hardware attestation. Approval is a separate owner review. Successful benchmark output cannot clear an admin block. - A heartbeat every 60 seconds reports model state, version and disk. Three minutes without a heartbeat makes the node offline. Battery and thermal pauses remove it from availability. - The agent claims one job at a time. Model switching waits for the active job. Stream posts carry monotonically increasing `sequence` values; network retries reuse the same sequence. Terminal acknowledgements stop generation. - Generation ends before the API's three-minute deadline; an idle generation fails after 60 seconds. Runtime restart attempts have a cooldown and resume after it. - Each job is tied to the rental's allocation version. Reassignment invalidates old claims and results. Free nodes may run admin tests; rented nodes accept only their renter's jobs. ## Customer API Public reads: `/v1/peer/compute/catalog`, `/tiers`, `/marketplace`, `/stats` at `https://api.proxies.sx`. Inference: `POST /v1/peer/compute/rentals/:rentalId/chat/completions` with `X-API-Key`, scope `compute:infer`. Read rentals with `compute:read`; change models/cancel with `compute:manage`. Keys minted in the customer Compute API page have read and inference scopes only. Checkout and renewal require `compute:purchase` and an `Idempotency-Key` header. Reuse the same key and identical request after a timeout or `operation_pending`; do not generate another key for a retry. Failed allocations are reversed to balance; completed rentals are non-refundable. Renewal is manual. Current supported models are Qwen3.8 27B in 4-bit, 8-bit and BF16 (16-bit). No arbitrary repositories, private fine-tunes or clustered Macs in this release. Unsupported completion options return 400 rather than silently changing behavior. ## Trust and availability Suppliers own and administer their Macs; single tenancy is not confidential computing. Customers receive inference API access, not SSH. The agent does not intentionally log prompts. The relay normally scrubs completed prompts/results after one hour and expires job records after 24 hours, subject to cleanup timing. Recorded outages, runtime failures, pauses and missing machines pause remaining rental time, even across the original expiry. Monitoring runs each minute with a three-minute heartbeat grace period. Customer-requested model downloads use rental time. No availability SLA is promised during early access. Source: https://agents.proxies.sx/compute/compute-agent.js ## Pricing, proposals and earnings Admin controls global tier prices, platform percentage and optional per-node overrides. Farmers cannot change effective terms. The current defaults are $249 / $449 / $799 per 30 days and 55% platform / 45% farmer (snapshot 2026-09-11); query the API and node offer rather than hardcoding them. No Ultra tier. - Public `GET /v1/peer/compute/tiers` gives defaults; `GET /v1/peer/compute/marketplace` gives effective node `priceUsd` and `pricingVersion`. - Include `expectedPriceUsd` and `pricingVersion` in checkout/renewal requests. A stale quote returns terminal `409 price_changed` before charging. Refresh, review and use a new intent key. An existing nonterminal intent must always retry with its original body and key. - `GET /v1/peer/compute/rentals/mine` includes each rental's current `renewalQuote`. - Farmers: `GET /v1/peer/compute/mine/pricing`, `GET /mine/earnings`, `POST /mine/nodes/:deviceId/price-proposal` with `{priceUsd,note}`; farmer role and `compute:supply` scope. One pending proposal per owned node. It has no effect until admin approval. - Admin: `GET|POST /v1/peer/compute/admin/pricing`, `POST /admin/nodes/:deviceId/pricing`, `POST /admin/nodes/:deviceId/price-proposal/reject`, `GET /admin/sales`; admin role and `compute:admin` scope. Changes require current revision and a review reason. Null node price/fee overrides inherit defaults. - Accepted purchase intents snapshot the price, platform percentage, integer farmer cents and supplier identity. Retries and later admin changes do not rewrite accepted terms. Renewals are separately confirmed at current terms. - Accrued earnings are not paid cash. Check `settlementMode` and `payoutNote`; automatic settlement is currently disabled (shadow mode). Existing admin settlement and payout review apply. Payments: Stripe card or supported CoinGate crypto top-up into shared USD account balance. Compute does not offer x402 checkout. No per-token fees; context, 4,096 output-token maximum, 60 requests/minute/rental and three-minute generation limits apply. Training, tools, image/audio input and arbitrary containers are unsupported.