TONアドレス変換ツールとは
TONアドレス変換ツールは、The Open Network上の1つのアカウントをraw形式(workchain:hash、例:0:83df…31a8)と、TONアドレスドキュメントで定義されたユーザーフレンドリー形式の間で変換します。後者はフラグ、ワークチェーン、ハッシュ、CRC16チェックサムからなる36バイトの構造をbase64エンコードしたもので、おなじみの48文字の EQ…(バウンス可能)および UQ…(バウンス不可)文字列になります。すべての形式が同じスマートコントラクトアカウントを指し、異なるのは送信者にその扱い方をどう伝えるかだけです。
ユーザーフレンドリーアドレスの構造
| バイト | フィールド | 意味 |
|---|---|---|
| 0 | タグ | 0x11 バウンス可能、0x51 バウンス不可。テストネット専用は0x80を加算(0x91、0xD1) |
| 1 | ワークチェーン | 0x00 ベースチェーン、0xFF マスターチェーン(符号付きバイトの-1) |
| 2–33 | アカウントハッシュ | コントラクトの初期状態(コード + データ)のSHA-256 |
| 34–35 | CRC16 | バイト0–33に対するCRC-16/XMODEM、ビッグエンディアン |
36バイトのbase64はパディングなしでちょうど48文字になるため、ユーザーフレンドリーなTONアドレスはすべて同じ長さです。先頭の2文字はタグとワークチェーンバイトの上位ビットから決まります。メインネットのワークチェーン0では EQ と UQ、マスターチェーンでは Ef と Uf、テストネットでは kQ と 0Q です。
変換例
rawアドレス 0:83dfd552e63729b472fcbcc8c45ebcc6691702558b68ec7527e1ba403a0f31a8 を例にします。先頭にタグ 0x11 とワークチェーン 0x00 を付け、この34バイトのCRC-16/XMODEMを末尾に加えてbase64urlエンコードすると、バウンス可能形式 EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N になります。タグを 0x51 に変えると先頭の文字とチェックサムが変わり、UQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqEBI になります。ハッシュが同じなので中央の43文字は同一です。どちらかを上に貼り付けると、ツールはraw形式を復元して4つの変種すべてを表示します。
バウンス可能とバウンス不可:どちらを使うか
- 個人に送る場合。バウンス不可の
UQ…形式を使います。相手のウォレットコントラクトがまだデプロイされていない(新規ウォレットの)場合、バウンス可能な送金は跳ね返され、相手は何も受け取れません。 - スマートコントラクトを呼び出す場合。バウンス可能な
EQ…形式を使います。呼び出しが失敗するとコントラクトがメッセージをバウンスし、TONは手数料を差し引いて戻ってくるため、資金が動かなくなることはありません。 - 取引所への入金。メモやコメントを含め、取引所の指示に従ってください。アドレス形式で宛先が変わることはありませんが、フラグは失敗時の挙動を変えます。
CRCチェックが重要な理由
TONアドレスはbase64なので、1文字の誤りで気づかないうちにハッシュが変わり、変わったハッシュは別の(おそらく存在しない)アカウントです。CRC16は1文字の誤りすべてと、複数文字の誤りの大半を検出します。このツールはチェックサムが一致しないユーザーフレンドリーアドレスの変換を拒否し、意図を推測することはありません。rawアドレスにはチェックサムが一切ないため、rawアドレスを変換した場合の出力は貼り付けたhexの正しさに依存します。先頭と末尾の文字を元の情報と照合してください。
典型的な用途
- ノード、エクスプローラーAPI、TON Connectマニフェストが出力するrawアドレスを、ウォレットが受け付ける形式に変換する。
- コントラクト一覧のバウンス可能アドレスを、新規ウォレットに送る前にバウンス不可形式に切り替える。
- 誰かから送られてきたアドレスがテストネット専用形式かどうかを確認する。
このサイトの他のアドレスツール:暗号資産アドレス検証ツールとTronアドレス変換ツール。