Why can one token transfer have a raw amount and a UI amount?

I used to think a token transfer had one amount: the number recorded on-chain.

But BEP-677 adds another layer: the raw amount and the UI amount don't have to be the same.

So what exactly is the number I'm looking at?

The raw amount is the blockchain-level amount.

The UI amount is the user-facing representation, calculated using a UI multiplier:

raw amount × UI multiplier ÷ 1e18 = UI amount

For example, a 2.0× multiplier can make 100 raw units appear as 200 UI units — without changing the raw balance.

And BEP-677 goes one step further.

It defines TransferWithUIAmount, which carries both the raw amount and the UI-adjusted amount alongside the regular BEP-20 transfer event.

That may sound like a small technical detail.

But it solves a real problem for tokenized RWAs: the economic representation of an asset may need to change without moving tokens on-chain.

That's also why this caught my attention when looking at bStocks.

Binance describes bStocks as BEP-20 tokens on BNB Smart Chain and says they integrate BEP-677 / Scaled UI Amount for RWA use cases.

So there are really two layers worth looking at:

what the blockchain records

vs.

what the user is meant to see.

When you look at a token balance, which layer are you actually looking at?

#bstockscis @BinanceCIS