Конвертеры

Конвертер decimals токена (сырое значение ↔ сумма)

Контракты токенов никогда не хранят «1,5 USDT». Они хранят целое число — 1500000 — и значение decimals, которое говорит, где поставить запятую. Сырые значения встречаются во входных данных транзакций, логах событий, ответах API и вызовах контрактов. Вставьте сырое значение или hex-слово, чтобы получить сумму, или введите сумму, чтобы получить точное целое число для контракта.

Результат
1.5
Hex (для calldata)
0x16e360

Смарт-контракты хранят балансы целыми числами. Поле decimals говорит, где ставить запятую: 1 500 000 «сырых» USDT (6 знаков) — это 1,5 USDT, а 1 500 000 у токена с 18 знаками — 0,0000000000015. Перед расчётом проверьте decimals контракта в обозревателе. USDT BEP-20 в BNB Chain использует 18 знаков, а не 6.

Как работают decimals

Стандарт ERC-20 определяет decimals как подсказку для отображения: сумма, которую видит пользователь, равна сырому балансу, делённому на 10^decimals. Так же устроены TRC-20 в TRON, BEP-20 в BNB Smart Chain, токены SPL в Solana (decimals минта) и нативные единицы — wei, лампорты, пиконеро. Конвертер работает через BigInt, поэтому 78-значные значения uint256 считаются точно.

сумма = сырое ÷ 10^decimals сырое = сумма × 10^decimals (должно быть целым) 0x0f4240 = 1 000 000 = 1 USDT (6 знаков)

Частые значения decimals

  • 6 — USDT в Ethereum и TRON, USDC в большинстве сетей, USDT и USDC в Solana.
  • 18 — ETH в wei, DAI, большинство токенов ERC-20, BNB, а также USDT и USDC, выпущенные в BNB Smart Chain.
  • 8 — WBTC и другие токены, привязанные к биткоину, как сатоши.
  • 9 — SOL в лампортах, SUI в MIST.
  • 12 — Monero в пиконеро.

У одного тикера в разных сетях могут быть разные decimals. Сырые 1 000 000 — это 1 USDT в Ethereum, но 0,000000000001 USDT в BNB Smart Chain. Всегда смотрите decimals() конкретного контракта в обозревателе.

Откуда берутся сырые значения

Обозреватели показывают сырые значения во входных данных вызова (последнее 32-байтное слово перевода — сумма в hex), в логах событий и на вкладке «Read contract». С ними постоянно работают разработчики кошельков и пользователи API. Если вы проверяете approve, сумма 2²⁵⁶ − 1 (hex-слово из одних f) означает безлимитное разрешение.

Частые вопросы

+Сколько decimals у USDT?

6 в Ethereum, TRON и Solana. Контракт USDT BEP-20 в BNB Smart Chain использует 18.

+Сколько это — 1000000000000000000 wei?

1 ETH: 10¹⁸ wei при 18 знаках.

+Почему конвертер не принимает мою сумму?

В ней больше знаков после запятой, чем поддерживает токен. Токен с 6 знаками не может выразить 0,0000001.

+Как прочитать сумму во входных данных транзакции?

Возьмите 64-символьное hex-слово суммы, добавьте 0x и вставьте сюда вместе с decimals токена.

Все расчёты выполняются в вашем браузере, введённые данные не отправляются на KOT.CASH. Результаты — оценка для информации, а не финансовая, налоговая или юридическая консультация.

← Все крипто-инструменты (92)

Конвертер decimals токена: сырое uint256 в сумму