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.