Token standards & NFTs

rebasing token

A rebasing token is one where the number in everyone's balance changes automatically, by the protocol's design, without anybody sending a transfer. Imagine waking up to find your account shows 3% more tokens than yesterday, and so does everyone else's, in proportion. The protocol periodically 'rebases' — it rewrites all balances at once — to chase some target, either a price (expand supply when the token trades above peg, contract when below) or a yield (grow balances to reflect interest earned).

The trick under the hood is that the contract does not really store your balance directly. It stores your fixed share of a pool (often called 'shares' or, in Ampleforth, 'gons'), and balanceOf computes your displayed balance as your shares multiplied by a global scaling factor. A rebase just changes that one scaling factor, so every holder's reported balance moves together with no per-account writes. Ampleforth (AMPL) rebases toward a price target; Lido's stETH rebases upward daily to distribute staking rewards.

Rebasing is powerful but it breaks a lot of assumptions other contracts make. Many DeFi protocols cache a balance, or assume that depositing X means you can withdraw X — a rebasing balance violates both, leading to lost or stuck funds when such a token is used in an AMM or lending pool. The standard fix is a wrapped, non-rebasing version: wstETH, for instance, holds a fixed share count whose value grows, so it is composable with protocols that cannot tolerate moving balances. Always check whether a 'yield-bearing' token rebases (balance grows) or appreciates as a share (price grows) — they behave very differently in integrations.

balanceOf(account) = shares[account] * totalSupply / totalShares // a rebase changes totalSupply; every displayed balance moves together

Balances are derived from fixed shares times a changing scaling factor.

A rebasing token changes balances, not price; a share-based yield token changes price, not balances. Plugging a rebasing token into a protocol that expects constant balances is a classic way to lose funds.

Also called
elastic supply tokenrebase token