Current latest-block snapshot
Current supply figures require a successful, fresh snapshot. Use the plain-text endpoints below to retrieve them.
- Mined · QTC
- Unavailable
- Circulating · QTC
- Unavailable
- Total issued · QTC
- Unavailable
- Protocol maximum · QTC
- Unavailable
- Not yet vested · QTC
- Unavailable
Circulating QTC over time
Waiting for a fresh matching supply snapshot.
Circulating supply is total issued QTC minus amounts not yet vested. Vested but unclaimed QTC counts as circulating; the remaining excluded issuance is in the vesting pool.How the vesting pool is split.
Methodology updated 3 October 2026: vested but unclaimed QTC now counts as circulating; the whole history was recalculated.
Plain-number endpoints
- /supply/circulating: issued QTC minus amounts not yet vested.
- /supply/total: Balances.TotalIssuance.
- /supply/max: MiningRewards.MaxSupply from runtime metadata.
Successful responses are HTTP 200 with Content-Type text/plain: one non-negative decimal number in QTC, followed by a newline. There are no thousands separators, ticker symbols, quotes, markup or exponent notation. Up to all 12 on-chain decimal places are retained; these endpoints do not round down to the four decimals used in the page display.
Inspect the computation snapshot for exact base-unit integers, latest block hash and height, finalized reference height, observation time, expiry, runtime version and exclusions. This explanatory JSON is separate from the three plain-number endpoints.
The circulating rule
Circulating = Balances.TotalIssuance − the sum of (schedule total − vested amount), at the same latest-block timestamp. Methodology version 2, reviewed 3 October 2026 for runtime spec 153. The runtime guard remains in place.
Circulating means issued QTC available under the vesting schedule, whether or not the beneficiary has claimed it. This is a circulating-supply proxy, not exchange liquidity. We subtract only unvested obligations from the issuance counter, never add account balances, transfer volumes or private-tree leaves to issuance.
The excluded and circulating parts of the vesting pool
Vesting pool (pallet account)
qzmviwoPJR19XovVwUYUoUKb2MoBygYgwYAevj5Br8JeunxW70x6d6f646c7176657374696e670000000000000000000000000000000000000000
This is the keyless PalletId-derived account whose bytes beginmodlqvesting; the live Vesting.PalletId constant identifies it. Only scheduled amounts that have not yet vested are excluded. Vested but unclaimed amounts are listed under reviewed_accounts and count as circulating. The account’s existential-deposit buffer is reported separately and is not subtracted.
Before a schedule’s cliff, vested is zero. At or after its end, vested is its total. Between them, vested = floor(total × (timestamp − start) / (end − start)), in plancks. A claim reduces both the pool balance and the unclaimed amount, not circulation; vesting itself increases circulation. Non-final claims use 25 QTC payout increments and a one-day interval, while final claims pay the remainder. This proxy counts the exact vested entitlement, not only the amount executable in a claim at that instant. Seecurrent vesting schedules and releases.
Vested but not claimed · QTC: Unavailable
Other protocol accounts and limits of the rule
The collector examines the complete finalized account sweep, not only the top 100. At review, the vesting pool was the only funded account beginning with the palletmodlprefix. No other funded module account is silently classified as circulating or automatically subtracted.
The configured TreasuryPallet.TreasuryAccount isqzjsuLN7Nhu4bjvmUbjSTr2ZTeZ7oRxXpQP9fdv6PcHUCRrVR (0x12d0296a85b56914dc8d29698974f07055e3ad82a7c40c6b0b38e15cb8c31cb7). Reviewed on 22 September 2026: Vesting.Claimed at block 90506 paid 171,475 QTC to this account from schedule 46. It has no lock, freeze or reserve (frozen 0, reserved 0), and it transferred 10,050 QTC at block 90616. Its funds can be moved, so its live balance is counted as circulating, not excluded. The snapshot reports that balance under reviewed_accounts.
The MiningRewards/Wormhole minting sentinel isqzjUYyuN4L3HKmBPMxHvK2n8HYnaLZcQvLSQTgdwB2nQ1g2mc (0x0101010101010101010101010101010101010101010101010101010101010101). It marks mint-credit sources and has no key. On 14 October 2026, at block 222,844, 0.0991796975 QTC was sent to it. No key can spend it, so the review excludes its balance from circulation, and any later balance is excluded on the same basis. ReversibleTransfers uses a pallet account as a scheduled-call origin, while multisig addresses are derived from their signer configuration; neither fact establishes an additional funded, unavailable pool.
A newly funded, unreviewed module account or treasury stops publication pending a documented review. A review can conclude that funds are counted or excluded; this treasury review concluded that they are counted. A changed treasury configuration or runtime version also stops publication. The reviewed exclusion list will be amended only with an on-chain reason, and every new excluded address will be named here.
Ordinary holders, miners, pool reward addresses, multisigs and vesting beneficiaries are not excluded merely because of their name, size or address appearance. We do not subtract their entire balances because of a reserve, freeze or pending operation: those restrictions do not establish an undistributed protocol reserve. This rule does not estimate lost keys, undisclosed ownership, private beneficial holdings or off-chain lockups. The snapshot reports aggregate reserved balances for inspection.
What “Mined” measures
For reviewed runtimes 152 and 153, Mined = cumulative MiningRewards.MinerRewarded − cumulative MiningRewards.FeesCollected. MinerRewarded combines the block reward with recycled fees; subtracting the fees avoids calling them new issuance. Quantization carry counts when paid, not when scheduled. The block reward goes entirely to the miner, with no treasury share in these runtimes. This is distinct from the Pools chart’s gross mining payouts, which include fees.
We cross-check against TotalIssuance growth from genesis. Genesis allocations are not mined. Account-dust burns, explicit rescinds and wormhole fee burns reduce issuance, so net issuance growth is lower than Mined. Private exits and their miner-fee credits increase account balances without increasing total issuance; they are not block rewards and are not added. Vesting claims redistribute existing QTC. snapshot.json exposes mined in plancks at its latest block; the three plain-number endpoints are unchanged.
Mining reward pallet source · Wormhole supply accounting
Finality, refresh and failure handling
Calculated at the latest block, like the Quantus project explorer; the last ~100 blocks are not yet final and can, rarely, change. Every 15 seconds, the collector reads issuance, runtime constants, treasury setting, pool balance and every vesting schedule at one best-head hash, using its timestamp rather than the browser clock. The complete finalized Accounts sweep remains a separate policy check. The maximum remains MiningRewards.MaxSupply, currently 21,000,000 QTC.
The precomputed snapshot is cached in the collector; requests never call the chain. HTTP responses use Cache-Control: no-store, max-age=0. Latest-block observations expire after at most 60 seconds, and the latest chain timestamp must be under 180 seconds old. Complete finalized policy evidence is valid for at most 15 minutes from its original observation and is reused across restarts without extending its deadline. New policy failures stop publication immediately. An unchanged node-reported finalized head expires after 600 seconds of observation, separate from account-sweep timing. Stored chart history uses finalized samples only.
If the best head changes during a read or cannot be read consistently, the collector retries next cycle and retains the last verified figure only within its original expiry. Policy failures still fail closed. Missing, corrupt, inconsistent or expired data, an unreviewed protocol balance, zero circulating result or stopped handler returns HTTP 503 with a plain-text error body, never a stale success or zero.
Reproduce the calculation
Readthe supply snapshot for the separate complete finalized policy sweep, identified by policy_block_hash and finalized_snapshot. The public Accounts list uses the latest block instead. To reproduce the latest supply figure, read Balances.TotalIssuance, Timestamp.Now and all Vesting.Schedules at the supply snapshot’s exact block_hash. Apply the formula above and sum total minus vested. Check the pool covers remaining schedule obligations and account for the separate deposit buffer. Divide integer plancks by 1012. Read MiningRewards.MaxSupply from that block’s runtime metadata for the maximum. Different snapshot generations must not be mixed.
Thevesting pallet sourcedescribes its account derivation and payout transfers, and theruntime configuration identifies the protocol accounts. Live runtime metadata and storage pinned to the stated block are the inputs to our figures. About this explorer.