こんにちは、わえ(@wae_lib)です!

NFTの購入や売買をたくさんして利益が出たんだけど、確定申告で損益計算しなきゃ〜(汗)でもこれまで売買履歴をメモしてないし、どうしたらいいんだろう



Gtaxやcryptact(クリプタクト)といったツールを利用すればできるね



おおー、そうなんだ!検索検索…。うーん、無料だと取引件数に制限があるのかー。たくさん取引したから有料版を使わないと行けなさそうだなあ。でも無料でなんとかできないかな?



無料でやるなら、○○scanというサイトを見て損益計算できるよ。例えばイーサリアムチェーンなら、Etherscanを見ればいいね。Etherscanのページの検索欄に、自分のウォレットアドレスを入れて検索してみて!



へぇー、そうなんだ!どれどれ、Etherscanで自分のウォレットを検索・・・っと。うーん、見方がよくわからないよ(涙)このページを見て損益計算するのは難しそう・・・



そうかそうか。そんな人のために、Etherscanの履歴ファイルからできるだけ簡単に損益計算できるツールを作ったよ!



ええっ!!?それは使ってみたい!!



わたしがメインでメタマスクを利用してるから、メタマスクを例に解説するね!注意点もあるからよく読んでね。
この記事では、NFT売買の損益計算を、NFT売買が盛んなイーサリアムチェーンと、メタマスクを例に解説します。
Etherscanからダウンロードできるファイルと、Googleスプレッドシートを使用します。
いすむさん作成のスプレッドシート「【NFT/仮想通貨】税金計算表」をダウンロード



おお、こんな神記事があったのか!早速ダウンロードしてみよう



下のような画像が表示されていれば準備完了だ!バージョンはダウンロードする時期によって変わってるかもしれないね。ちなみに売買履歴などを入力していくのは「取引一覧」シートだぞ。この欄に売買履歴などをすべて入力すれば、あとは自動で全損益とガス代(手数料)が計算されるんだ


Etherscanの履歴をまとめるための新しいスプレッドシートを作成



スプレッドシートをダウンロードできたよ!



「取引一覧」シートに売買履歴を記入していくのか。うーん、項目がたくさんあって、なんだか大変そう…



この項目をできるだけ簡単に埋めていくというのが、本記事の一番の肝だぞ!そのために新たにEtherscanの履歴をまとめるスプレッドシートを作成しよう
Googleスプレッドシートの新規作成手順
Googleのトップページを開き、画像の右上の部分をクリックします。


項目の中から「スプレッドシート」を選びます。


「新しいスプレッドシートを作成」で「空白」を選択します。


スプレッドシートが新規作成されます。名前を「メタマスク 2022」のように、わかりやすい名前に変更しておくと良いでしょう。


Etherscanから3つの取引履歴ファイルをダウンロード



新しいスプレッドシートを作成したよ!次はどうすればいいの?



Etherscanから3つの取引履歴ファイルをダウンロードするよ
まずEtherscanに移動します。
検索欄に自身のメタマスクのアドレス(0xから始まる42桁の英数字)を入力して検索します。


以下のような画面が表示されます。


Transactionsの履歴ファイルをダウンロード
Transactionsの履歴ファイルをダウンロードしましょう。先ほどの画面で、Transactionsのタブを開きます。


下にスクロールして、右下に「CSV Export」があるので、クリックします。


Download Dataの画面が表示されたら、期間を指定して、reCAPTCHAの認証をしたあとに「Download」を押します。例えば2022年分の収益計算をする場合は、期間は「01/01/2022」から「12/31/2022」とします。


これでCSVファイルがダウンロードされればOKです。
NFT TransfersとInternal Transactionsの履歴ファイルをダウンロード
Transactions履歴ファイルのダウンロードと同様に、NFT Transfersの履歴ファイルをダウンロードしましょう。
Etherscanの画面でNFT Transfersタブを選択して下にスクロールすると、先ほどと同様「CSV Export」のボタンがあるので、クリックします。
Transactions履歴ファイルのダウンロード時と同じ期間を指定して、reCAPTCHAの認証を行い「Download」ボタンを押せば、CSVファイルがダウンロードされますよ。
Internal Transactionsの履歴ファイル(CSVファイル)も同様にしてダウンロードできます。
スプレッドシートに取引履歴ファイルのデータをインポート



