確定申告の季節がやってきています。私は去年より草コインのマイニングを続けており、取得した草コインの総額は微々たるものですが、そうはいっても申告をしなければなりません。
そのためにはウォレットの入出金履歴をまとめる必要がありますが、多い場合は1日につき50件くらいの記録がありますので、単純計算で1年で18,000件ほどになります。とても手動で計算できる数ではありません。何かの計算ツールを使わなければ。
個人的には Cryptact を使うのが一番手軽だと思いますが、諸事情によりGoogleスプレッドシートを使ってみましたので、そのやり方を共有します。
目次
用意するもの
ここで紹介する方法では、下記のものが必要になります。
- 計算したい草コインのウォレット(ここではBellcoinを使います)
- Googleスプレッドシート
- GoinGeckoの過去の価格情報
- 正規表現が使える、適当なテキストエディタ(ここではSublime Textを使います)
ウォレットの入出金履歴をエクスポートする
ここではBellcoinのウォレットを例に紹介します。他のウォレットでもほとんど操作は同じだと思います。
ウォレットの [取引] タブを開き、右下の [エクスポート] ボタンからすべての取引履歴をCSVファイルとしてエクスポートします。
エクスポートされたCSVファイルに適当な名前をつけます。ここでは「Bellcoin 2019.csv」という名前にしました。
CSVファイルをGoogleドライブへアップロードする
ウォレットからエクスポートしたCSVファイル(「Bellcoin 2019.csv」)をGoogleドライブへアップロードします。
アップロードされたCSVファイルをダブルクリックすると、下図のようなプレビュー画面になります。上部の [Googleスプレッドシートで開く] を選択します。
下図のように、Googleスプレッドシートの画面にCSVの内容が表示されます。
注意点
Googleスプレッドシートの特徴として注意すべきことは、Googleスプレッドシートで編集する内容は元のCSVファイルとは別のファイルとして保存される、ということです。別の言い方をすると、CSVを直接編集するのではなく、CSVから変換された「Googleスプレッドシート形式」のファイルを編集することになります。
ファイルの一覧には、下図のように元のCSVと変換後の「Googleスプレッドシート形式」のファイルの2つが表示されます。
CoinGeckoで過去の価格情報を入手する
CoinGeckoは、仮想通貨の時価総額や価格など、さまざまな情報をチェックできる便利なサービスです。
Bellcoinに関する情報は、こちらのページでまとめられています。
https://www.coingecko.com/ja/%E3%82%B3%E3%82%A4%E3%83%B3/bellcoin
データをダウンロードする
CoinGeckoのBellcoinページを開いたら、[過去のデータ] タブを選択します。
これまでの毎日の価格が表示されますが、デフォルトで米ドル表示になります。日本円に変更するには、URLの「historical_data/」の後ろの「usd」の部分を「jpy」に書き換えます。
通貨の単位が日本円になったことを確認し、画面の下にある「エクスポートの形式」からダウンロードします。Excel形式でもCSV形式でも構いません。
Googleスプレッドシートに読み込む
CoinGeckoからダウンロードした価格履歴のファイルをGoogleスプレッドシートで開き、内容をすべて選択し、コピーします。
ウォレットの履歴データに挿入する
ウォレットの履歴データのスプレッドシート(「Bellcoin 2019」)にCoinGeckoの価格履歴を貼り付けるためのタブを新しく作成します。ここでは「CoinGecko」という名前に変更します。
新しく作成した「CoinGecko」タブに、上記でコピーした内容を貼り付けます。
日付だけの列を作成する
ウォレットの履歴データとCoinGeckoの価格履歴データとでは、次のように日時の書式が異なります。
- 2019-12-25T06:52:25 (ウォレットのデータ)
- 2019-12-25 00:00:00 UTC (CoinGeckoのデータ)
このままでは単純な比較・参照がしにくいので、両方のタブに「日付だけ」の列を作成します。
ウォレットの履歴データのタブ
「日付」列をすべて選択してコピーします。
テキストエディターに貼り付けます。(ここでは例としてSublime Textを使っていますが、正規表現が使用できるものなら何でもOKです。)
貼り付けた日付データから、(1)「T」以降の時刻の部分を削除し、(2) 日付の区切り文字であるハイフンをスラッシュに置き換えます。
正規表現を使うと (1) と (2) を同時に実行できるので便利です。
置換前の欄には (\d{4})-(\d{2})-(\d{2})T.+
を、置換後の欄には $1/$2/$3
を入力し、「すべて置換する (Replace All)」を実行します。
置換を実行すると、下図のように、スラッシュ記号で区切られた年月日だけになります。置換後の内容をすべてを選択してコピーします。
スプレッドシートの「日付」列の右側に新しい列を作成し、コピーしたデータを貼り付け、見出しを「日付だけ」に変更します。
日本円での価格を表示する
さて、いよいよ、ウォレットの取引履歴データとCoinGeckoの価格履歴データを連結させ、ウォレットの取引記録1件1件が日本円でいくらに相当するのかを確認できるようにします。
取引履歴データのタブ(「Bellcoin 2019」)を開きます。
列の掃除
内容をスッキリさせるため、ここでは次の列を削除しますが、念の為に残しておきたい方は別タブにコピーしておくと良いと思います。
- 検証済み
- タイプ
- アドレス
- ID
金額表示用の列の作成
その日の 1 BELL の日本円での価格(単価)を表示する「1 BEEL 価格」列と、取得した(あるいは消費した)BELL の日本円での総額を表示する「総額 (JPY)」列を作成します。
同日の価格を参照する
「1 BEEL 価格」列の2行目に次の式を挿入します。
=vlookup(B2,importrange("ドキュメントのID", "CoinGecko!B1:E300"), 2, false)
ドキュメントのIDとは、URLの「/d/」から「/edit」の間の文字列のことです。
この式の、「IDで指定されたドキュメントの「CoinGecko」タブのB1セルからE300セルまでの範囲の中から、B2セルの値(「2020/02/25」)と同じものを検索し、マッチする行の、指定された範囲(BからE列)の左から2番目の列(「price」)の値を表示しなさい」という意味になります。
式を挿入すると「Loading」と表示された後にアクセスを許可するためのダイアログが表示されるので、アクセスを許可します。
「CoinGecko」タブから取得されたBELLの価格が表示されます。
「総額 (BELL)」の列と掛け算すれば日本円での総額を得られます。
後は「1 BELL 価格」と「総額 (JPY)」列を選択し、右下の青い■を下へドラッグするだけです。
これでウォレットの入出金記録のすべてに日本円での相当額を対応させることができました。やったね!
結果発表
それでは、私が2019年に取得したBELLと日本円での総額を発表します。
- 取得コイン数 : 12207.31642 BELL
- 日本円での総額 : 2116.210946 円
たったの 2,116円 にしかなりませんでした。
ここには自宅マイニングPC代、電気代、VPSレンタル代などの諸経費がかかっています。昨年の秋に構築した自宅マイニングPCには10万円くらい注ぎました。
つまりは…大赤字ですw
取得したコインにはRainやFaucetで得たものも含まれていますので、それらを除外した、マイニングによる純粋な取得数はもっと少ないはずです。経費は変わらず、取得額はもっと少ないのですから、実際は赤字が嵩んでいることになります。
次の草コインブームが来て良い場所で売り抜けられない限り、黒字にするのはかなり難しそうです。
草コインのマイニングは、テックな宝くじだと思ってほどほどに取り組むくらいが良いと思います。