1. The contract stores an integer amount
An ERC-20 contract records balances as integer values. The decimals function supplies a display convention for dividing that integer into a human-facing unit; it does not change the underlying accounting precision or magically create fractional storage. A token that reports 6 decimals displays 1,000,000 base units as 1 token, while a token reporting 18 decimals displays 1,000,000,000,000,000,000 base units as 1 token.
Wallet interfaces apply this convention to make balances readable. The contract address, chain and token metadata still identify the asset. Two tokens with the same symbol can report different decimals or use different contracts. Verify the address from an official project or issuer source before relying on a displayed amount.
2. Display rounding can hide a meaningful remainder
A wallet may round a large integer for the screen. A value shown as 1.23 can represent more base units than the two decimal places reveal. When reconciling an accounting record, use the exact base-unit value from a trusted explorer or RPC response, then record the display conversion separately.
Rounding matters for minimum withdrawals, fee budgets and tax records. Do not copy a visually rounded number into a transfer form if the recipient expects an exact amount. Confirm how the platform represents decimals and whether its stated amount includes a service fee.
3. Transfer data uses base units
The ERC-20 transfer function accepts an integer amount in the token's base units. A user interface may ask for “1.5 tokens” and convert that to an integer, but the conversion must be exact for the token's decimals. A value with more fractional places than the token supports may be rejected or rounded by the interface. A dangerous interface can also convert using the wrong metadata.
Read the contract address and function arguments on a trusted signer when possible. If the hardware device displays only a generic contract call, confirm the recipient, token contract and amount through an independent process before signing. Never assume a symbol on a browser tab proves the calldata is correct.
4. Allowances use the same base-unit convention
An allowance records how many base units a spender may transfer from an owner. Approving 1 token means approving the integer corresponding to that token's decimals. Approving an extremely large integer is often described as an “unlimited approval,” but it can expose a wallet to future transfers permitted by the spender contract.
Review the spender address, amount and expiration behavior before approving. If a tool offers a human unit without showing the base-unit conversion, verify its documentation. After a one-time operation, consider whether revocation or a lower allowance is appropriate; changing an allowance is itself a transaction with a fee.
5. Bridged and wrapped tokens need a contract check
A token name may appear on several networks, bridges or deployment addresses. A bridge representation can have the same symbol but a different issuer, redemption process and decimals. Sending it to the wrong network or depositing an unsupported representation can make recovery difficult or impossible. The receiving service's accepted contract list is part of the payment instructions.
Record chain ID, token contract, decimals, amount in base units and destination. Use official network and bridge documentation, not an unverified search result. A successful transfer only proves that a contract call was accepted; it does not prove that a particular platform will credit the balance.
Worked example: converting a fractional amount
Suppose an ERC-20 token reports 6 decimals and you intend to send 2.375 tokens. The transfer amount is 2,375,000 base units. If a form accidentally treats the token as 18 decimals, it may propose a number one trillion times larger. The example shows why contract metadata must be checked before signing; it is not a recommendation to send any live amount.
Compare the proposed calldata, recipient and network with an independent record. Start with a value you can afford to lose only when the receiving service confirms its test policy.
FAQ
Can I trust a token symbol in my wallet?
No. Symbols are labels selected by contracts or interfaces and are not unique identifiers. Verify the chain and contract address, then check decimals and official support. If a support contact asks for a private key to “fix” a token display, stop immediately.
