Skip to content

Elastic supply: what a rebase does to your balance

This page explains what it means to hold a rebasing token, so the balance changes you see don't surprise you. For the exact formulas and bounds, see the token reference; for why the protocol rebases at all, see The peg.

Your balance is a view, not a ledger entry

Most ERC-20s store your balance directly. HAM does not. Internally it stores a fixed underlying amount (in 1e24-precision "internal units") that only changes when you actually send or receive HAM. Your visible balance is computed from that underlying amount and a global scaling factor:

balanceOf(you) = underlying[you] × hamsScalingFactor / 1e24

At genesis the scaling factor is 1.0. Every rebase multiplies it. So a rebase changes balanceOf(you) for everyone at once, without any transfer and without touching your underlying units.

What a rebase changes — and what it doesn't

A rebase is proportional: the scaling factor moves every balance by the same ratio, so a rebase never singles you out. Negative rebases are purely proportional. On a positive rebase the protocol diverts a small slice of the move (rebaseMintPerc, 10% of the rebase delta) into a treasury mint — this is the DAT harvest, and it dilutes all holders by that small slice; the rest of the move is shared identically by everyone.

  • Positive rebase (price above peg): the scaling factor goes up; your balance goes up.
  • Negative rebase (price below peg): the scaling factor goes down; your balance goes down.

This is the part that trips people up: a positive rebase is not free money, and a negative rebase is not a loss of your share. A rebase moves the number of tokens, while the market re-prices each token toward $1. Your USD value moves with HAM's price, which the rebase is trying to hold at $1 — not with the rebase itself. What actually grows your position is the protocol's treasury harvest and any farming rewards, not the rebase arithmetic.

Two balances you can read

ReadingFunctionChanges on a rebase?
Display balance (what wallets show)balanceOf(you)Yes — scales every rebase
Underlying (your rebase-invariant share)balanceOfUnderlying(you)No — only on transfer

Tracking balanceOfUnderlying is the honest way to see whether your share is changing (e.g. from staking rewards), independent of rebase noise. See Read your rebasing balance.

Bounds

Rebases cannot run away. The scaling factor is capped above (maxScalingFactor(), which shrinks as supply grows) and floored below (MIN_SCALING_FACTOR = 1e15, i.e. 0.001×). A single rebase is also dampened — see rebaseLag in The peg.

HAM // Elastic supply pegged to $1.00 · Not financial advice.