How jobs run
What happens between your request and the answer, from the hand-out to two Macs to the check that they agree. Written for builders checking the system and for seat owners whose Macs do the work.
Queued
The request is checked, the most it could cost is held against your credit, and the job joins the paid queue (
pj:q).Handed to a Mac
Every time a Mac with a dedicated seat asks for work (
/api/worker/job, see the worker protocol), the paid queue comes first. A Mac gets a paid job only if it's not of your wallet, not already on that job, in the same GPU group as the first Mac that took it, and its previous job wasn't a paid one. Free seats never get paid jobs.Run twice
The job goes to 2 Macs of different wallets. Each runs it with greedy decoding on the same model, so honest Macs of one GPU group give exactly the same tokens.
Settled
When two answers match, that's the answer you get, with
mlx.verified: true. When two disagree, a third Mac of the group is asked (up to 3) and the majority wins. If a Mac takes the job and goes quiet for 15 seconds, one more may take it.
If the wait ends (45 seconds) with a single answer, you get it with mlx.verified: false, and it's charged. With no answer, or answers that never agree, the request fails with 503 and nothing is charged.
What the Macs get
- USDC, 90% of each request's price split between the Macs whose answer was returned, paid with the daily bill. It's never locked.
- No quality from paid jobs. A Mac's quality comes only from stream jobs, checked against Macs of strangers (Jobs and checks), and a Mac gets a paid job at most every other job. Two wallets passing paid jobs between their own Macs therefore can't earn without running the model: half of what their Macs answer is still checked by strangers.
- No change to mining. A seat mines 8 MLX a day per unit as before; paid jobs replace some of its stream jobs and count toward its delivery like them.
Paid jobs run the model MLX Node already has loaded, so a Mac switches nothing to run one. They're part of the network's published work: the tokens of each answer returned count as paid in paid on GET /api/compute/work, and the second Mac's run counts as verification.
Privacy
Your prompt and the answer are stored with the job for a day, then deleted. Each Mac that ran the job saw the prompt. Request records in the console keep only token counts, times and cost, never the text.