QTC Vesting Desk
The unlock calendar for Quantus's locked genesis supply. Every schedule below is a real row from the chain's Subsquid indexer — 5,669,940 QTC of the 27% TGE mint, still 96% locked behind a one-year cliff. The unlock math is the pallet's own formula, recomputed to the planck, in your browser.
⏱ Right now
📅 The unlock calendar
Aggregate vested supply across all 48 schedules, computed with the pallet's exact linear formula at each month boundary — TGE through the end of vesting. Toggle between the cumulative curve and monthly unlock inflow.
Chart math: at each month boundary, vested = ∑ floor(total · (t−start) / (end−start)) per schedule (0 before cliff, total after end) — the same rounding the runtime uses. Grants dominate: ~4,940 QTC/day per schedule for 3 years.
☰ The three cohorts
Genesis wrote three kinds of schedule (verified in runtime/src/genesis_config_presets/mainnet_vesting.rs). Every row has cliff == start — nothing unlocks as a lump.
☯ Schedule explorer
All 48 schedules. Click a row for its unlock calendar and claim details. Claimable estimates use the snapshot's chain time and the pallet's 25-QTC non-final payout alignment — the chain decides at the claim block's timestamp, and at most one claim per schedule per day.
| Id | Beneficiary | Cohort | Total | Vested | Claimed | Claimable * | Progress |
|---|---|---|---|---|---|---|---|
| loading schedules… | |||||||
◉ Track my grant
Paste a qz… address to find its vesting schedules. Checksum-validated (SS58 prefix 189) before anything is looked up. Everything stays in your browser.
⚙ Vesting 101 — the exact rules
The unlock formula
From pallets/vesting/src/lib.rs (vested_amount), times in milliseconds since the unix epoch:
- Before
cliff: 0 claimable. - At or after
end: the full total. - Between:
floor(total × (now − start) / (end − start))— linear, rounded down, measured fromstart.
How to claim
Vesting.claim(schedule_id) — pallet index 22, call index 0. Claim is permissionless: any signed account can call it for any schedule, and the payout always goes to the stored beneficiary. This is the only claim path for beneficiaries that cannot sign (wormhole addresses, high-security accounts) — a third-party "ping" is all it takes.
Payout quirks
- 25-QTC chunks: non-final claims pay down to multiples of 2,500 × the 0.01-QTC payout quantum. The leftover rides to a later claim; the final claim pays the exact remainder.
- One claim per day per schedule (
MinClaimInterval = MILLIS_PER_DAY). - Pull-based pot: the unclaimed allocation sits in the pallet's sovereign pot; no locks or freezes ever touch a beneficiary account — any address, even keyless, can be a beneficiary.
- Admin powers (treasury origin): create schedules, end early (vested part to beneficiary, rest back to treasury), retarget a beneficiary (lost-key remedy — everything unclaimed follows the schedule to the new wallet).
Genesis audit
The 27% TGE mint is 5,670,000 QTC (mainnet_vesting.rs, compile-time asserted): spreadsheet grants 4,957,502 + intents grant 42,000 + treasury liquidity 210,000 + treasury vesting remainder + 3-QTC seed endowments for each treasurer and tech-collective member. The indexer shows 5,669,940 QTC across 48 schedules — the rest is seeds and the pot's existential-deposit buffer.
Sources: pallets/vesting/src/lib.rs · mainnet_vesting.rs · configs/mod.rs (all read from a fresh clone, 2026-09-30). Data: sqm.quantus.com vesting_schedule.
⚑ Methodology & honesty
- Live data is attempted from the public Subsquid indexer first; GitHub Pages is not on the indexer's CORS allowlist, so the app falls back to the baked
data/vesting.jsonsnapshot — the badge above always says which one you are seeing. - "Claimable" is an estimate: the chain evaluates vesting at the claim block's own timestamp, and only one claim per schedule per day is accepted. Treat the estimate as a lower bound, not a promise.
- Unlock projections assume the pallet math stays as audited; an admin
end_scheduleorretarget_schedulecan change any schedule. The desk never moves funds and never asks for keys. - All QTC math is BigInt plancks (1 QTC = 1012 plancks) — no floating point anywhere.