Etherscan.ioの見方@2021年12月版

ついに冬がきてしまいましたね。

秋田県でも雪が降り積もり始めています。

今年はあんまり積もらなければいいなぁ

 

f:id:t3akt:20211203165954p:plain

 

 

さておき、今日は暗号通貨(仮想通貨)についての記事です。

それもややマニアックな話になりますね。

 

国外で暗号通貨を取引する場合や、マイナーな暗号通貨を取引する場合はいわゆる分散型取引所(DeFi)を利用することが多いかと思います。

分散型取引所を利用する場合は、Metamaskなどのウォレットが必要になります。

Metamaskの導入の仕方や、使い方、イーサリアムやらBinance Smart Chainなどの使い方やらは日本語ページが充実しているんですが、

実際のチェーンの見方について細かく書いてくれている日本語のページがあまりないと思いました。または書いていても情報がやや古かったり。

そこで、イーサリアムチェーン上の取引ページが見れるEtherScanの見方について調べましたので今日は記事にします。

https://etherscan.io/

f:id:t3akt:20211203172658p:plain

※現時点の画面解説を行っていますが1年後に同じではない可能性がありますので注意です。変わっている場合は脳内補完が必要かと思います。

 

Web上のページの見方

前半は基本的にはこちらのページの訳文です。ただし、画面は最新のものにしました。

info.etherscan.com

Etherscanに何かしらのアドレスを打ち込んだ画面が以下になります。今回の表示例はBinanceのアドレスです。それを大きく3つに分けます。

 

Aの部分



1 Contract:

今見ているページのコントラクトアドレスです。(私のではない)

2 Copy:

このボタンを押すとコントラクトアドレスをコピーできます。

3 View QR Code:

ここを押すとQRコードを表示できます。このページに飛べます。

4 Other chains(命名):

このアドレスが持っている他のPolygonやらBSCやらのチェーンを表示してくれます。ただし、全てではないです。マイナーなチェーンは表示しません。

5 Owner:

このラベルはアドレスの所有者を示しています。この例の場合はBinanceですね。超有名な取引所で、そういうところならワンチャン名前が乗っています。しかし私の個人のページごときの場合、この表示はそもそも存在しません。

6 Public Label:

Exchangeのほかに、Old ContractやらDeFiやら、Stablecoinなどと表示されます。詳しくはこちら↓。個人アドレスには無いかと思います。

https://etherscan.io/labelcloud

7 Pubic Note:

このアドレスに関する重要なお知らせが表示されるらしいです。活動停止とか

8 Public Name Tag:

このアドレスにつけられたName Tagですが、個人ページにはあまり関係ありません。

9 ETH Balance:

こちらは現在のコントラクトアドレスに入っているイーサリアム(時価)の残高が入っています。イーサリアムだけですので、他のイーサリアムチェーン上のコインを持っていても計算に入っていません

10 Ether Value:

9のイーサリアムをUSD換算した計算値です。

11 Token:

