Quantus mainnet · monetary audit · loading…

Trust the math, audit the money

Every QTC in existence was minted by exactly two mechanisms: the 22 genesis transfers at block 1, and the per-block miner reward from pallet_mining_rewards. This desk recomputes the protocol's exact emission recurrence to the planck, tallies every recorded mint from the public indexer, and reconciles both against the indexer's reported balances. The protocol passes. The indexer's balance sheet does not — and the evidence is itemized below.

Protocol issuance…
Recorded mints…
Indexer reports…
Unexplained gap…
Audited at height…

The auditor's verdict

Three independent tallies of the same money supply. Two agree to the planck. The third is off by … — and this desk shows exactly where the extra comes from.

PASS

Protocol issuance

The exact on-chain recurrence — reward = (21M − (supply + fees)) / 50,000,000, quantized down to the 0.01 QTC leaf quantum — reproduces the recorded block rewards. Known-answer check: the formula predicts the very first block reward at 300,000,000,000 plancks; the indexer's first MinerRewarded event reads ….

PASS

Genesis allocation

All 22 block-1 transfers total … — exactly 27.0000014% of the 21M cap. The vesting pool's balance reconciles to vesting_total − claimed plus the 0.001 QTC genesis dust, within 0.0001 QTC. Nothing minted outside these transfers.

FLAG

Indexer-reported balances

Account balance sums exceed every provable mint by … (… of reported supply), growing ≈ one block reward per block. The chain cannot have created these tokens — Substrate issuance grows only via the recorded mints. The excess is an indexer accounting artifact. Evidence:

  • The canonical minting sentinel … reports free = 0 while transfer proofs show … flowing out of it — the debit side of every reward proof vanishes from the indexer's books.
  • Non-genesis sentinel outflows are … the recorded miner rewards; the surplus matches wormhole exit proofs credited to users.
  • Spot check 2026-09-30: the top miner's balance (11,520.95 QTC) ≈ its transfer-ins (11,507.28 QTC), not 2× its rewards — the excess is concentrated in the indexer's global/pool accounting, not spread across miners.
  • The wormhole pallet source contains no mint_into path, so exits cannot be chain-side inflation.

Open item: ≈… of the gap is unattributed (possible burns, e.g. the 0.03 QTC multisig creation burn, fee dust, or indexer noise) — computed live as (sentinel outflows − recorded rewards) − gap. The desk flags it rather than inventing a source.

What this means for you

Use … (genesis + recorded block rewards) as the true circulating-supply money stock — not the indexer's inflated balance sum. Whale Watch percentages computed against the inflated sum understate concentration slightly; its rankings are unaffected.

Three ledgers, one money supply

Every figure below is recomputed live in your browser from the snapshot (or a fresh indexer query when reachable). All arithmetic is exact BigInt planck math — no floats touch the money.

L1 Protocol-expected issuance

The runtime recurrence, iterated block by block (fees = 0 baseline)

Genesis S₀…
Cap C21,000,000.0000 QTC
Divisor D50,000,000
Leaf quantum0.01 QTC (10¹⁰ planck)
Expected at height ……
Current block subsidy…

Recurrence per block: S ← S + Q((C − S) / D), Q = round down to the leaf quantum. Verified against pallets/mining-rewards/src/lib.rs on_finalize (Sept 30, 2026).

L2 Recorded mints

What the indexer proves was actually minted

Genesis transfers (22)…
Block rewards (… events)…
Fee wedge (re-minted fees)…
Provable money stock…

Fees are burned at execution, then re-minted to the miner at finalize (see pallet source) — so recorded rewards sit above the fee-free baseline by the recycled fees. Multisig creation burns (0.03 QTC each) are unmodeled and bounded small.

L3 Indexer-reported balances

Σ of every account's free + reserved + frozen

Free…
Reserved…
Frozen…
Accounts…
Reported supply…

Includes the vesting pool's locked 5.498M QTC (unclaimed vesting sits in the pool account's free). Not spendable ≠ not counted.

Reconciliation

L3 reported − L2 provable…
Gap as % of reported…
Gap growth rate…
Sentinel outflow ÷ recorded rewards…

The gap grows ≈ one block reward per block: each block's reward is booked once as a MinerRewarded mint and once as a transfer proof from the zero-balance minting sentinel. See the Verdict tab for the full evidence trail.

The emission curve, audited

The protocol baseline is not a fitted trend — it is the runtime recurrence executed 140,000 times in exact integer math. The dot is what the indexer proves was minted. The wedge between them is recycled fees, exactly as the pallet source describes.

Cumulative issuance: protocol baseline vs recorded mints

protocol baseline (fee-free recurrence)   recorded mints at snapshot height   fee wedge (re-minted tx fees)

Per-block reward now: formula vs recent blocks

Dots: the 15 most recent blocks' reward fields (indexer). Line: the protocol subsidy at current supply. Rewards sit on the 0.01 QTC quantum grid — blocks above the line carried fees.

Genesis audit: the 22 transfers

An earlier pipeline snapshot truncated this list to 3 rows (limit: 3). The audit reads all of them. Block 1 minted … and nothing has been minted outside block rewards since.

#Amount (QTC)FromToNote
Genesis ÷ 21M cap…
Vesting schedules…
Vesting claimed…
Pool balance check…

Method, sources, and honest limits

Verified sources

  • verifiedQuantus-Network/chain — pallets/mining-rewards/src/lib.rs: on_finalize computes total_reward = (MaxSupply − (total_issuance + tx_fees)) / EmissionDivisor, mints tx_fees + total_reward quantized down to the leaf quantum, retains dust in CollectedFees. Fees are burned at execution and re-minted to the miner.
  • verifiedruntime/src/configs/mod.rs: EmissionDivisor = ConstU128<50_000_000>, MintingAccount = AccountId::new([1u8; 32]).
  • verifiedpallets/wormhole/src/lib.rs: SCALE_DOWN_FACTOR = 10_000_000_000 (12 → 2 decimal places) — the 0.01 QTC leaf quantum; no mint_into path in the wormhole pallet.
  • verifiedQuantus-Network/docs — tokenomics.md: 21M cap, 27% genesis mint, 73% mining emissions.
  • dataPublic Subsquid indexer sqm.quantus.com/v1/graphql via same-origin snapshot data/supply.json (the indexer allowlists only official Quantus domains for browser CORS).

Honest limits

  • The protocol baseline assumes zero fees per block; the real chain recycles fees into rewards, so the baseline is a lower bound and the fee wedge is the difference — not a per-block fee measurement.
  • The … gap is measured against the indexer's tables. The chain's true total_issuance is not directly queryable from a browser; the desk treats recorded mints as the provable money stock.
  • Multisig creation burns (0.03 QTC each, per the runtime constants used by the MultiSig Vault) and any other burns are not subtracted from recorded mints — bounded small, disclosed, not hidden.
  • Two candidate explanations for the gap are on the table: (A) indexer wormhole-exit accounting artifact (favored — no mint path exists in the wormhole pallet); (B) a chain-side exit-mint bug (would be real inflation — not asserted; requires chain-state access to rule out). The desk reports the evidence, not a verdict beyond what the evidence supports.
  • Snapshot staleness: figures are pinned to the snapshot's fetched_at; the app retries a live indexer query first and labels which source it used.

Scope