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.
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.
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 ….
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.
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_intopath, 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)
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
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
Includes the vesting pool's locked 5.498M QTC (unclaimed vesting sits in the pool account's free). Not spendable ≠ not counted.
Reconciliation
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) | From | To | Note |
|---|
Method, sources, and honest limits
Verified sources
- verifiedQuantus-Network/chain — pallets/mining-rewards/src/lib.rs:
on_finalizecomputestotal_reward = (MaxSupply − (total_issuance + tx_fees)) / EmissionDivisor, mintstx_fees + total_rewardquantized down to the leaf quantum, retains dust inCollectedFees. 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; nomint_intopath in the wormhole pallet. - verifiedQuantus-Network/docs — tokenomics.md: 21M cap, 27% genesis mint, 73% mining emissions.
- dataPublic Subsquid indexer
sqm.quantus.com/v1/graphqlvia same-origin snapshotdata/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_issuanceis 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
- This desk audits — it never moves funds, never asks for keys, and never signs anything. 100% client-side.
- It is an independent builder's audit, not an official Quantus statement and not financial advice.
- Refresh the snapshot with
node scripts/fetch-supply-data.mjsand recommit to re-run the audit at a new height. - Found a discrepancy in the audit itself? The math is all in
app.js— exactBigInt, no floats — and the unit tests pin the first-block known answer.