Supply accounting
Five supply figures appear in the interface. Each is defined precisely here, including what it cannot account for.
The definitions
- Total supply
Exactly what
PLOUTO.totalSupply()returns. Not adjusted, not interpreted. A real burn reduces this; a dead-address transfer does not.- Permanently retired
totalPloutoRetiredByProtocol— everything the executor has bought and removed, by either mechanism. EqualstotalPloutoBurned + totalPloutoSentToDead, asserted as an invariant.- Estimated circulating supply
totalSupply() − balanceOf(0x…dEaD). Called estimated for reasons set out below.- Currently staked
totalStaked— the sum of every open position's amount. Locked, and temporarily out of circulation.- Liquid estimated supply
Estimated circulating minus currently staked. What could, in principle, be sold today.
Why "estimated"
The word is load-bearing. totalSupply() − deadBalance cannot account for:
- Tokens held by the Pons launch locker. Graduation permanently locks a portion of supply into Pons infrastructure. Those are not in circulation in any meaningful sense, but they are not at the dead address either.
- Tokens held by the bonding curve. Pre-graduation, the curve holds unsold supply. It is not circulating, but it is not retired.
- Tokens in the Pons buyback vault. Not applicable to PLOUTO, since
buybackEnabledis false, but the vault exists in the system. - Anything else locked in a contract — bridges, other protocols, vesting.
So the real free float is lower than the estimated circulating figure. Plouto labels it as an estimate rather than quietly presenting an over-count as fact.
Dead-address balance is from all sources
balanceOf(0x…dEaD) counts tokens sent by anyone, not only by Plouto. If a holder sends tokens there, the figure rises without the protocol having retired anything.
That is why the Core page shows two separate numbers:
- Total retired by the protocol — what Plouto actually did.
- Dead address balance (all sources) — what the address holds.
They will differ if anyone else sends tokens there, and they will also differ because a real burn removes tokens from totalSupply() without increasing the dead-address balance at all.
A worked reconciliation
Suppose after some activity:
| Figure | Value |
|---|---|
totalSupply() | 995,000,000 |
totalPloutoBurned | 5,000,000 |
totalPloutoSentToDead | 0 |
balanceOf(dead) | 0 |
totalStaked | 120,000,000 |
Then:
- Original supply was 1,000,000,000; 5,000,000 were genuinely burned.
- Estimated circulating = 995,000,000 − 0 = 995,000,000.
- Liquid estimated = 995,000,000 − 120,000,000 = 875,000,000.
Note that the burned tokens do not appear in the circulating calculation at all — they already left totalSupply(). Subtracting them again would double-count.
Percentages
"Percentage of circulating supply staked" is totalStaked / estimatedCirculating. Because the denominator is an over-estimate, this percentage is a lower bound on the true share of free float that is locked.
Where these come from
All five are read live from the token contract and the protocol contracts on every page load. None is cached, precomputed or stored off-chain. If a value cannot be read, the interface shows an em dash rather than a stale figure.