TONアドレス変換ツール:Raw ↔ バウンス可能 ↔ バウンス不可

任意の形式のTONアドレスを貼り付けると、rawのworkchain:hash、バウンス可能なEQ…とバウンス不可のUQ…形式、テストネット専用の変種が、CRC16チェックサム検証付きで表示されます。

48文字のユーザーフレンドリーなbase64形式(バウンス可能EQ…、バウンス不可UQ…、テストネットkQ… / 0Q…)、またはrawのworkchain:hash形式。

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

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–35CRC16バイト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つの変種すべてを表示します。

バウンス可能とバウンス不可:どちらを使うか

  1. 個人に送る場合。バウンス不可の UQ… 形式を使います。相手のウォレットコントラクトがまだデプロイされていない(新規ウォレットの)場合、バウンス可能な送金は跳ね返され、相手は何も受け取れません。
  2. スマートコントラクトを呼び出す場合。バウンス可能な EQ… 形式を使います。呼び出しが失敗するとコントラクトがメッセージをバウンスし、TONは手数料を差し引いて戻ってくるため、資金が動かなくなることはありません。
  3. 取引所への入金。メモやコメントを含め、取引所の指示に従ってください。アドレス形式で宛先が変わることはありませんが、フラグは失敗時の挙動を変えます。

CRCチェックが重要な理由

TONアドレスはbase64なので、1文字の誤りで気づかないうちにハッシュが変わり、変わったハッシュは別の(おそらく存在しない)アカウントです。CRC16は1文字の誤りすべてと、複数文字の誤りの大半を検出します。このツールはチェックサムが一致しないユーザーフレンドリーアドレスの変換を拒否し、意図を推測することはありません。rawアドレスにはチェックサムが一切ないため、rawアドレスを変換した場合の出力は貼り付けたhexの正しさに依存します。先頭と末尾の文字を元の情報と照合してください。

典型的な用途

このサイトの他のアドレスツール:暗号資産アドレス検証ツールとTronアドレス変換ツール。

よくある質問

EQ…とUQ…のTONアドレスの違いは?

同じアカウントです。EQ…はバウンス可能形式(タグバイト0x11)で、宛先コントラクトが存在しないかメッセージを拒否した場合、TONは送信者に戻ります。UQ…はバウンス不可(タグ0x51)で、未初期化のウォレットにも送金が入金されます。ウォレットアプリは受取用にUQ…を表示し、EQ…はスマートコントラクトに使われます。

TONを受け取るにはどちらの形式を相手に渡すべき?

バウンス不可のUQ…形式です。特にまだ一度も送金していない新規ウォレットの場合はそうです。未初期化のウォレットへのバウンス可能な送金は跳ね返され、受取人は何も受け取れません。ウォレットがデプロイされた後はどちらの形式も使え、最近のウォレットの多くは選択を自動で処理します。

raw 0:…形式とは?

正規のアドレスです。ワークチェーン(ウォレットが存在するベースチェーンは0、マスターチェーンは-1)と、コントラクトの初期コードとデータの256ビットハッシュをworkchain:hexとして表記します。チェックサムもバウンスフラグもないため、ユーザーフレンドリー形式が存在します。

kQ…と0Q…は何を意味する?

タグバイトにテストネット専用ビット(0x80)を立てた同じ2つの形式です。kQ…はバウンス可能なテストネット、0Q…はバウンス不可のテストネットです。メインネットのウォレットはこれらを拒否します。基になるrawアドレスはメインネットのものと同一です。

TONアドレスのチェックサムはどう計算される?

36バイトのユーザーフレンドリー形式は、タグ(1バイト)、ワークチェーン(1バイト)、ハッシュ(32バイト)、先頭34バイトに対する2バイトのCRC-16/XMODEM(多項式0x1021、初期値0)からなり、base64またはURLセーフbase64でエンコードされます。ツールはCRCを再計算し、一致しないアドレスを拒否します。

- _ 版と + / 版の両方が表示されるのはなぜ?

標準のbase64は + と / を、URLセーフbase64は - と _ を使います。どちらも同じバイト列にデコードされ、どちらも有効なTONアドレスです。エクスプローラーやウォレットはリンクに埋め込めるよう通常URLセーフ形式を表示します。変換ツールは両方を表示します。