Skip to content
Protocol contracts not yet configured for this build
Enter app

Economics

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. Equals totalPloutoBurned + 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 buybackEnabled is 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:

FigureValue
totalSupply()995,000,000
totalPloutoBurned5,000,000
totalPloutoSentToDead0
balanceOf(dead)0
totalStaked120,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.