トークン小数桁数変換ツール

コントラクトはトークン残高を整数で保存します。トークンの小数桁数(USDTとUSDCは6、WBTCは8、多くのERC-20は18)を選び、生の値とウォレットが表示する金額との間で変換します。

ブラウザ内のJavaScriptで変換します。アドレスがアップロードや保存されることはありません。

トークン小数桁数変換ツールとは

トークン小数桁数変換ツールは、トークンコントラクトが保存する生の整数と、ウォレットが表示する人間向けの金額との間を、トークンの decimals 値を使って変換します:金額 = 生の値 ÷ 10decimals。ERC-20とTRC-20のコントラクトは decimals() でこの値を公開し、SPLのミントはミントアカウントに保存しています。USDTとUSDCは6、WBTCは8、ETH系のトークンは18を使います。

主なトークンの小数桁数

トークン小数桁数1トークンの生の整数値
USDT(Ethereum、Tron、Solana、Polygon、Arbitrum)61,000,000
USDC(主要チェーンすべて)61,000,000
BNB Smart Chain上のUSDT(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桁)なら2.5 USDCです。同じ数値がDAIの送金(小数18桁)から来たなら、0.0000000000025 DAIというダスト金額になります。逆方向では、0.0025 WBTC(小数8桁)を送るには transfer の引数を0.0025 × 108 = 250,000にする必要があり、1 LINK(小数18桁)を送るには1,000,000,000,000,000,000が必要です。

よくあるミス

コードでは

ネイティブコインについてはEthereum単位変換ツール、satoshi変換ツール、lamports変換ツール、sun変換ツールをご覧ください。

よくある質問

トークンの小数桁数とは?

トークンコントラクトに保存されている数値で、生の整数のうち何桁が小数部かを示します。USDTは小数6桁なので、生の残高1,500,000は1.5 USDTです。ETHと多くのERC-20トークンは18を使います。

トークンの小数桁数はどこで確認できますか?

Etherscan、Tronscan、Solscanのトークンページか、ERC-20 / TRC-20コントラクトの decimals() を呼び出して確認できます。SPLトークンの場合はミントアカウントにあります。

なぜ送金が巨大な数値で表示されるのですか?

生の値を見ているからです。10decimalsで割ってください。USDTの送金25000000は25 USDT、ETH系トークンの送金1000000000000000000は1トークンです。

EIP-681のQRコードにも使えますか?

はい。EIP-681のトークン送金における uint256 パラメータは生の整数でなければなりません。ここに表示金額を入力して生の値をコピーするか、これを自動で行うUSDT ERC-20 QRジェネレーターをお使いください。

なぜ多くのERC-20トークンは小数18桁なのですか?

ETH自体が18桁(1 ETH = 1018 wei)であり、初期のトークンコントラクトがその慣習を踏襲したからです。ステーブルコインはセント単位の会計に余裕を持たせるため6を選び、ラップドBitcoinトークンはsatoshiに合わせて8を使います。

USDTの小数桁数はすべてのチェーンで同じですか?

USDTはEthereum、Tron、Solana、Polygonをはじめ多くのチェーンで6を使いますが、一部のブリッジ版は異なります(例えばBNB Smart Chainでは18)。必ず個別のコントラクトを確認してください。