Как работают 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. Результаты — оценка для информации, а не финансовая, налоговая или юридическая консультация.