Ponzio

Ponzio: dilution calculations for passive holders

Ponzio dilutes passive holders when its Ethereum token implementation mints internal shares to the configured fee collector. Supply contraction separately reduces the tokens those shares represent. To calculate the combined effect, compare the holder's fraction of internal shares before and after issuance, then apply the new token supply. For supply contractions, the ordinary fee equals 13.37% of the supply decrease. Different calculations apply once stored supply reaches its floor, when a fee reaches the target supply, or when minting exceeds share capacity.

Last updated

Internal shares behind a passive balance

A holder's ownership fraction equals their internal shares divided by all internal shares. A passive holder outside the collector keeps the same numerator during a collector mint.

Let h represent that holder's shares and Q the total before minting. Their fraction is h / Q . Multiplying it by the stored token supply gives their token balance, rounded down to the smallest token unit. Internal shares are accounting units; they aren't the token quantity a wallet displays. A calculation must keep those units separate, because a fee denominated in tokens cannot simply be added to a total denominated in shares.

The supply decrease behind the 13.37% fee

When stored supply is above the minimum, the implementation calculates its collector fee as 13.37% of the supply decrease, rounded down to token base units. Let T0 mean stored supply before an update and T1 its computed target. The ordinary fee amount is f = floor((T0 - T1) × 0.1337) , using base units throughout.

The same supply-decrease rule covers an update that first brings supply down to the minimum. Time-based floor fees start with a later calculation whose stored supply already equals that minimum. Neither rule describes a fixed percentage charged directly against every wallet. The recipient gets newly minted internal shares representing a token amount within the resulting supply.

How much ownership does the collector's mint remove?

A passive non-recipient loses the fraction m / (Q + m) of their former ownership when the collector receives m new shares.

The holder's fraction changes from h / Q to h / (Q + m) . Dividing the second fraction by the first gives the ownership retained: Q / (Q + m) . This calculation concerns relative ownership loss, not the number of tokens removed from the wallet.

In the ordinary branch, where f < T1 and the share ceiling doesn't constrain issuance, the mint is m = floor(Q × f / (T1 - f)) . Ignoring integer rounding, substitution reduces relative ownership loss to f / T1 . The target supply belongs in this denominator because the new shares represent a fraction of that supply.

Dividing the fee by old supply answers a different question: how large the fee is relative to the starting supply. Using that percentage for ownership dilution understates the ordinary contraction case. Exact results use the integer share mint.

A hypothetical 125.6-token holding at the first halving

How much remains from a hypothetical 125.6-token passive balance after the first halving? Assume stored supply still equals the coded initial supply of 21 000 000 tokens, with no intervening supply updates. The holder receives no new shares and makes no transfers. Assume the first state-changing update succeeds at that boundary, with a configured collector and enough share capacity for the ordinary mint. This calculation ignores integer rounding.

At the first halving boundary, the target supply is 10 500 000 tokens. The decrease is therefore 10 500 000 tokens, and the collector fee is 10 500 000 × 0.1337 = 1 403 850 tokens. Supply contraction alone would leave 62.8 tokens from the starting balance. Collector issuance then reduces the holder's proportional ownership by 1 403 850 / 10 500 000 = 13.37% .

Combining both effects gives 125.6 × 0.5 × 0.8663 = 54.40364 tokens. The holder retains about 54.40364 tokens, a 56.685% decline in token count, while relative ownership falls 13.37%. Those percentages measure different changes. The holding is hypothetical, and a different update history would change collector issuance. Neither the remaining balance nor its ownership fraction supplies a market price.

Successive updates and compounding

Several collector mints compound through successive share totals. Adding their dilution percentages doesn't reproduce the remaining ownership fraction.

Visual outline: Successive updates and compounding (Ponzio)
Successive updates and compounding, illustrated

Open full-size image

For an unchanged holder share count, multiply each update's ownership-retention factor. These factors simplify to the first total share count divided by the final total share count. The combined token-balance multiplier also includes final supply divided by initial supply, before balance rounding. Above the floor, each fee uses the decrease since the stored supply's preceding update, and each mint uses its own target supply. Different update histories can therefore produce different share dilution even when their final token supplies match.

The schedule supplying the calculation's inputs

The coded debase interval is 34 minutes and 18 seconds, within a halving period of four days and 144 seconds. These constants determine the scheduled supply target; they don't promise a separate on-chain update at every interval. The fee calculation compares that target with stored supply when an update runs. A delayed update can therefore encompass multiple scheduled decreases. Treating each elapsed interval as a completed, separate collector mint would describe a different share history.

Can dilution continue after the supply stops shrinking?

Yes, once stored supply reaches its floor, collector share issuance can continue diluting passive holders while the token supply stays fixed.

