Reproduce the display problem with practice accounts
Imagine a student has deployed the Academy workshop token and wants to send one token to a second practice account. In the contract interface the student enters the integer one, confirms the transaction and sees a successful receipt. The wallet still displays zero in the receiving account. Before blaming the network, check how the contract and the wallet express quantities. The low-level transfer call accepts an integer number of the token’s smallest units. A wallet commonly presents a decimal-adjusted quantity and rounds it to a limited number of places. A successful transfer and a visibly unchanged rounded balance can therefore describe exactly the same event.
Use the decimal setting once
For a classroom token with eighteen decimals, one whole display token corresponds to one followed by eighteen zeros in raw units. A raw transfer of one represents one quintillionth of a display token. Repeat the experiment using the whole-token raw amount and compare the changes in both accounts. With a token configured for six decimals, the raw amount for one whole token would instead be one million. Read the metadata for the specific contract; the ERC-20 specification describes decimals as optional. A ticker or a familiar logo is a poor substitute for checking. Also establish whether the interface you are using accepts human-readable amounts or raw integers. Converting a number twice can be as consequential as failing to convert it at all.
Prove what moved with two observations
On your test network, collect the sender and recipient balances before the transfer, then read them after the transaction using the same token contract. For the simple workshop implementation, the change on one side should match the change on the other. Record the transfer event, emitting contract and block number alongside the balance comparison. Separate the native asset used for the network fee from the token being transferred. A small change in ETH belongs in a different line of the exercise. Finish by writing the transferred amount twice, first as a raw integer and then in display units. Another learner should be able to reproduce both numbers without relying on the precision settings of your wallet.
Keep large raw quantities as integer strings in a worksheet or a tool that supports arbitrary precision. Rounding the least significant digits during data entry can erase the very one-unit movement this exercise is designed to reveal.
Go deeper on CryptoGov
Sources & verification
Researched and published by CryptoGov Editorial Desk. Source publication and effective dates are explained in the article where relevant.




