# 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.

:::steps
### 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](/node/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](/protocol/jobs#gpu-groups) 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](/compute/credit-and-billing#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](/protocol/jobs#verdicts)), 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](/network/compute), 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.