The implementation's minimum is 0.000001 tokens, corresponding to 10 12 base units with 18 token decimals. Once stored supply already equals this minimum, elapsed time since the previous stored update determines the fee. For an interval shorter than the coded halving period, the calculation prorates the floor's 13.37% fee by elapsed time, with integer rounding.

When stored supply already equals the floor, the calculated collector fee is capped at 13.37% of the minimum token supply per update. An elapsed interval at least as long as the halving period reaches that cap. Longer gaps don't multiply it by every missed period. This is a cap on one update's calculated fee, not a lifetime limit on collector issuance.

Because supply stays constant in this state, passive token balances and ownership fractions have the same retention multiplier before rounding. Ignoring share-mint rounding, a capped floor fee in the ordinary mint branch produces 13.37% relative dilution. The maximum share count can eventually constrain issuance and stop further calculated fees.

Large fees and the maximum share count

A calculated fee at least as large as target supply triggers a different mint formula. The ordinary expression's denominator would otherwise be zero or negative.

In that branch, the collector receives as many new shares as already exist, provided capacity allows the full mint. Total shares double, so an unchanged non-recipient retains half their previous ownership fraction. The nominal fee no longer measures the token amount represented by the newly minted shares. Applying f / T1 here would give the wrong dilution.

If a mint would exceed the maximum unsigned 256-bit share total, the contract issues only the remaining capacity and sets its maximum-shares flag. Subsequent supply calculations then return stored supply and zero fees. The actual before-and-after share totals still describe ownership dilution across the capped mint. Neither the ordinary formula nor an assumption of unlimited recurring fees covers this state.

Matching the figures to one recorded update

A successful TotalSupplyUpdated event records the old and new supply alongside the old and new total shares. Its share totals expose the denominator change relevant to a passive holder. The code commits its target only when the calculated fee and collector address are nonzero and the update succeeds. A zero fee leaves the stored state unchanged.

All values in a balance comparison need to describe matching states. A computed preview and a stored balance can refer to different states, so combining them can introduce an apparent discrepancy. Transfers, collector receipts, or other changes to the holder's shares also invalidate the unchanged-numerator assumption. The supply ratio alone cannot distinguish those account changes from collector dilution, and the event's nominal fee doesn't always equal the amount represented by new shares.

The economic limit of a dilution percentage

A dilution percentage measures lost proportional ownership; it doesn't establish the position's monetary return. Valuation also needs the surviving token balance and a relevant price. Providing liquidity and staking liquidity pool tokens introduce different position and reward calculations, so a passive wallet's share-retention formula cannot value those holdings by itself. Even a correct reconstruction of token balances leaves the eventual sale proceeds dependent on the available liquidity and execution price.

Ponzio: frequently asked questions

Is 13.37% the annual cost of leaving Ponzio untouched?

The 13.37% coefficient isn't an annual holding charge. With stored supply above the floor, it applies to the supply decrease; once stored supply already equals the floor, it applies to that minimum with time proration and a per-update cap. An annual projection would need the starting state and subsequent update history. It must also separate declining token count from ownership dilution and changes in market value.

Can the fee collector dilute its own existing holding?

The collector's old shares face dilution, while its new shares can increase its overall ownership fraction. If it already owns c shares, its post-mint fraction is (c + m) / (Q + m), where m is the mint and Q is the old total. A passive non-recipient has no corresponding increase in the numerator, so its calculation describes a different exposure.

Why can an update event show a fee larger than the tokens represented by new collector shares?

The event reports the calculated fee before the special mint branches limit issuance. When that fee reaches or exceeds target supply, the full-capacity mint doubles total shares, and the new shares represent half the target supply. The share-overflow branch can constrain issuance further. The reported fee therefore isn't always the token allocation represented by newly issued shares, or the collector's net balance change.

Does integer rounding make passive ownership dilution larger?

In the ordinary branch, rounding the share mint down never increases dilution relative to the unrounded formula. The fee calculation also rounds down to token base units. Wallet token balances undergo their own downward rounding, which can make a displayed balance comparison differ from a percentage-only calculation. These are separate effects: rounding a share mint and rounding a token balance act on different quantities.

Are collector shares the same as the LP tokens used for staking?

Collector shares are internal accounting units for the rebasing token, while liquidity pool tokens represent a liquidity position. The token's collector mint increases internal shares; it doesn't establish an LP staker's individual reward entitlement. Staking rewards require the applicable reward arrangement. Comparing passive dilution with an LP position also requires the pool's asset composition and value, rather than substituting the token's internal share fraction.

Does changing the collector undo earlier passive-holder dilution?

Changing the collector doesn't remove shares previously minted or restore a passive holder's former ownership fraction. In the initialized implementation, the owner's collector-change function calls the supply update before assigning the new recipient. Any fee mint in that successful update therefore goes to the previous collector. Later updates use the configured replacement. Ownership calculations still include the share totals accumulated across both recipients.