3つの取引履歴ファイルをダウンロードできたよ!



次は先ほど新しく作成したスプレッドシートに、取引履歴のデータを取り込んでいくよ
Transactions履歴データのインポート
まずTransactions履歴ファイルからデータを取り込みます。
スプレッドシートに新しく「Transactions」シートを作成しましょう。
デフォルトで「シート1」シートが作成されているので、名前の変更をして「Transactions」にします。名前の変更をするには、下の画像のように「シート1」の横のプルダウンマークを押して、「名前の変更」を押しましょう。


「Transactions」シートができたら、ツールバーの「ファイル」を押して、「インポート」をクリックします。


「アップロード」タブで、先ほどダウンロードしたTransactions履歴ファイルをドラッグ&ドロップします。


インポート場所を「現在のシートに追加する」にし、「データをインポート」を押しましょう。


下画像のようになればOKです!


NFT Transfers履歴・Internal Transactions履歴データのインポート
続いてNFT Transfers履歴も同様にインポートします。
スプレッドシートの左下の「+」マークを押すと、新しいシートが作成されるので押しましょう。「シート2」という名前のシートが作成されるので、名前の変更で「NFT Transfers」にしましょう。


「ファイル」→「インポート」を押して、アップロードタブでNFT Transfers履歴ファイルをドラッグ&ドロップします。インポート場所を「現在のシートに追加する」にして、「データをインポート」を押しましょう。
以下の画像のようになればOKです。


Internal Transactions履歴データも同様にしてインポートします。シート名は「Internal Transactions」としました。以下の画像のようになればOKです。


イーサリアムの年間価格推移をコピペ



取引履歴のデータインポートもできた!



うんうん、いい調子!今度は損益計算に必要なイーサリアムの年間価格推移を新しいシートにコピペするよ
ここではCoinMarketCapからイーサリアムの年間価格推移のデータを取得します。
CoinMarketCapのイーサリアムのページにアクセスしましょう。
「履歴データ」タブをクリックします。


「Date Range」のプルダウンで、税金計算する年の期間を指定します。2022年なら、2022年1月1日から2022年12月31日までを指定します。「続行」を押して、期間を確定させましょう。


ページをスクロールダウンしていきます。ページがすべて読み込めていない場合、指定した期間の最初の日付が出てくるまで読み込んでスクロールダウンしましょう。例えば2022年の場合は「Jan 01, 2022」が出てくるまでスクロールダウンします。


「Jan 01, 2022」の行から一番上の「日付」の行までマウスドラッグで選択し、コピーします。


スプレッドシートで「ETH」シートを作成して、A1セルを選択した状態でペーストします。
下画像のようになればOKです。


この記事では、上画像の終値をもとに損益計算を行います。
データの表示の変更
後々のために、「日付」列のデータ表示を変更します。
まず「日付」を「Dec 31, 2022」という表示から「2022/12/31」という表示に変更しましょう。スプレッドシートのオートフィル機能を利用します。
「A2」列を一旦削除して、「2022/12/31」と記入します。「A3」列も削除して、「2022/12/30」と記入しましょう。
次にA2とA3列を選択し、選択部分の右下の四角になっている部分を、データのある最終行まで下にドラッグします。


最終行付近のA列が下画像のようになればOKです!


NFT売買や送金・着金履歴の整理



イーサリアムの年間価格推移のシートも作成できたよ!



ここまでできたら、Transactionsなどの履歴をもとに、NFT売買や送金・着金履歴を整理するぞ。最初にダウンロードした、いすむさんのスプレッドシートの「取引履歴」の表を埋めるための整理だよ
「Transactions」シートのデータ整理
まずは「Transactions」シートの内容を整理します。
整理内容は以下の通り。
- R列からAC列:ガス代手数料または着金に関する内容をまとめる
- AD列からAN列:NFT購入または送金に関する内容をまとめる
わたしが作成したこちらのスプレッドシートの「Transactions」シートのセルR2からセルAR2には、このまとめを簡単に実施するための関数が用意されています。
このスプレッドシートの、セルR1からセルAR2を選択してコピーしましょう。


