BROWSER-ONLY TOOL

Token decimals converter: raw units to balance

A contract stores balances as whole numbers. A wallet divides by the token’s decimals before showing you a figure. This converts between the two, exactly, in either direction.

A raw amount is a whole number. A wallet amount may have a decimal point.
Read the decimals() value from the token contract. USDC and USDT commonly use 6; many others use 18.
Label only. It does not affect the conversion.
Enter your details to see a result.

Why a balance reads 1000000 instead of 1

Token contracts have no decimal type. A balance is stored as an integer, and the contract publishes a decimals value saying how many of those integer units make one whole token. USDC commonly uses six decimals, so one USDC is stored as 1000000. Many other tokens use eighteen, matching ether.

This trips people up when reading a block explorer, checking a contract call, or comparing a raw log value against a wallet balance. The number is not wrong; it is the same amount at a different scale.

Confirm the decimals rather than assuming

Eighteen is common but not universal, and assuming it for a six-decimal token misreads a balance by a factor of a trillion. Read the decimals value from the token contract on the network you are actually using — the same token on another network is a separate deployment.

This tool converts a number you supply. It does not read a contract, fetch a balance or confirm that a token is legitimate.

Sources & further reading

  1. Ethereum: ERC-20 token standard

    The decimals value and integer balance storage.

  2. Circle: USDC contract addresses

    Per-network deployments whose decimals should be read from the contract.

  3. Ethereum: transactions

    Raw integer values in transaction and log data.

Sources checked on 18 September 2026. Network features and platform support can change; check the relevant provider before acting.