Skip to main content
Aeterna Sol

Crypto markets, protocols and policy

Read Cross-Chain Token Amounts Without Confusing Decimals

Token decimals show how to scale base units into readable amounts across chains, and why a bridge quote can look different without changing value or ownership.

The Aeterna Sol Editors

Read Cross-Chain Token Amounts Without Confusing Decimals

A six-decimal token needs 1,000,000 base units to represent one whole token, so cross-chain amounts must be compared after decimal scaling. The raw integers can differ even when the human-readable value is the same.

Token contracts usually store amounts as integers, with no decimal point. A token’s decimals setting tells wallets and apps where to place that point for display. It does not change the integer stored on-chain.

For example, 1.234567 tokens with six decimals is stored as 1,234,567 base units. With 18 decimals, the same displayed amount is stored as 1,234,567,000,000,000,000 base units. Comparing those raw numbers alone would give you the wrong impression of how much value is moving.

Why do tokens use different decimals across chains?

Decimals are a display convention chosen for a token’s implementation. Many tokens use 18 decimal places, while others use fewer. A token bridged to another chain may have a different representation, with its own contract and decimal setting.

That means a bridge can receive one token representation and issue another whose base-unit count differs. The bridge has to account for each side’s precision when it calculates the amount to send or release. A useful way to understand how a route affects what arrives is to compare the bridge and swap choices in Biswap’s guide to choosing a bridge or swap route. The key detail is that route choice and decimal scaling are separate parts of the calculation.

Do not assume that matching token names or symbols means the contracts have the same decimals. Check the token address and the destination representation. A familiar ticker is not enough to establish that two amounts use the same unit.

How do you convert an amount between decimal settings?

To convert a human-readable amount into base units, multiply by 10 raised to the token’s decimals. To convert base units back into a readable amount, divide by that same power of ten.

If a route converts from six decimals to 18, it can multiply the base-unit amount by 1012 to preserve the same displayed quantity. In the reverse direction, it divides by 1012. These powers of ten are unit conversions; they do not, on their own, increase or decrease the token’s market value.

Precision becomes a practical issue when the destination supports fewer decimals than the source. If the source amount includes a fraction too small to represent at the destination, a conversion may leave a remainder. Depending on the bridge, that remainder may be rounded down, rejected, or handled by the route’s rules. Check the route details before treating a displayed estimate as an exact receipt.

How can you check a bridge amount before sending?

Read the source and destination amounts in their displayed token units, then check how the route handles precision and fees. A destination amount can be lower because of a fee or a swap, even when decimal scaling is correct. Keep those effects separate when you compare the numbers.

  • Confirm the token: Check the source and destination token addresses and networks, not only their symbols.
  • Check decimals: Find the decimal setting for each token representation in the route.
  • Compare readable units: Convert each raw amount using its own decimals before comparing quantities.
  • Separate adjustments: Account for fees, exchange rates, and any stated rounding or minimum amount rules.

When a route shows raw integers, divide each by 10 raised to the decimals for that specific token. When it shows formatted amounts, verify which token each figure refers to and whether the quote includes fees or a swap. A displayed amount may be rounded for readability, so the final receipt can differ by a small fraction.

What should you make of a mismatch?

First check whether you are comparing base units with whole-token amounts. Then check token identity, decimal settings, and any fee or exchange rate in the route. If the difference remains, inspect the route’s conversion and rounding rules before sending.

The practical rule is simple: compare amounts in the same token and the same unit. Decimal settings explain why raw counts differ; route mechanics explain any remaining change in what you receive.