コピーしたものを、自身で作成したスプレッドシートの「Transactions」シートに、セルR1を選択した状態でペーストします。
セルR2(セルR1ではないです!!)からセルAR2を選択し直し、セルAR2の右下の四角マークを下にドラッグして、セルの内容を下の行にコピーしましょう。コピーはTransactionsのデータがある行まで行います。


以下の画像のようになればOKです!


わたしが作成したスプレッドシートの関数では、P列のMethodの記載内容をもとに、U列とAG列の内容を決めています。例えばP列に「Set Approval For All」と書かれていたら、U列は「承認手数料」となります。
U列やAG列に書かれている関数を見てもらえばわかりますが、P列のMethod内に想定していない文字列が現れる場合には、予期せずU列やAG列が空白になることがあります。この場合はMethod列を自身で書き直す必要があります。
例えばわたしの場合、P列のMethodに0xから始まる英数字のものがありました(下画像)。


想定していない文字列であるために、U列が空白となっています。このような場合、該当するトランザクションの内容を調べて、P列を書き換えます。
該当トランザクションを詳しく見るには、同じ行のA列のTxhash(0xから始まる英数字)をコピーして、Etherscanの検索にかけましょう。
例えば以下の画像の内容が表示されます。


この場合、Transaction Actionのところに「Mint 5 of Egyptian God」とあるので、Egyptian Godを5ミントしたという内容でした。
この例では、P列のMethod部分を「Mint」と書き直せば、U列に「NFTミント手数料」、AG列に「NFT(Egyptian Godz)1次購入」と正しく表示されます。
上に書いたように、G列内に空白のセルが残ってしまうことがあります。G列内で空白があると損益計算が正しくできないので、上記を参考に全て埋まるように編集しましょう。
「Internal Transactions」シートのデータ整理
続いて「Internal Transactions」シートのデータを整理します。
整理内容は以下の通り。
- S列からAC列:NFT売却に関する内容をまとめる
わたしが作成したこちらのスプレッドシートの、「Internal Transactions」シートのセルS1からセルAF2に、NFT売却内容をまとめるための関数が記載されています。
このセルS1からセルAF2を選択してコピーしましょう。


そして自身が作成したスプレッドシートの「Internal Transactions」シートに、セルS1を選択した状態でペーストします。
「Transactions」シートで行ったときと同様に、セルS2(セルS1でない!)からセルAF2を選択し直し、右下の四角マークを下にドラッグして、データの下端まで内容をコピーします。
うまくいけば、以下の画像のようになります。何を売って、どれだけ利益が出たかがわかりますね。損益はAF列に表示されます。


AF列に「#N/A」と表示されることがあります。これは、もらったNFTを売却する場合など、自身で購入せずにNFTを手に入れて、売却する場合に該当します。
「#N/A」のままだと、損益計算に支障があるので、すべて手動で修正します。もらったNFTの売却時価格から、入手時価格を引いた値段を記入しましょう。
もらったNFTが入手時に安く、売ったときに大きく値上がりしていた場合は、AA列の「IN価格」をそのまま記入しても問題ないかもしれません。
まれに、AF列の損益が正しくないことがあります。少し難しい内容ですが、詳しく解説します。
AF列のセルには、次のような関数が書かれています。
VLOOKUP(AE2, Transactions!$AO$2:$AR$1000, 4, FALSE)
このVLOOKUP関数では、「Internal Transactions」シートのある行のAE列の「NFT名」が、「Transactions」シートのAO列の「NFT名」に現れるか否かを検索し、現れた場合はその「最初の」行のAR列の「取得単価」の値を返します。
ここでは「最初の」というのが重要です。
例えば次の場合は、問題なく正確に損益を計算できます。
- 同じ年内に「Egyptian Godz」というNFTを、一度のトランザクションでミントした
この場合「Transactions」シートのAO列で、「Egyptian Godz」に一致する行は一つのみです。取得単価は同じ行のAR列の値ですね。
次の場合も問題なく損益を計算できます。
- 同じ年内に「Best Waifu Collection」というNFTを、複数のトランザクションで、1枚あたり同じ価格でミントした
この場合「Transactions」シートのAO列で「Best Waifu Collection」に一致する行は複数ありますが、1枚あたりが全て同じ価格での購入ですので、AR列の取得単価はどの一致行でも同じです。
次の場合、損益が正確に計算できない可能性があります。
- 同じ年内に「ANESIDORA」というNFTを、プレセールでフリーミントで2枚購入し、早押しセールで1枚あたり0.002ETHで2枚購入した
この場合「Transactions」シートのAO列で「ANESIDORA」に一致する行は複数あり、なおかつ一致行のAR列の値(取得単価)が異なります。
このような場合、「Internal Transactions」シートのAF列のVLOOKUP関数は、フリーミントでの取得単価=0円を返します。しかし、損益計算時の値としては早押しセール時の価格を使用するべき場合もあるでしょう。
このように損益計算が若干正確でないことがあるので、念の為各項目の損益を目で見て確認して、正確でない場合は手動で修正することをおすすめします。
整理した内容を「【NFT/仮想通貨】税金計算表」に転記



