# Parameters

Every protocol constant in one place, with the name it has in the code and the file it lives in. The values on this page are read from those constants when the docs are built.

Live values, such as the price, the spot spread the operator set, balances and counts, are not here. Read them from the [Network API](/network/overview).

## Token and curve

| Parameter | Value | Constant | File |
| --- | --- | --- | --- |
| Total supply | 10,000,000,000 MLX | `TOTAL_SUPPLY` | `lib/chain/curve.ts` |
| Decimals | 6 | `DECIMALS` | `lib/chain/curve.ts` |
| One unit | $100 | `UNIT_USD` | `lib/chain/curve.ts` |
| MLX per unit at genesis | 10,000 | `GENESIS_RATE` | `lib/chain/curve.ts` |
| Network price at genesis | $0.01 | `UNIT_USD / GENESIS_RATE` | `lib/chain/curve.ts` |
| Units per doubling | 200,000 ($20 million), then 300,000 ($30 million), then 400,000 ($40 million), then 500,000 ($50 million) for every doubling after | `DOUBLINGS` | `lib/chain/curve.ts` |
| Seat weight on the curve | 50% of a seat's units, from 29 Oct 2026 | `SEAT_CURVE_WEIGHT` | `lib/chain/curve.ts` |
| Mining referral bonus, levels 1 / 2 / 3 | 20% / 4% / 0.8%; KOL 25% / 5% / 1%; strategic 30% / 6% / 1.2% | `REF_BPS` | `lib/chain/curve.ts` |
| Mining referral budget | 300 million MLX from `community.mlx` | `REFERRAL_BUDGET` | `lib/chain/curve.ts` |
| Inviter's own Mac active within | 7 days | `REF_ACTIVE_DAYS` | `lib/chain/curve.ts` |
| Spot buy premium, default | 3% | `BUY_PREMIUM` | `lib/chain/curve.ts` |
| Spot sell discount, default | 20% | `SELL_DISCOUNT` | `lib/chain/curve.ts` |

The live spread is `market` in `/api/stats`. See [The price curve](/protocol/curve).

## Allocation

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

From `ALLOCATION` in `lib/chain/curve.ts`.

## Seats

| Seat | Id | Price | Units | MLX a day (cap) | MLX an hour | Mined MLX locked | Full rate on |
| --- | --- | ---: | ---: | ---: | ---: | --- | --- |
| Nano | `N` | $50 | 0.5 | 4 | ~0.17 | 20 days | any Mac |
| Lite | `T` | $100 | 1 | 8 | ~0.33 | 14 days | any Mac |
| Core | `S` | $250 | 2.5 | 20 | ~0.83 | 10 days | any M chip |
| Pro | `M` | $1,000 | 10 | 80 | ~3.33 | 7 days | Pro or Max |
| Ultra | `L` | $4,000 | 40 | 320 | ~13.33 | 3 days | Ultra |
| Core Latest | `SX` | $375 | 3.75 | 30 | ~1.25 | 10 days | newest base |
| Pro Latest | `MX` | $1,500 | 15 | 120 | ~5 | 7 days | newest Pro or Max |
| Ultra Latest | `LX` | $6,000 | 60 | 480 | ~20 | 3 days | newest Ultra |

From `TIERS` in `lib/chain/curve.ts`. The cap is `COMPUTE_KAPPA × units` a day (`seatPerDay`). See [Dedicated seats](/protocol/seats).

| Parameter | Value | Constant | File |
| --- | --- | --- | --- |
| Latest edition, price and weight | 1.5× | `LATEST_MULT` | `lib/chain/curve.ts` |
| Chips that carry a Latest edition | M6, M5 Pro, M5 Max, M5 Ultra | `LATEST_CHIPS` | `lib/chain/curve.ts` |
| Devices a wallet can link | 32 | `MAX_DEVICES` | `lib/chain/device.ts` |

## Compute rewards

| Parameter | Value | Constant | File |
| --- | --- | --- | --- |
| Cap, κ | 8 MLX per unit a day | `COMPUTE_KAPPA` | `lib/chain/curve.ts` |
| Half-life of the compute pool | 4 years | `COMPUTE_HALF_LIFE_DAYS` | `lib/chain/curve.ts` |
| Share released each hour, λ_h | 1.9768e-5 | `COMPUTE_LAMBDA_HOUR` | `lib/chain/curve.ts` |
| Free-seat weight | 0.125 | `COMPUTE_FREE_WEIGHT` | `lib/chain/curve.ts` |
| Free-seat cap | 1 MLX a day, 0.0417 an hour | `FREE_PER_DAY` | `lib/chain/curve.ts` |
| Free seats' share of a release, at most | 10% | `COMPUTE_FREE_SHARE` | `lib/chain/curve.ts` |
| Delivery target, dedicated seat | one job per 15 s | `DEDICATED_MIN_PER_JOB` (minutes) | `lib/compute/seats.ts` |
| Delivery target, free seat | one job per 12 s | `FREE_CYCLE_S` | `lib/compute/seats.ts` |

