Skip to main content

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.

UnitWhat it isWhich ledgerWhere it livesSmallest pieceWho creates it
CreditCompute fuel — one credit is one hourCredit ledgerusers.fuel_plancks + fuel_bonds (this cycle's bond)1 planck = 10−43 hourThe free hour (every 30 days), purchase from the Foundation, burning earned ZEQ
EnvelopeProof receipt for one charged computeCoin ledger, kind='envelope'tally_tokens.value_creditsIndivisible — the whole facemintEnvelope(), one per charged compute
ZEQ coinThe bearer instrumentCoin ledger, kind='coin'tally_tokens.value_plancks1 planck = 10−43 ZEQThe 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

MovementEndpointWhat changes
Burn earned ZEQ into hoursPOST /api/credits/from-coinCoin ledger down (burned), credit ledger up 1:1
Bond this cycle's hoursPOST /api/credits/bondBought hours → fuel_bonds row for 30 days
Run a charged computePOST /api/zeq/computeCredits down, one envelope row minted
Transfer an envelopePOST /api/tally/envelopes/transferissued_to reassigned, spend_seq++
Burn envelopes back to fuelPOST /api/tally/envelopes/burnEnvelopes → compute fuel (hours) at 1:1 par (BURN_RATE_BPS = 10000)
Represent a balance as coinsPOST /api/tally/coins/mint-from-balanceInteger ZEQ balance → bearer coin rows. No new supply.
Split / merge coinsPOST /api/tally/coins/:tokenId/split, …/mergePlancks conserved exactly
Take a coin offlinePOST /api/tally/coins/:tokenId/exportRow 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/conservationcoin_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":[]} on zeq.me. The public tally record reads empty on this node.
  • 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.