ふう、履歴の整理もできた!



ここまでできたらあともう一息!あとは整理した内容を、最初にダウンロードした、いすむさん作のスプレッドシートに転記しよう
「取引一覧」シートへの転記
まず、自身で作成したスプレッドシートの「Transactions」シートのR列からAC列(2行目以降)を選択して、コピーします。


「【NFT/仮想通貨】税金計算表」のスプレッドシートの「取引一覧」シートを開き、A列の貼り付ける行を選択します。
右クリックを押し、「特殊貼り付け」→「値のみ貼り付け」を押しましょう。


同様にして、「Transactions」シートのAD列からAN列(2行目以降)を選択して、コピーします。
「【NFT/仮想通貨】税金計算表」のスプレッドシートの「取引一覧」シートの続きの行に、上記と同様に貼り付けましょう。
さらに「Internal Transactions」シートのS列からAC列(2行目以降)を選択してコピーし、「取引一覧」シートに同様に貼り付けます。
取引数が多いと、「【NFT/仮想通貨】税金計算表」の「取引一覧」シートの行が足りないことがあります。その場合、スプレッドシートの行を追加する必要があります。
スプレッドシートで複数行を一度に追加するには、複数行を選択した状態で、ツールバーの「挿入」→「行」→「下に○行追加」を押しましょう。


ちなみにスプレッドシートの行の挿入にはショートカットがあります。OSによって異なりますよ。
Macの場合は「option」+「control」+「R」→「I」→「B」で下に行を挿入できます。「option」と「control」を押したまま、RとIとBを連打すれば、効率的に行を挿入できるでしょう。
「所有NFT一覧」シートへの転記
続いてNFTの売買損益を、「【NFT/仮想通貨】税金計算表」のスプレッドシートの「所有NFT一覧」シートに転記します。
「Internal Transactions」のAF列にある損益を選択し、コピーしましょう。


「所有NFT一覧」シートを開いて、内容が「NFT(○○)売却」の一番最初の行のM列(損益)を選択し、右クリック後、「特殊貼り付け」→「値のみ貼り付け」を押します。


損益とガス代経費をチェックする



税金計算表に転記もできたよ!



後は損益とガス代経費をチェックするだけ!これで確定申告時の損益と経費が計算完了だ!
「【NFT/仮想通貨】税金計算表」のスプレッドシートの「取引一覧」シートを下にスクロールしていくと、下の画像のようなセルがあります。
トークン列に「ETH」(下図ではセルC232)、チェーン/取引所列に「Ethereum」(下図ではセルD232)と記入すると、右側に自動的に数値が表示されますよ。


NFTの損益は、下の表の「③NFT売買の収益」、ガス代経費は右上の赤いセルの「合計ガス代」のところに表示されています。これらの値が、確定申告時に入力する値となります。
まとめ



うわ〜、ちょっと大変だったけど、自分で手入力するよりはるかに簡単にNFTの損益計算できちゃった!



今回はメタマスクのイーサリアムチェーンを例に解説したけど、同様のことは他のチェーンやウォレットについてもできるはず。ちょっと頑張れば無料で損益計算できちゃうね。



あとはbitFlyerやCoincheckなどの取引所での取引履歴や、STEPNなどのBCGの取引履歴もまとめなきゃな



…気が向いたら記事書くかもね〜
この記事が、あなたの確定申告時の参考になれば幸いです。
コメント