See [Compute rewards](/protocol/rewards).

## Lock-ins

| Parameter | Value | Constant | File |
| --- | --- | --- | --- |
| Mined MLX on a dedicated seat | the wallet's shortest seat lock-in (seat table above) | `lockDays` in `TIERS`, `computeLockDays` | `lib/chain/curve.ts` |
| Mined MLX on a free seat | 30 days | `COMPUTE_FREE_LOCK_DAYS` | `lib/chain/curve.ts` |

See [Lock-ins](/protocol/lock-ins).

## Free-seat throttle

| Parameter | Value | Constant | File |
| --- | --- | --- | --- |
| Shortest wait between jobs | 1 s | `COMPUTE_FREE_JOB_GAP_MIN_S` | `lib/chain/curve.ts` |
| Longest wait between jobs | 9 s | `COMPUTE_FREE_JOB_GAP_MAX_S` | `lib/chain/curve.ts` |
| Tokens in a short job | 32 | `FREE_JOB_TOKENS` | `lib/worker/jobs.ts` |
| Tokens in a full job | 160 | `maxTokens` in `freshJob` | `lib/worker/jobs.ts` |

See [Free seats](/protocol/free-seats).

## Jobs and checks

| Parameter | Value | Constant | File |
| --- | --- | --- | --- |
| Macs an index is handed to, at most | 5 | `SHARE_HANDOUTS` | `lib/worker/core.ts` |
| Answers that close an index | 3 | `SHARE_ANSWERS` | `lib/worker/core.ts` |
| Least time between hand-outs to one Mac | 200 ms | `MIN_HANDOUT_GAP_MS` | `lib/worker/core.ts` |
| Results a minute from one Mac, at most | 300 | `RESULTS_PER_MINUTE` | `lib/worker/core.ts` |
| Timing floor | 1 ms per token | `FLOOR_MS_PER_TOKEN` | `lib/worker/core.ts` |
| Speed floor against base Macs | 60% | `SPEED_FLOOR` | `lib/compute/verify.ts` |
| Measured jobs before the speed check applies | 40 | `SPEED_MIN_SAMPLES` | `lib/compute/verify.ts` |
| Base Macs needed for a baseline | 3 | `SPEED_MIN_BASE` | `lib/compute/verify.ts` |

See [Jobs and checks](/protocol/jobs).

## Worker API

| Parameter | Value | Constant | File |
| --- | --- | --- | --- |
| `/api/worker/job` and `/api/worker/result`, per Mac | 240 a minute each | `WORK_ROUTE_PER_MINUTE` | `lib/worker/route.ts` |
| A device route that sets no limit of its own | 30 a minute | `DEVICE_ROUTE_PER_MINUTE` | `lib/worker/route.ts` |

The other worker routes set their own limits in their route files. See [The worker protocol](/node/worker-protocol#rate-limits).

## Transactions and money

| Parameter | Value | Constant | File |
| --- | --- | --- | --- |
| Transactions a minute from one address | 60 | `TX_LIMITS.ipPerMinute` | `lib/chain/limits.ts` |
| The same, on one server instance | 40 | `TX_LIMITS.perInstanceIpPerMinute` | `lib/chain/limits.ts` |
| Transactions a minute from one wallet | 30 | `TX_LIMITS.walletPerMinute` | `lib/chain/limits.ts` |
| Failed transactions an hour before a wallet waits | 20 | `TX_LIMITS.failedPerHour` | `lib/chain/limits.ts` |
| New wallets an hour from one address | 10 | `TX_LIMITS.accountsPerIpHour` | `lib/chain/limits.ts` |
| New wallets a day from one address | 25 | `TX_LIMITS.accountsPerIpDay` | `lib/chain/limits.ts` |
| MLX one wallet may buy in a UTC day | $2,500 | `buyDayUsd` | `lib/abuse/fair.ts` |
| The same, with a linked Mac | $25,000 | `buyDayUsdLinked` | `lib/abuse/fair.ts` |
| Free-seat Macs that earn per network in an hour | 5 | `freePerNetwork` | `lib/abuse/fair.ts` |
| Different wallets one Mac may link to in 30 days | 3 | `macWallets30d` | `lib/abuse/fair.ts` |
| Smallest withdrawal | 10 USDC | `WITHDRAW_MIN` | `lib/chain/ledger.ts` |
| Withdrawal fee to Solana | 0.5 USDC | `WITHDRAW_FEE` | `lib/chain/ledger.ts` |
| Largest payout sent automatically | 2,000 USDC | `HL_AUTO_MAX` | `lib/bridge/hyperliquid.ts` |
| Automatic payouts in a UTC day, at most | 10,000 USDC | `HL_DAILY_MAX` | `lib/bridge/hyperliquid.ts` |

See [Rate limits](/resources/rate-limits).