このアドレスに存在するすべてのトークンをUSDに換算した場合の合計残高です。(200億ドル(100円/1ドル計算で2兆円)持ってる!ドヒャー!

またTokenの右側にあるした矢印ボタンを押すとそれぞれのトークンの内訳を表示してくれます。これ見るとめっちゃCOCOSなるトークンをお持ちですね。

 しかし、このTokenの価格、たまに明らかにおかしい場合があります。例えば取引できない詐欺トークンらしいものの価格が含められていたり、実際の取引所価格とかけ離れてたりなど。参考までに私のアドレスには記事執筆時点で20億ドルあることになっています。(知らんうちにハードフォークしたらしいHokkaido InuがEtherScan上では恐ろしい価格になっているのが原因です。ですが取引所で交換しようとすると1500円ぐらいにしかなりません)

12 View Expanded ERC-20 Token Holding: ここをクリックすると、アドレスの持つすべてのトークンの拡大表示した別ページに移動します。

 

Bの部分

続いてBの部分です。こちらは基本ログインしている場合に関係している表示でなので、さらっといきます。

1 Private Name Tag:

この部分はログインして自分で名前をつけた場合に表示できます。バイナンスに「暗号通貨界の黒幕」とか名前つけたらここに表示されます。自分にしか表示されません。

2 Login後に見れるらしい情報:

Contract Creator、Token Tracker、View Dapp Page、Add Address To Watch Listなどが見れるそうですが、解説は省きます。

3 Validate Account Balance:

ここをクリックするとEthValidateなるページに飛びます。現時点で使い方はよくわかりまへんが、USD価格以外にユーロ価格、BTC価格なども表示してくれていますね。

5 Print Account Report:

選択した時間範囲のデータ印刷画面に移行して、PDFを出力してくれます。トークンの計算はおかしい場合がありますが、かなり見やすいです確定申告時には保存しておく必要があるかと思います。

6 Check Previous Balance:

指定した時点での価格など見る機能を使うボタンです。でも大したことないです

7 Update Name Tag:

このアドレスこいつのじゃね?みたいなのを提案する場合に使うボタンです。多分ほとんどの人には無縁。

8 Submit Label:

7のラベルバージョン。

9 Report/Flag Address:

通報したい場合に使うものです。詐欺とか、こいつにハッキングされました的なボタン。だけど通報したからってどうなるんでしょうね?

10 Token Approval(命名):

分散型取引所である暗号通貨を取引する場合、そもそも取引許可(Approve)というものを出します。ここでは現在許可しているトークンを調べることができます。

 

ちなみに、DeFiをやっているといつの間にかウォレットに知らないトークンが振り込まれていることがあります。

俗にいうAirDropかと思うかもしれませんが、それを交換しようとすると財布の中身が全部抜かれる場合があるそうです。

私も詳しくはないですが、それはそのトークンをApproveしているためと予想されます。

DeFiは「わーい!10億円のAirdropだぁ!」とか純粋無垢な状態で交換し始めるようではやっていけない魔界であることを肝に命じておきましょう。

また、Approveしたトークンは後でrevokeといって取引許可を消すことができますので、revokeはこまめにやりましょう。

revokeの方法はググりましょう。

 

Cの部分

続いてCです。

事前知識として、トランズアクション(Transaction)とは、Ethereumベースの資産をあるアドレスから別のアドレスに移動させる行為のことです。

Ethereumチェーン上では基本的に3種類のトランズアクションが実行可能です。

1 Normal Transaction

まあコントラクトアドレス同士の取引だと思ってください。正確にはEOA(Externally Owned Address)同士の取引らしいです。

2 Internal Transaction

スマートコントラクトを介した転送などです。

3 Token Transfer

トークンの取引です。トークンタイプに応じてERC20, ERC721, ERC1141などがあります。

 

1 Transactions:

アドレスに関わる全ての入出庫を時系列順に表示してくれます。

2 Internal Txns:

Internal Txnsはアドレスの内部取引を表示してくれます。

3 Erc20 Token Txns:

ERC-20トークンの取引履歴ですね。

4 Erc721 Token Txns:

ERC-721トークンの取引履歴ですね。

5 Erc1155 Token Txns:

ERC-1155トークンの取引履歴ですね。

6 Analytics:

統計ページです。個人的にはあんまり参考にならない。

7 Comments:

このコントラクトアドレスの誰でも見れるコメントページに移動します。前に見たコメントは「こいつ詐欺師だ!」みたいなコメントでしたが、そんなどこもかしこも殺伐としているわけではないと思います。個人ページにコメントがあるのは稀な印象。

 

さて、続いてはCの下部分についてです。

ここの解説ページが公式にないって時点でこの記事を書こうと思っていましたので、怒りを原動力に調べながら記述していきます。

f:id:t3akt:20211203135725p:plain

1 Txn Hash:

 Transaction Hashの略です。取引の参照番号ですね。何かしらの交換やら暗号通貨が動いたりしたとき、66文字のTransaction Hashが割り当てられます。クリックするとさらに詳しく内容が見られます。

 ちなみに左側に赤いマークや、黄土色のマークがついてることがあります。これらは取引の失敗なりエラーなりを意味しています。

2 Method:

 Transfer、Swap Exact Token、Approveなど取引の種類が表示されます。

3 Block:

 チェーンの何番目の取引かという意味です。Block Heightとしても知られてます。

4 Age:

 どのくらい前の取引かです。

5 From:

 そのTransactionを実行したコントラクトアドレスが表示されます。

 ちなみに、右側にINというのは相手側がこちらのアドレスに何かを行ったという意味です。たいていの個人アドレスの場合、ここはOUTばっかりだと思います。

6 To:

 どの取引所や相手と交換を行ったかという情報が出ています。

画面に見切れてますが7 Valueと8 Txn Feeについて

7 Value:

取引をイーサリアムあたりの価格にざっくり換算した金額が表示されます。

8 Txn Fee:

 Transactiion Fee = 取引手数料です。Gas Price × Gas Usedという計算式から成り立ちます。ガス価格の計算にはGWEIという単位が用いられます。

 1GWEIは0.000000001 ETH(10^-9=10億分の1)で計算されます。

 ちなみに写ってませんが、画面上の数字の単位はETHになります。

9 左側の目のマーク

 押すとちょっと詳しい情報がでますが、Txn Hashを押したほうがしっかりとした情報が出ます。

 

 その他Internal TransactionやらERC20 Tokenなどの画面はほとんど同じなので説明を省略します。

 

さらにTxn Hashを押した画面についてです。

f:id:t3akt:20211203143633p:plain

1 矢印ボタン

 前後の取引をみるボタンです。

2 Overview, State, Commentsボタン

 Overviewはまさにこの画面、Stateを押すとさらに細かく誰がマイニングしたなどの情報も入っているものが見られます。

 Stateは詳しく書きません。

 Commentsはその取引にみんなが見れるコメントを残す場合に使います。

3-5 これまでの説明どおり。

6 Timestamp:

 取引時刻(UTC)です。

7-8 これまでの説明どおり。

9 Value:

 交換されたイーサリアム価格(USD価格)です。クリックすると履歴が見れる場合もあるらしい?

10-11  これまでの説明どおり。

12

 押せばガス価格の細かい設定が見られますが、ガス関係の説明は省きます。

Txn Typeについて: わがんね!だれか教えてほしいですね...

Nonceについて:

 イーサリアムのパラメータの一つです。トランズアクションを重ねるごとにNonceは0,1,2...と増えます。

Positionについて:

 ブロック内の採掘番号のことらしいですが、よくわからん。

13 Private Note:

 ログインしたら自分用にメモ残せます。

 

Webはひとまずはこんなところでしょうか。

 

 

CSVについて

Transactionなり、Internal Transaction、ERC20 TokenなどにはExport CSVというボタンがついておりまして、一定期間の取引をダウンロードできるようになっています。

しかしですね、CSVでダウンロードしたファイルの詳細が公式のどのページにも載っていないのです...(私だけ?)。

そこでそれを調べます。

以降さらにマニアック。

ちなみに既出の項目は省略します。

 

TransactionのCSVファイル

UnixTimestamp: Unix時間です。

DateTime: ご親切にUTC時間に変換してくれています。日本時間ではないので注意

Value_IN(ETH): アドレスに入ってきたETH総額(単位はETH)。小数点的にはっきりいって目安にしかなりません(後述)。

Value_OUT(ETH): アドレスから出たETH総額(単位はETH)。小数点的にはっきりいって目安にしかなりません(後述)

CurrentValue @ $4453.58 /Eth: $の部分はCSVダウンロード時の価格のようです。単位はUSD(米ドル)。しかしですね、これはあくまで現在の価格です。先程の「Value_IN(ETH):」に「$4453.58」を掛けてこの値は算出されています。つまり、はっきりいって目安にしかなりません。取引時点の価格は3つぐらい後の「Historical $Price/Eth」を使えそうですが、まあ後述します。

TxnFee(ETH): 交換当時のガス価格をイーサリアム換算したものです。こちらはある意味信用できます

TxnFee(USD): 交換当時のガス価格を米ドル換算したものです。ただし、現時点でのETH/USD価格に基づいた変換です

Historical $Price/Eth: 過去のイーサリアム価格です。しかし、1日毎の価格です。つまり厳密には取引時点の価格を反映していません。別に1日ごとの価格でいいやって人は、同時にTxnFee(ETH)の価格も信用できることになります。しかし、仮想通貨なんて1日で2倍の値段になることはザラにあります。ETHですら10%動く日もあるでしょう。厳密な計算の場合は取引時点のETH価格が必要になります

つまり、EtherScanのTransactionのCSVファイルだけをダウンロードしても他のトークンの正確な取引額はわかりません。ただし、ETH自体を取引している場合は少し信頼できると思います(その場合取引時点のETH価格で計算されていないことに注意してください)。

Internal TransactionのCSVファイルも同様です(説明略)。

Status、ErrCode、Methodあたりはよくわからんので省きます。

 

ERC-20 TokenやらのCSVファイル

Value: 交換したトークンの量が表示されています。

かなり正確そうに見えますよね?ですが、(現時点で)実は小数点前後含めて15桁までのデータで、15桁を超える小数点以下の数字は省略されているようです。

桁数の多い取引についてtransaction hashをEtherScanで調べてみると、より細かい小数点まで表示されています(Tokens Transferred部分。ただしここが常に1satoshiまで表示しているのかは不明。Logsには正確な数字が落ちてるようです)。

つまりERC-20 tokenのCSVファイルのValueで計算しても正確な計算結果にはなりません。しかし、ほぼ正確にはなるでしょう。実際確定申告などの計算に用いたとして、計算結果にわずかに誤差があることになります。しかしよほど巨額を扱わない限りはまあ無視できる程度の誤差かと思います。

またこのファイルの欠点として、このトークンの時価が載っていません。先程のtransactionファイルにも正確なトークンの時価はありませんでした。

つまりEtherScanのCSVファイルだけでは、いわゆるアルトコイン時価やある時点の総額の正確な計算はできないということになりますです。

ただし、目安で良いなら、TransactionのCSVの"Value_IN(ETH)"と、ERC20 TokenのCSVの"Value"を使って計算しましょう。

 

では他に正確に計算する方法があるのかなと、APIをちょっと触ってみました。

結論から言えば、割と魔界です。立ち入らない方が良いと思いました。

 

Etherscan API

https://docs.etherscan.io/api-endpoints/accounts

はじめに、触った人ならわかりますが、valueなどの値が明らかにおかしいです。それについては10^18で割れば良いらしいです。下記参照

erc 20 - Etherscan API no decimals separator - Ethereum Stack Exchange

そしてやりたいこと次第では他のAPIが良いかもしれません。

”ethexplorer.io API.”なるものがあるらしいです。

erc 20 - Etherscan API - Get all token balances - Ethereum Stack Exchange

どうなんだろう?

 

そして公式ページぐるぐるしても、APIで取ってくるJSONの数字についてきちんと解説しているページがありません。

つまり、外部ページをぐぐりまくるしかないと思います。

そして調べているうちに他のAPIのがいいんじゃないかとかの声もあったりで面倒になり・・・、私はここで力尽きました。

以下残骸

 

Get a list of 'Normal' Transactions By Address

gas: ??????

gasPrice: ??????

cumulativeGasUsed: ??????

gasUsed: ??????

confirmations:  ??????

 

Get a list of 'ERC20 - Token Transfer Events' by Address

value:  ?????? 10^18で割って正確になる?

tokenDecimal:  ??????

transactionIndex:  ??????

 

あとがき

というわけでEtherscanの見方について今回は調べました。

結論から言えば、使いこなせていないだけなのか、特にCSVファイルは正確な計算の役には立ちませんね

ぱっと見で理解したかったら"Print Account Report"が一番良さげかな?

正確なデータを取ってくるならスクレイピングするのが良さそうです。

追記:EtherScan.ioはScraping禁止っぽいですね。

正確なデータをかんたんにはとれないサイト

https://etherscan.io/terms

 

また、まだ個人的にはBSCscan、PolygonScanなど他のチェーンをはじめ、AvalancheやらSolana chainでもどうなのかという疑問が残っております。

いずれは自動化したいから調べてみるけど、だるすぎますね・・・

 

最後に、イーサリアムとBSCチェーンのDeFiしか扱っていない人はこちらのKoinlyがおすすめです。

koinly.io

別に回しもんじゃないですが、アドレス打ち込むだけでよいのでラクチンです。

でもKoinlyじゃPolygonやらAvalancheはとれないんよなぁ・・・

 

ひとまず本日はこのぐらいで、せばな