ブロックエクスプローラーの取引ページは、専門的な項目が並ぶ壁のように見えます。この記事では、各項目を一つずつ説明します。取引は成功したのか、誰が支払ったのか、いくらかかったのか、何をしたのか、といった素朴な疑問に答えられるようになります。
例は、まずイーサリアム方式のチェーン(Ethereum、Arbitrum、Base、Optimism、Polygon)に沿って説明します。後半で、ビットコインとSolanaの違いを示します。
取引ページを開く方法
取引を見つける方法は3つあります。
- ヘッダーの検索ボックスにハッシュを貼り付けます。ハッシュは長いIDで、EVMチェーンでは0xで始まります。
- ブロック内の取引をクリックします。チェーンのライブページ(たとえばBase)を開いて、ブロックのタイルをクリックしてください。
/chain/<id>/tx/<hash>という直接アドレスを使います。<id>は、そのチェーンのサイトアドレスに表示されているチェーン番号です。
ブロックやアドレスのページも同じように動作します。ヘッダーの検索では、ブロック番号やアドレスも入力できます。
項目を一つずつ見る
トランザクションハッシュ(Transaction hash)
取引に固有のIDです。ハッシュがあれば、誰でも同じ記録を見つけられます。2つの異なる取引が同じハッシュになることはありません。
ステータス(Status)
通常は成功(Success)、失敗(Failed)、**保留中(Pending)**のいずれかです。成功は、取引が実行され、その変更が適用されたことを意味します。失敗は、ブロックには含まれたものの、ガス不足やコントラクトのルールなどにより、その動作が拒否されたことを意味します。保留中は、待機していて、まだブロックに入っていないことを意味します。
失敗した取引でも手数料は支払います。ネットワークは試すために作業を行ったので、失敗した時点までに使ったガスの分を支払うことになります。それ以外は何も変わりません。送ろうとしたトークンやコインは、手元に残ります。
ブロックとタイムスタンプ(Block and timestamp)
ブロックは、取引を含むブロックの番号です。タイムスタンプは、そのブロックの時刻です。多くのページには、その後に何ブロック続いたかを示す承認数も表示されます。ファイナリティと承認数をご覧ください。
送信元と送信先(From and to)
Fromは、署名して支払ったアドレスです。Toは、呼び出しを受け取ったアドレスです。「to」のアドレスが通常のウォレットなら、単純な送金です。スマートコントラクトなら、その取引はコントラクトの呼び出しであり、「to」はコントラクトで、最終的にトークンを受け取る人ではありません。
値(Value)
取引と一緒に送られたネイティブコイン(Ethereumの場合はETH)の量です。USDCなどのトークン転送では、トークンがトークンコントラクトの内部で動くため、値は0 ETHであることが多いです。実際の金額は、トークン転送のセクションにあります。
トランザクション手数料(Transaction fee)
支払われた合計で、ネイティブコインで表示され、ドル換算でも表示されることが多いです。使用ガスにガス価格を掛けたものに等しくなります。レイヤー2のチェーンでは、イーサリアムへの投稿のためのデータ手数料も含まれる場合があります。各部分については、ガスと手数料で説明しています。
ガスリミット、使用ガス、ガス価格(Gas limit, gas used and gas price)
- ガスリミット: 送信者が許可した最大の作業量。
- 使用ガス: 実際に使われた作業量。支払うのはリミットではなく、こちらです。
- ガス価格: 1単位あたりの価格(gwei単位)。新しいページでは、ベース手数料、優先手数料、最大手数料に分けて表示されます。
単純なETH送金は、きっかり21,000ガスを使います。トークン転送やスワップは、それより多く使います。
ノンス(Nonce)
送信者の取引を数えるカウンターです。アドレスからの最初の取引はノンス0、次はノンス1、というように続きます。取引は順番に取り込まれる必要があるため、1つの取引が詰まると、後ろの取引も止まることがあります。同じノンスをより高い手数料で再利用することが、ウォレットが保留中の取引を置き換えたりキャンセルしたりする方法です。
入力データ(Input data)
コントラクトに送られる生のデータです。単純な送金では空です。コントラクトの呼び出しでは、関数名を表す短いコードで始まり、その後に引数が続きます。エクスプローラーは、受取人と金額を伴う「transfer」のように、読みやすい形にデコードして表示することがよくあります。
ログとイベント(Logs and events)
コントラクトが実行されると、ログと呼ばれるイベントを記録することがあります。トークンコントラクトは、トークンが動くたびに「Transfer」イベントを発行します。アプリやエクスプローラーは、このログを読み取って動きを表示します。ログは、コントラクトが何をしたかを示す確かな証拠になります。
トークン転送(Token transfers)
ログから作られる、より親しみやすい要約です。どのトークンが、どのアドレスから、どのアドレスへ、いくら動いたかが示されます。支払いを確認するときに読むべきなのは、この部分です。
実例:BaseでUSDCを25受け取った場合
友人が、Base上で25 USDCを送ったと言い、トランザクションハッシュを教えてくれたとします。ヘッダーの検索で、Base上でそれを検索します。ページには何が表示されるでしょうか。
- ステータス: 成功。送金は実行されました。
- ブロックとタイムスタンプ: ブロック番号と少し前の時刻、そしていくつかの承認。
- From: 友人のアドレス。To: USDCトークンコントラクトで、あなたのアドレスではありません。これはトークン転送では普通のことです。
- 値: 0 ETH。ETHは動いていないからです。
- トークン転送: 友人のアドレスからあなたのアドレスへ25 USDCが送られたことを示す1行。重要なのは、この行です。
- トランザクション手数料: ごくわずかな額で、友人がETHで支払い、Baseはレイヤー2なのでL1データ手数料も含まれています。
- 入力データ: あなたのアドレスと、トークンの最小単位での金額を伴う、コントラクトへの「transfer」呼び出し(USDCは小数点以下6桁なので、25 USDCは25,000,000と書かれます)。
トークン転送の行にあなたのアドレスと25 USDCが示されていれば、お金を受け取っています。別のUSDCコントラクトアドレスが表示されている場合は注意してください。偽のトークンが同じ名前を使うことがあります。ステーブルコインをご覧ください。
保留中と承認済み
保留中の取引は、ブロードキャストされたもののブロックに取り込まれていません。手数料が低すぎると、待たされることがあります。取り込まれると承認済みになり、その上にブロックが増えるほど、頼りにしても安全になります。詳しくはファイナリティと承認数をご覧ください。
ビットコインの違い
ビットコインには、イーサリアムのような意味でのアカウントや残高はありません。取引はインプットを使い、アウトプットを作ります。インプットは、あなたが使う以前のアウトプットを指します。アウトプットは、いくらをどのアドレスに送るかを示します。
インプットは、全額を使い切る必要があります。0.5 BTCのコインを持っていて0.1 BTCを支払う場合、取引には受取人への0.1 BTCのアウトプットと、ほぼ0.4 BTCがあなたに戻るお釣りのアウトプットができます。インプットとアウトプットの間のわずかな差が、手数料です。ガスもノンスも、同じ種類の入力データもありません。ビットコインのメモリプールと手数料とビットコインをご覧ください。
Solanaの違い
Solanaの取引は、IDの役割を果たす署名で識別されます。取引には、プログラム(Solanaでのスマートコントラクトの呼び方)を呼び出すインストラクションのリストが含まれます。1つの取引に複数のインストラクションを含めることができ、たとえば「トークンアカウントを作成」してから「転送」などです。ページには、手数料、使用したコンピュートユニット、各インストラクションの結果が表示されます。Solanaの優先手数料とSolanaをご覧ください。
よくある質問
トランザクションハッシュとは何ですか?
取引に固有のIDです。ブロックエクスプローラーで取引を探すために使います。
なぜ失敗した取引でも手数料がかかったのですか?
ネットワークは試すために作業を行ったので、動作が拒否されても、使われたガスは請求されます。コインやトークンは、元の場所に残ります。
なぜ「to」のアドレスが受取人ではなくコントラクトになっているのですか?
トークン転送では、トークンコントラクトを呼び出し、それが残高を更新します。受取人は、トークン転送のセクションと入力データに表示されます。
保留中の取引とはどういう意味ですか?
ブロードキャストされたものの、まだブロックに入っていないということです。通常は、より高い手数料が必要か、少し待つだけで済みます。
ノンスとは何ですか?
アドレスがこれまでに送った取引の数を数えるカウンターです。取引の順序を保ち、同じ取引が二重に使われるのを防ぎます。