# Protocol

MLX Network on one page. A sequencer keeps a signed ledger, wallets hold MLX and USDC, Macs run AI jobs handed out by the server, and every hour the Macs that worked are paid from the compute pool.

These pages describe what the code does today. Each section names the function or constant that enforces it, so you can check the claim against the source. For the reasoning behind the design, read the [whitepaper](https://mlx.app/whitepaper). Where the two disagree, these pages follow the code.

## The sequencer

One sequencer orders transactions and seals them into hash-linked blocks, each signed with the sequencer's Ed25519 key (`lib/chain/ledger.ts`). A cron job runs every minute and seals whatever arrived since the last block. The sequencer's public key and the chain id are in `/api/stats`.

```endpoint try
GET /api/stats
```

The sequencer also sends its own system transactions: `compute_reward` once an hour, plus one-off transactions such as `relock` and `seat_reward_return`. They go through the same blocks as everyone else's.

Every block goes into an append-only transparency log (RFC 9162), with signed checkpoints, state commitments and anchors on Solana and Bitcoin. Macs can co-sign the checkpoints as witnesses. See [Integrity](/integrity/overview).

## Wallets

A wallet is a name like `luca.mlx` with an Ed25519 key. The key comes from a 32-byte seed, which the owner keeps as a passkey or as a 24-word recovery phrase. No server holds the seed. Every transaction is canonical JSON signed by that key. See [Keys and signing](/transactions/keys-and-signing).

## MLX and USDC

**MLX** has a fixed supply of 10,000,000,000, with 6 decimals. All of it was created at genesis in five protocol accounts:

| Account | Purpose | Share | MLX |
| --- | --- | ---: | ---: |
| `rewards.mlx` | Seat reserve | 30% | 3,000,000,000 |
| `compute.mlx` | Compute rewards | 35% | 3,500,000,000 |
| `community.mlx` | Community and referrals | 10% | 1,000,000,000 |
| `treasury.mlx` | Treasury | 15% | 1,500,000,000 |
| `team.mlx` | Contributors | 10% | 1,000,000,000 |

**USDC** is the network dollar. Any coin deposited is credited as USDC, and withdrawals pay out USDC. USDT balances from before are legacy: they can still pay for a seat or a spot buy.

## Dedicated and free seats

A **dedicated seat** is what people buy. It has a size in units and sets how much the wallet's Macs can mine: up to 8 MLX per unit a day. A seat pays nothing up front. See [Dedicated seats](/protocol/seats).

A Mac linked to a wallet with no dedicated seat runs on a **free seat**. It gets short jobs now and then, mines at a weight of 0.125, and all free seats together take at most 10% of each hour's release. See [Free seats](/protocol/free-seats).

## Macs and device keys

Only Macs do the work. MLX Node, the menu bar app, makes a P-256 key in the Mac's Secure Enclave. The Mac signs a link request, and the wallet records it with a `bind_device` transaction. A wallet can link up to 32 devices. From then on, the Mac signs every request it sends to the worker API. See [MLX Node](/node/overview) and [The worker protocol](/node/worker-protocol).

## Jobs

The server hands out work. A Mac never picks its own job. Each job is a short prompt run with greedy decoding on a small model. Its prompt is drawn from a seed only the server holds. Each job goes to several Macs from different wallets, and their answers are compared. A result counts only for the job that Mac was handed, only once, and only if it comes back no faster than a real Mac could run it. See [Jobs and checks](/protocol/jobs).

## Hourly compute rewards

Every hour, each Mac that worked gets a score `s = A · T · q`: how much of the hour it was available, how many jobs it delivered against a target, and how often its answers agreed with other Macs. The hour's release is a fixed fraction of what `compute.mlx` holds (4-year half-life). It is shared by weight × score and capped at 8/24 MLX per unit an hour. One `compute_reward` transaction pays the hour. Payouts are locked for the wallet's lock-in. See [Compute rewards](/protocol/rewards) and [Lock-ins](/protocol/lock-ins).

## The price curve and the spot market

The network's position is counted in units: one for every $100 that enters through a spot buy, and 50% of that for a seat. MLX per unit starts at 10,000 and halves at every doubling: $20M, then $30M, then $40M, then every $50M. So the network price starts at $0.01 and doubles each time. The protocol itself buys and sells MLX along this curve, with a buy premium and a sell discount. See [The price curve](/protocol/curve).

## Planned

- Paid AI jobs from clients, paid in USDC: a pilot, see [Compute API](/compute/overview).
- Commit-then-open in MLX Node 0.10, which checks a Mac against the server itself, not only against other Macs.
- Audits and slashing, as the whitepaper describes. None of them run today.

## On these pages

:::cards
- [Dedicated seats](/protocol/seats) Sizes, classes, how seats pair with Macs, fit badges.
- [Compute rewards](/protocol/rewards) The hourly formula exactly as the code computes it.
- [Free seats](/protocol/free-seats) The throttle, short jobs and what counts as available.
- [Lock-ins](/protocol/lock-ins) How long mined MLX stays locked, and the rule changes so far.
- [The price curve](/protocol/curve) Halvings, the integral, spot buys and sells, paying from the wallet.
- [Jobs and checks](/protocol/jobs) How work is handed out and checked, and what that does not prove yet.
- [Parameters](/protocol/parameters) Every protocol constant, with where it lives in the code.
:::
