Конвертер decimals токенов

Контракты хранят балансы токенов как целые числа. Выберите decimals токена (6 для USDT и USDC, 8 для WBTC, 18 для большинства ERC-20) и переводите между сырым значением и суммой, которую показал бы кошелёк.

Конвертация выполняется в вашем браузере на JavaScript. Адреса никогда не загружаются и не хранятся.

Что такое конвертер decimals токенов?

Конвертер decimals токенов переводит между сырым целым числом, которое хранит контракт токена, и человекочитаемой суммой, которую показывает кошелёк, используя значение decimals токена: сумма = сырое ÷ 10decimals. Контракты ERC-20 и TRC-20 отдают его через decimals(); SPL-mint хранит его в mint-аккаунте. USDT и USDC используют 6, WBTC — 8, ETH-подобные токены — 18.

Распространённые decimals токенов

ТокенDecimals1 токен как сырое целое
USDT (Ethereum, Tron, Solana, Polygon, Arbitrum)61 000 000
USDC (все основные сети)61 000 000
USDT в BNB Smart Chain (Binance-Peg)181 000 000 000 000 000 000
WBTC, cbBTC8100 000 000
ETH, WETH, DAI, LINK, UNI, AAVE181 000 000 000 000 000 000
SOL и большинство SPL-токенов91 000 000 000
GUSD2100

Как работает конвертация

сумма = сырое ÷ 10decimals и сырое = сумма × 10decimals. Подвох в точности: значения с 18 знаками превышают то, что может представить число с плавающей точкой, поэтому эта страница использует целые числа произвольной точности. Ввод большего числа знаков, чем поддерживает токен, отклоняется, потому что сеть не может представить такую сумму.

Пример

Событие ERC-20 Transfer показывает value = 2500000. Если токен — USDC (6 decimals), это 2.5 USDC. Если то же число пришло из перевода DAI (18 decimals), это было бы 0.0000000000025 DAI — пылевая сумма. В обратную сторону: чтобы отправить 0.0025 WBTC (8 decimals), аргумент transfer должен быть 0.0025 × 108 = 250 000, а для отправки 1 LINK (18 decimals) требуется 1 000 000 000 000 000 000.

Типичные ошибки

В коде

Для нативных монет см. конвертер единиц Ethereum, конвертер сатоши, конвертер лампортов и конвертер sun.

Часто задаваемые вопросы

Что такое decimals токена?

Число, хранящееся в контракте токена и указывающее, сколько цифр сырого целого являются дробными. У USDT 6 decimals, поэтому сырой баланс 1 500 000 — это 1.5 USDT. ETH и большинство ERC-20-токенов используют 18.

Где найти decimals токена?

На странице токена в Etherscan, Tronscan или Solscan либо вызовом decimals() у контракта ERC-20 / TRC-20. Для SPL-токенов это поле в mint-аккаунте.

Почему мой перевод отображается огромным числом?

Вы смотрите на сырое значение. Разделите на 10decimals: перевод USDT 25000000 — это 25 USDT; перевод ETH-подобного токена 1000000000000000000 — это 1 токен.

Можно ли использовать это для QR-кодов EIP-681?

Да. Параметр uint256 в переводе токена по EIP-681 должен быть сырым целым. Введите здесь человекочитаемую сумму и скопируйте сырое значение — или просто используйте генератор QR-кода USDT ERC-20, который делает это автоматически.

Почему большинство ERC-20-токенов используют 18 decimals?

Потому что у самого ETH 18 (1 ETH = 1018 wei), и ранние контракты токенов скопировали это соглашение. Стейблкоины выбрали 6, чтобы отражать учёт на уровне центов с запасом, а обёрнутые Bitcoin-токены используют 8 в соответствии с сатоши.

Одинаковы ли decimals USDT во всех сетях?

USDT использует 6 в Ethereum, Tron, Solana, Polygon и большинстве сетей, но некоторые мостовые версии отличаются (например, 18 в BNB Smart Chain). Всегда проверяйте конкретный контракт.