ERC-20 defines a common way for applications to query and transfer fungible token balances. Within one token, units are treated as interchangeable. The standard specifies functions such as balanceOf, transfer and totalSupply, together with events used to report transfers and approvals.
Amounts and decimals
Contracts account in integer units. If a token reports six decimals, a displayed balance of 1.5 tokens corresponds to 1,500,000 base units. Decimals affect presentation, not the economic value or percentage ownership. Name, symbol and decimals are optional in the original specification, although widely implemented.
Spending permissions
The approve function grants a spender an allowance, and transferFrom lets that spender move tokens within the authorized rules. Approving 100 tokens does not itself send 100 tokens; it creates spending authority. Large allowances can expose later balances if the authorized spender is compromised or malicious.
What ERC-20 leaves open
The interface does not require a fixed supply or forbid administrative controls. A token may add minting, pauses or other restrictions. Its network and contract address matter more than its ticker. ETH itself is not an ERC-20 token, and Ethereum transaction gas is ordinarily paid in ETH, including when transferring ERC-20 assets.