The economy at a glance
There are two ledgers and three units. Almost every misunderstanding of this economy comes from collapsing them into one, so start by keeping them apart.
| Unit | What it is | Which ledger | Where it lives | Smallest piece | Who creates it |
|---|---|---|---|---|---|
| Credit | Compute fuel — one credit is one hour | Credit ledger | users.fuel_plancks + fuel_bonds (this cycle's bond) | 1 planck = 10−43 hour | The free hour (every 30 days), purchase from the Foundation, burning earned ZEQ |
| Envelope | Proof receipt for one charged compute | Coin ledger, kind='envelope' | tally_tokens.value_credits | Indivisible — the whole face | mintEnvelope(), one per charged compute |
| ZEQ coin | The bearer instrument | Coin ledger, kind='coin' | tally_tokens.value_plancks | 1 planck = 10−43 ZEQ | The issuer, one per Zeqond, on the clock |
The two ledgers do not convert into each other by arithmetic. There is a valve between them in each direction, and each valve is one-way at the point of use.
Ledger one — credits
Credits are the unit a compute is priced and charged in. They are held per account as integer
quanta (QUANTA_PER_CREDIT = 10^18, economyConfig.ts), and balances are federated to the
credit-authority node (lib/creditAuthority.ts).
Credits are not money and do not move between people. POST /api/tally/credits/transfer is
answered 410 CREDITS_ARE_FUEL:
{
"ok": false,
"code": "CREDITS_ARE_FUEL",
"error": "Credits are non-transferable compute fuel. Transfer ZEQ envelope coins instead: POST /api/tally/envelopes/transfer { token_id, to }."
}
A signed-in account gets one free compute-hour every 30 days (it lands by itself; there is no claim
and it never stacks). Beyond that, hours are bought from the Foundation at one price — $2.97 per hour,
published at GET /api/pricing/tiers — or made by burning earned ZEQ 1:1 (POST /api/credits/from-coin).
A subscription bonds that cycle's hours in the wallet; they burn as you compute and expire at cycle end. See
credits & metering and compute credits, ZEQ coin and tiers.
Ledger two — the coin ledger
The coin ledger holds two different objects in one table, tally_tokens, discriminated by the kind
column. They share the bearer machinery — spend_seq, home_origin, status, the Ed25519 node
co-signature, transfer / export / redeem / migrate — and differ only in what their face means and
whether they divide.
Envelope — kind='envelope'
One per charged compute, face in credits, indivisible, home-local (it never replicates to peer nodes). Split or merge returns 409 not_divisible.
ZEQ coin — kind='coin'
Face in plancks, divisible to one planck, splittable and mergeable, exportable as a PIN-locked .ZEQ file. The bearer instrument.
The envelope face is 1:1 — and it is not ZEQ
An envelope's face value is the number of credits the compute was charged. Not a function of it — the same number:
export function envelopeFaceCredits(chargedCredits: number): number {
return Math.max(0, Math.floor(chargedCredits));
}
shared/api-core/src/lib/economyConfig.ts. There is no quality multiplier. An earlier
V = round(cost × (1 + quality)) doubled the face of a perfect-precision compute, which inside an
earn-and-spend loop is 100% inflation per turn; it was removed. Precision still decides whether
an envelope mints at all — a compute outside the 0.001 bound (ENVELOPE_PRECISION_BOUND) mints
nothing — it no longer decides how much money exists.
Live, the arithmetic shows: GET /api/tally/transparency on zeq.me reports
envelopes_minted: 68853 against envelope_value_total: 274459 — a mean face of 3.99 credits,
which is what a two-to-three-operator chain costs. Nothing near a 2× multiplier is visible in the
totals, because it is not there.
Compute does not mint ZEQ
This is the single most important correction to make if you learned this economy from an older page.
- A charged compute mints an envelope. That is a receipt, denominated in credits.
- ZEQ is minted by the clock, one per Zeqond, by a single issuer, whether or not anybody computes anything. See issuance.
The two meet in the distribution, not in the mint: each settlement window the issuer hands 5% to the treasury and pays the remaining 95% out to machines in proportion to the sealed compute duration they contributed. Compute earns you a share of an already-minted ZEQ; it does not create one.
What actually moves
| Movement | Endpoint | What changes |
|---|---|---|
| Burn earned ZEQ into hours | POST /api/credits/from-coin | Coin ledger down (burned), credit ledger up 1:1 |
| Bond this cycle's hours | POST /api/credits/bond | Bought hours → fuel_bonds row for 30 days |
| Run a charged compute | POST /api/zeq/compute | Credits down, one envelope row minted |
| Transfer an envelope | POST /api/tally/envelopes/transfer | issued_to reassigned, spend_seq++ |
| Burn envelopes back to fuel | POST /api/tally/envelopes/burn | Envelopes → compute fuel (hours) at 1:1 par (BURN_RATE_BPS = 10000) |
| Represent a balance as coins | POST /api/tally/coins/mint-from-balance | Integer ZEQ balance → bearer coin rows. No new supply. |
| Split / merge coins | POST /api/tally/coins/:tokenId/split, …/merge | Plancks conserved exactly |
| Take a coin offline | POST /api/tally/coins/:tokenId/export | Row escrowed status='bearer', the .ZEQ file is the live copy |
Burn is a one-way valve: a compute funded by burn-credits mints no envelope, so value that leaves the token layer into fuel can never re-enter it.
Honest state of the ledgers today
Read live, on 2026-09-03 at Zeqond 2,301,712,305:
GET /api/contribute/census→{"contributing":0,"experimenting":0,"idle":0,"total":0}. There are no contributors. Every settlement window therefore pays 100% of the mint to the treasury pool, not because of a policy but because the 95% budget has nobody to pay.GET /api/tally/coins/conservation→coin_token_count: 0. No ZEQ coin bearer tokens exist yet on any node sampled. The coin machinery is live and the invariant holds; nobody has minted one.GET /api/tally/record→{"ok":true,"count":0,"ledger":[]}onzeq.me. The public tally record reads empty on this node.
Read next
- Issuance — 1 ZEQ per Zeqond, the exactly-once key, the 5/95 split, the cap.
- The ZEQ coin — plancks, mint-from-balance, split, merge, export, redeem.
- Conservation — the invariant, and how to check it live yourself.
- Compute-hours — the 1 ZEQ = 1 CPU-hour peg and the seat tiers.
- Envelopes — the per-compute receipt in full.
- Credits & metering — what a call costs and what a balance buys.