Setup Guide
Turn any machine into a Synet provider node. Hardware probe, identity, settlement, and pairing all handled by the CLI. No manual key management.
One command
Curl pipe install. Probes hardware, generates keys, starts daemon.
Any hardware
NVIDIA, AMD, Apple Silicon, or CPU. Auto-detected on first run.
Get paid
Every 100ms the aggregator posts a Merkle root. You claim, you earn.
No password
The install command IS the credential. One-time link token, 15-min TTL.
Create an account
Run the install on the box
curl -fsSL https://get.synet.run/install.sh | sh -s -- --pair-code PAIR-XXXX-XXXX- Hardware probe: detects GPU vendor, VRAM, compute capability, memory bandwidth
- EOA generation: secp256k1 keypair for on-chain claim transactions
- libp2p key: ed25519 for peer identity and heartbeat signatures
- Systemd service: auto-restarts on crash, logs to journald
Pair the box to your account
1. From the box: run
synetctl pair --gateway http://your-dashboard:9090. It prints a code and a URL. Open the URL in a browser to claim the box.2. From the dashboard: open the box node page (click any node in /nodes), go to the Setup tab, click "Generate pairing code", then open the printed URL.
Set your contribution
synetctl config --region africa-south --bandwidth 50 --ram 8 --gpu on- --region: your geographic region (affects aggregator routing)
- --bandwidth: Mbps to contribute (upstream cap)
- --ram: GB of system RAM to allocate
- --gpu: on / off / auto (whether to expose GPU compute)
Verify it is live
synetctl statusMaintain
- Update:
synetctl update- pulls the latest binary, restarts cleanly - Drain:
synetctl drain- finishes in-flight work, exits (use before shutting down) - Logs:
journalctl -u synetd -fon Linux, or~/.synetd/logs/directly - Uninstall:
synetctl uninstall- stops the service, removes the binary, keeps the keys - Unpair:
synetctl configthen re-pair with a new account usingsynetctl pair
To unpair all existing nodes and re-pair from scratch using the CLI, follow these three steps. This is the complete end-to-end pairing flow.
Generate a pairing code
Run the pair command on the machine running synetd. It POSTs to the dashboard gateway and gets back a one-time code.
synetctl pair --gateway http://127.0.0.1:9090PAIR-XXXX-XXXX and a URL like /pair?code=PAIR-XXXX-XXXXOpen the pairing URL
Open the URL printed by the CLI in a browser. If you have an account, it binds the node. If not, it prompts you to create one first.
Check it is bound
The node now appears in /nodes under your account. Check its status and heartbeat intervals.
synetctl statussynetctl pair with a new or existing account.How does pairing work technically?
The daemon synetctl pair command POSTs to /api/pair/create with its peer_id and (optionally) an account_id. The gateway generates a 12-char base32 code, stashes it in a 15-minute in-memory store keyed to the peer_id, and returns the code plus a URL like /pair?code=PAIR-XXXX-XXXX.
When you open the URL, the web side calls /api/pair/create with the code and your account_id. The gateway looks up the pending pair, verifies the account exists, and binds the peer_id to the account. After that, the peer_id is owned by the account until you unlink it.
What hardware tiers are supported?
Four tiers, all settle on the same contract:
- Apple Silicon - M1/M2/M3/M4 series, Metal + MLX paths
- NVIDIA - sm_80 (A100), sm_86 (RTX 30xx), sm_90 (H100) via CUDA
- AMD - gfx90a (MI200), gfx1100 (RX 7000) via ROCm
- CPU - x86_64 or arm64, no GPU required, lower per-interval reward
The daemon probes on startup and reports the tier to the regional aggregator. Routing decisions weight by tier.
What gets sent to the network?
Heartbeat proofs (interval counter + BLAKE3 Merkle root of model frames, signed with your ed25519 key), a one-time capability report (hardware tier, NAT type, sustained throughput, sustained thermal score), and the inference work itself.
No prompts, no model weights, no logs leave your machine. The EOA on the box only signs claim transactions against the escrow contract.
What if I go offline?
You stop earning. There is no penalty for being offline. The aggregator excludes you from the next interval bitmap and you do not appear in the next Merkle root. The dashboard reflects offline until the daemon comes back.
Can I run multiple nodes on one machine?
Yes - each node needs its own libp2p key and EOA. Use a separate --identity-path and --eoa-path per instance, and bind each to a different control port (e.g. --control-listen 0.0.0.0:9090 and :9091).
What settlement chain is this on?
MegaETH testnet for alpha. Same contract addresses and ABI as the planned mainnet config. Switching is one CLI flag.