はじめに:DeFiとステーキング税務の複雑性への挑戦
分散型金融(DeFi)と仮想通貨のステーキングは、投資家にとって新たな機会を創出しましたが、それに伴い税務申告の複雑性も飛躍的に増大させました。数百、数千にも及ぶ取引、複数のプロトコル、異なるブロックチェーン、そして変動するトークン価格は、手作業での記録管理をほぼ不可能にします。米国の税務当局である内国歳入庁(IRS)は、仮想通貨を「資産」として明確に位置づけ、その売却、交換、報酬の受領などを課税イベントと定めています。この複雑な状況において、Pythonは強力なツールとして登場します。この記事では、Pythonを活用してDeFiおよびステーキングの取引履歴を効率的に整理し、正確な課税所得を計算するための具体的な手法と専門知識を、実践的な視点から詳細に解説します。
基礎知識:DeFi、ステーキング、そして米国税務の基本原則
DeFi(分散型金融)とは
DeFiは、中央集権的な仲介者を介さずに、ブロックチェーン上で金融サービスを提供するエコシステムです。代表的なDeFiプロトコルには以下のようなものがあります。
- DEX(分散型取引所): UniswapやSushiswapのように、ユーザーが直接トークンを交換できるプラットフォーム。
- レンディングプロトコル: AaveやCompoundのように、仮想通貨の貸し借りを行うプラットフォーム。利息収入や借り入れコストが発生します。
- 流動性プール(Liquidity Pools): ユーザーが2つ以上のトークンをプールに預け入れ、取引手数料やガバナンストークンなどの報酬を得る仕組み。
これらの活動は、それぞれ異なる税務上の影響を持ちます。
ステーキングとは
ステーキングは、プルーフ・オブ・ステーク(PoS)コンセンサスアルゴリズムを採用するブロックチェーンにおいて、ユーザーが自身の仮想通貨をネットワークにロック(預け入れる)することで、ネットワークのセキュリティと運用をサポートし、その対価として報酬を得る行為です。この報酬は通常、新たなトークンとして付与されます。代表的な例としては、Ethereum 2.0(Serenity)へのETHステーキングや、Solana、CardanoなどのPoSブロックチェーンでのステーキングがあります。
米国税務の基本原則
IRSは仮想通貨を「資産」(Property)として扱います。これは株式や不動産と同様の税務上の原則が適用されることを意味します。主な課税原則は以下の通りです。
- 購入: 仮想通貨の購入自体は課税イベントではありません。しかし、その購入価格(コストベース)は将来の売却や交換時のキャピタルゲイン/ロス計算に不可欠です。
- 売却/交換: 仮想通貨を法定通貨に売却したり、別の仮想通貨と交換したりする行為は課税イベントです。売却価格がコストベースを上回ればキャピタルゲイン、下回ればキャピタルロスが発生します。保有期間に応じて短期(1年以内)または長期(1年超)のキャピタルゲイン/ロスに分類されます。
- 報酬の受領: ステーキング報酬、DeFiプロトコルからの利息収入、流動性提供による手数料、エアドロップなどは、受領時にその時点の公正市場価格(Fair Market Value: FMV)に基づいて「普通所得」(Ordinary Income)として課税されます。これは給与所得と同様に扱われます。
- IRSガイダンス: IRSは、Notice 2014-21、Rev. Rul. 2019-24、そして頻繁に更新されるFAQを通じて仮想通貨の税務に関する指針を示しています。これらのガイダンスを常に確認し、最新の情報を把握することが不可欠です。
必要なデータポイント
正確な税務計算のためには、以下のデータが不可欠です。
- 取引タイプ: 購入、売却、交換、ステーキング報酬、LP報酬、貸付、借入、エアドロップなど。
- 日付と時刻: 各取引の正確なタイムスタンプ。
- 送受金アドレス: ウォレットアドレス、プロトコルアドレス。
- 通貨と数量: 取引された仮想通貨の種類と量。
- ガス代/手数料: 取引にかかった手数料(通常はネイティブトークンで支払われます)。
- 取引時の法定通貨(USD)換算レート: 各取引が発生した瞬間の仮想通貨のUSD価格。
- トランザクションハッシュ: ブロックチェーン上の取引を一意に識別するためのID。
詳細解説:PythonによるDeFi/ステーキング税務自動化
なぜPythonを使うのか
Pythonは、その汎用性、豊富なライブラリ、そして強力なデータ処理能力により、仮想通貨税務の複雑な課題を解決するための理想的なツールです。
- 自動化とスケーラビリティ: 数千のトランザクションを手動で処理する労力を排除し、新たな取引が発生するたびに自動的にデータを更新・処理できます。
- カスタマイズ性: 市販の税務ソフトウェアでは対応しきれない、特定のDeFiプロトコルや複雑な取引パターンにも柔軟に対応するカスタムスクリプトを開発できます。
- データ統合能力: 異なるブロックチェーンエクスプローラー、DeFiプロトコルAPI、価格データAPI、さらには手動でエクスポートしたCSVファイルなど、多様なデータソースを統合して一元的に処理できます。
- 監査対応: 全ての計算ロジックがコードとして可視化されるため、IRSからの問い合わせがあった際に、計算の根拠を明確に提示できます。
主要なPythonライブラリ
web3.py: Ethereumブロックチェーンと対話するための主要なライブラリ。ウォレットアドレスのトランザクション履歴を取得したり、スマートコントラクトのイベントを監視したりするのに使用します。pandas: データ操作と分析のためのデファクトスタンダード。CSVやAPIから取得したデータをデータフレームとして扱い、フィルタリング、結合、集計などの処理を効率的に行います。requests: Web APIからデータを取得するためのライブラリ。価格データAPIやブロックエクスプローラーAPIへのリクエストに使用します。csv/json: データの読み書きに必須。datetime: 日付と時刻の処理。特にタイムスタンプに基づいて過去の価格データを取得する際に重要です。
データ取得戦略
DeFiやステーキングの取引データは、一箇所にまとまっているわけではありません。複数のソースからデータを収集し、統合する必要があります。
- ブロックエクスプローラーAPI: Etherscan, BscScan, PolygonScanなど。特定のウォレットアドレスの入出金履歴、内部トランザクション、ERC-20トークンの転送履歴などを取得できます。APIキーの取得が必要です。
- DeFiプロトコル固有API: 一部の主要なDeFiプロトコル(例: Aave, Compound)は、ユーザーの貸付/借入履歴や報酬に関するAPIを提供している場合があります。
- 価格データAPI: CoinGecko APIやCoinMarketCap APIは、過去の仮想通貨価格を特定のタイムスタンプで取得するために不可欠です。IRSは取引発生時のFMVでの評価を要求しているため、正確な時間軸での価格データが重要です。
- 手動CSVエクスポート: 多くのCEX(中央集権型取引所)や一部のDeFiプラットフォームは、取引履歴をCSV形式でエクスポートする機能を提供しています。これらをPythonスクリプトに組み込み、他のデータと結合します。
トランザクションの種類と税務上の扱い
各トランザクションタイプを正確に識別し、適切な税務処理を適用することが、Pythonスクリプトの核心となります。
- 購入 (Purchase): 法定通貨で仮想通貨を購入した際。課税イベントではないが、コストベース(取得原価)の記録が必須。
- 売却/交換 (Sale/Swap): 仮想通貨を法定通貨に売却、または別の仮想通貨と交換した際。キャピタルゲイン/ロスが発生する課税イベント。売却(交換)時のUSD価値からコストベースを差し引いて計算します。
- ステーキング報酬 (Staking Rewards): ステーキングによって得られた新たなトークン。受領時のFMVに基づいて普通所得として課税されます。この報酬のコストベースは、受領時のFMVとなります。
- 流動性提供 (Liquidity Provision – LP):
- 預け入れ/引き出し: 通常、LPトークンへの交換やその逆は、実質的な支配権の喪失や獲得とみなされない限り、課税イベントではないと解釈されることが多いです。ただし、プロトコルやトークンの構造によっては課税イベントとなる可能性もあるため、注意が必要です。
- LP報酬 (Fees/Yield): 流動性提供の対価として得られる手数料やガバナンストークン(例: UNI, CAKE)。これらは受領時に普通所得として課税されます。
- インパーマネントロス (Impermanent Loss): 流動性プールに預け入れたトークンの価格変動により、預け入れなかった場合よりも価値が減少する現象。これは実現するまで税務上の損失とはみなされません。LPトークンを引き出し、元のトークンに戻した時点で、その時点の価格に基づいてキャピタルゲイン/ロスが計算されます。
- 貸付/借入 (Lending/Borrowing):
- 貸付: 仮想通貨を貸し出す行為自体は通常、課税イベントではありません。
- 利息報酬: 貸付によって得られる利息は、受領時に普通所得として課税されます。
- 借入: 仮想通貨を借り入れる行為は課税イベントではありません。
- エアドロップ (Airdrops): 特定の条件を満たしたユーザーに無償で配布されるトークン。受領時のFMVに基づいて普通所得として課税されます。
- ガス代 (Gas Fees): ブロックチェーン上で取引を実行するために支払う手数料(例: ETH)。IRSはガス代の明確な処理方法について詳細なガイダンスを提供していませんが、一般的には以下のいずれかの方法で処理されます。
- 取引コストの一部: 売却や交換に伴うガス代は、キャピタルゲインを減少させる取引コストとして計上できます。
- 非課税: 送金手数料など、直接的な課税イベントに繋がらないガス代は、税務上考慮されない場合があります。
コストベース計算方法
仮想通貨の税務において最も重要な概念の一つが「コストベース」(取得原価)です。IRSは、仮想通貨の売却や交換時に、どの購入ロットが売却されたかを特定することを要求しています。特定の識別ができない場合、IRSはFIFO(First-In, First-Out)をデフォルトの計算方法としています。
- FIFO (First-In, First-Out): 最も古い購入ロットから順に売却されたとみなす方法。
- LIFO (Last-In, First-Out): 最も新しい購入ロットから順に売却されたとみなす方法。米国では一般的にIRSによって認められていませんが、特定の状況下で議論されることがあります。
- Specific Identification (特定の識別): ユーザーが売却する特定のロットを指定する方法。最も税効率的な方法ですが、正確な記録管理が必須です。Pythonを使用することで、この方法の実装が現実的になります。
Pythonによる実装ステップ
Pythonスクリプトによる税務計算は、以下の主要なステップで構成されます。
-
データ収集 (Data Collection)
web3.pyとrequestsライブラリを使用して、EtherscanなどのAPIからウォレットアドレスのトランザクション履歴を取得します。これには、通常の送受信、ERC-20トークンの転送、スマートコントラクトとのインタラクションなどが含まれます。同時に、CoinGeckoなどのAPIから、各取引が発生した正確なタイムスタンプでの仮想通貨のUSD価格データを取得します。中央集権型取引所からのCSVエクスポートも、pandas.read_csv()で読み込みます。 -
データクレンジングと正規化 (Data Cleansing & Normalization)
収集したデータは、様々なフォーマットで提供されるため、一貫性のある構造に正規化する必要があります。これには、タイムスタンプの標準化、通貨名の統一、重複エントリの削除、欠損値の処理などが含まれます。
pandasのデータフレーム操作が非常に有効です。 -
USD価格の統合 (Historical Price Integration)
各トランザクションの日付と時刻に基づいて、対応する仮想通貨のUSD価格をデータフレームに結合します。これは、各取引のFMVを決定するために不可欠です。
-
トランザクション分類 (Transaction Categorization)
各トランザクション(入金、出金、内部トランザクション、スマートコントラクトインタラクションなど)を、税務上の意味を持つカテゴリ(購入、売却、ステーキング報酬、LP報酬、送金など)に分類します。これは、トランザクションハッシュ、送受信アドレス、コントラクトアドレス、イベントログなどを分析することで行われます。
-
コストベースの追跡 (Cost Basis Tracking)
各トークンについて、購入日、購入数量、購入価格(USD)を記録し、トークンの「ロット」として管理します。売却や交換が発生した際に、選択したコストベース計算方法(例: FIFO、Specific Identification)に従って、どのロットが売却されたかを特定し、そのコストベースを割り当てます。
-
課税所得の計算 (Taxable Income Calculation)
- 普通所得: ステーキング報酬、LP報酬、エアドロップなど、受領時に普通所得として課税されるイベントを特定し、受領時のUSD価値を合計します。
- キャピタルゲイン/ロス: 売却や交換イベントについて、売却価格(USD)から対応するコストベース(USD)を差し引いて、キャピタルゲインまたはロスを計算します。短期(1年以内)と長期(1年超)に分類します。
-
レポート生成 (Reporting)
計算された課税所得(普通所得、短期キャピタルゲイン/ロス、長期キャピタルゲイン/ロス)を、税務申告に必要な形式(例: IRS Form 8949、Schedule Dに対応するCSVまたはExcelファイル)で出力します。
具体的なケーススタディ・計算例
Pythonとpandasを使った簡単な例を見てみましょう。
例1: ステーキング報酬の計算
ETHをステーキングし、複数回報酬を受け取った場合の普通所得の計算。
import pandas as pd
from datetime import datetime
# 仮のステーキング報酬データ
# 実際にはAPIから取得し、USD価格もその時点のものを取得
data = {
'timestamp': ['2023-01-15 10:00:00', '2023-02-20 11:30:00', '2023-03-25 09:00:00'],
'token': ['ETH', 'ETH', 'ETH'],
'amount': [0.01, 0.015, 0.012],
'usd_price_at_receipt': [1500, 1600, 1800] # 受領時のETHのUSD価格
}
df_rewards = pd.DataFrame(data)
df_rewards['timestamp'] = pd.to_datetime(df_rewards['timestamp'])
# 普通所得の計算 (受領時のUSD価値)
df_rewards['taxable_income_usd'] = df_rewards['amount'] * df_rewards['usd_price_at_receipt']
total_ordinary_income = df_rewards['taxable_income_usd'].sum()
print("--- ステーキング報酬による普通所得 ---")
print(df_rewards)
print(f"\n合計普通所得: ${total_ordinary_income:.2f}")
このコードは、各報酬受け取り時のETHのUSD価格を乗算して、それぞれの報酬が普通所得としていくら計上されるかを計算し、合計します。
例2: DEXでのトークン交換とキャピタルゲイン/ロス
ETHで購入したUNIを後日USDCに交換し、キャピタルゲイン/ロスを計算する(FIFO法を仮定)。
import pandas as pd
from datetime import datetime
# 仮の購入履歴 (ETHでUNIを購入)
purchases_data = {
'timestamp': ['2022-06-01 12:00:00', '2022-08-10 14:00:00'],
'token': ['UNI', 'UNI'],
'amount': [100, 50],
'cost_basis_usd_per_token': [5.00, 6.50] # UNIをETHで購入した際の、UNI1単位あたりのUSDコスト
}
purchases_df = pd.DataFrame(purchases_data)
purchases_df['timestamp'] = pd.to_datetime(purchases_df['timestamp'])
# 仮の売却履歴 (UNIをUSDCに交換)
sales_data = {
'timestamp': '2023-04-05 10:30:00',
'token': 'UNI',
'amount': 120,
'sale_price_usd_per_token': 7.50 # UNIをUSDCに交換した際の、UNI1単位あたりのUSD価格
}
sale_df = pd.DataFrame([sales_data])
sale_df['timestamp'] = pd.to_datetime(sale_df['timestamp'])
# FIFO法によるキャピタルゲイン/ロス計算
def calculate_fifo_capital_gain_loss(purchases, sale):
remaining_sale_amount = sale['amount'].iloc[0]
total_gain_loss = 0
cost_basis_used = 0
# 購入履歴を日付順にソート (FIFOのため)
purchases = purchases.sort_values(by='timestamp').reset_index(drop=True)
for index, purchase in purchases.iterrows():
if remaining_sale_amount <= 0: # 全て売却済み
break
# 売却するUNIの数量を決定
amount_to_sell_from_lot = min(remaining_sale_amount, purchase['amount'])
# このロットからのコストベース
lot_cost = amount_to_sell_from_lot * purchase['cost_basis_usd_per_token']
# このロットからの売却収入
lot_revenue = amount_to_sell_from_lot * sale['sale_price_usd_per_token'].iloc[0]
total_gain_loss += (lot_revenue - lot_cost)
cost_basis_used += lot_cost
remaining_sale_amount -= amount_to_sell_from_lot
return total_gain_loss, cost_basis_used
capital_gain_loss, cost_basis_for_sale = calculate_fifo_capital_gain_loss(purchases_df, sale_df)
print("--- UNI売却によるキャピタルゲイン/ロス (FIFO) ---")
print(f"売却量: {sale_df['amount'].iloc[0]} UNI")
print(f"売却価格 (単位あたり): ${sale_df['sale_price_usd_per_token'].iloc[0]:.2f}")
print(f"使用されたコストベース: ${cost_basis_for_sale:.2f}")
print(f"キャピタルゲイン/ロス: ${capital_gain_loss:.2f}")
# 短期か長期かの判定 (ここでは省略。購入日と売却日の差を計算し1年と比較)
# if (sale_df['timestamp'].iloc[0] - oldest_purchase_date).days <= 365: Short-term
# else: Long-term
この例では、購入履歴と売却履歴をpandasのDataFrameで管理し、FIFOの原則に基づいてキャピタルゲイン/ロスを計算する基本的なロジックを示しています。実際には、複数のトークン、複数の購入/売却、そして短期/長期の分類ロジックが追加されます。
例3: 流動性提供と報酬
ETH/USDCペアに流動性を提供し、LPトークンを受け取り、その後LP報酬(手数料)を受け取った場合の税務。
- 流動性提供 (ETHとUSDCをプールに預け入れ): この行為自体は通常、課税イベントではありません。しかし、預け入れたETHとUSDCの取得コストと数量を正確に記録しておく必要があります。
- LP報酬の受領: Uniswap V2のようなプロトコルでは、LP報酬はプール内の資産の割合として蓄積され、LPトークンを引き出す際に実現します。Uniswap V3のようなプロトコルでは、報酬は定期的に請求(claim)される場合があります。請求されたLP報酬は、受領時のUSD価値に基づいて普通所得として課税されます。
- 流動性の引き出し: LPトークンを燃焼し、元のETHとUSDC(またはその時点でのプール内の比率に応じたトークン)を受け取る行為です。この時点で、預け入れたトークンのコストベースと引き出したトークンのFMVを比較し、キャピタルゲイン/ロスを計算します。インパーマネントロスは、この引き出し時に「実現」し、キャピタルロスとして計上される可能性があります。
Pythonスクリプトでは、LPトークンの鋳造(mint)と燃焼(burn)イベントを追跡し、報酬の請求イベントを特定し、それぞれのタイミングでのトークン価格を正確に記録することで、これらの複雑なシナリオを処理します。
メリットとデメリット
メリット
- 精度と信頼性の向上: 手動入力によるヒューマンエラーを排除し、ブロックチェーンデータに基づいた正確な計算が可能です。
- 時間と労力の節約: 複雑な取引履歴の収集、分類、計算プロセスを自動化し、大幅な時間短縮を実現します。
- 柔軟性とカスタマイズ性: 新しいDeFiプロトコルや特定の取引パターンに合わせて、スクリプトを自由に調整・拡張できます。市販のソフトウェアでは対応できないニッチなケースにも対応可能です。
- 監査対応の強化: 計算ロジックがコードとして明確に定義されるため、税務当局からの問い合わせに対して、透明性のある説明と証拠を提供できます。
- コスト削減: 高額な仮想通貨税務ソフトウェアのライセンス費用を削減できる可能性があります。
デメリット
- プログラミングスキルが必要: Pythonの基本的な知識と、
web3.pyやpandasなどのライブラリの使用経験が必要です。学習曲線が存在します。 - 初期設定の時間と労力: 各APIの統合、データ構造の設計、税務ロジックの実装には、初期投資としての時間と労力が必要です。
- 税務知識の継続的な更新: 仮想通貨税務のルールは進化しており、IRSの最新ガイダンスを常に把握し、スクリプトを更新する必要があります。
- APIの依存性: 外部API(ブロックエクスプローラー、価格データなど)に依存するため、APIの変更や停止がスクリプトの動作に影響を与える可能性があります。
- 全てのプロトコルへの対応の難しさ: DeFiエコシステムは急速に進化しており、全ての新しいプロトコルや複雑なスマートコントラクトのイベントを汎用的に処理するスクリプトを構築することは困難な場合があります。
よくある間違い・注意点
- ガス代の誤った計上: ガス代は、取引の性質によって税務上の扱いが異なります。送金手数料としてのガス代と、キャピタルゲイン/ロス計算に関連するガス代を区別し、適切に処理する必要があります。
- ERC-20トークン転送の誤解: 自分のウォレット間でERC-20トークンを転送する行為は課税イベントではありませんが、ウォレット間の移動として正確に追跡することが重要です。
- インパーマネントロスの誤解: インパーマネントロスは、流動性プールから資産を引き出すまで「実現」しないため、その時点までは税務上の損失として計上できません。
- ウォッシュセールルールの注意: 仮想通貨には株式のようなウォッシュセール(Wash Sale)ルール(損失を確定させた後、短期間で同じ資産を買い戻すことで損失を税務上利用することを制限するルール)が明確に適用されるか不明確ですが、IRSの将来的なガイダンスに注意が必要です。
- 複数のウォレット・チェーンの統合忘れ: 異なるウォレットやブロックチェーンに分散された取引をすべて統合しないと、正確な税務計算はできません。
- 価格データの正確性: 取引発生時の正確なタイムスタンプでの価格データを使用しないと、FMVの評価が不正確になり、税務計算に大きな影響を与えます。
- IRSの最新ガイダンスの見落とし: 仮想通貨の税務ルールは進化しているため、IRSの最新の通知、規則、FAQを定期的に確認し、スクリプトや計算ロジックを適宜更新する必要があります。
よくある質問 (FAQ)
Q1: DeFi貸付の担保は課税対象ですか?
一般的に、DeFiプロトコルに担保として仮想通貨を預け入れる行為自体は、所有権の移転や支配権の喪失とはみなされず、課税イベントではありません。しかし、担保が清算された場合や、担保として預け入れた仮想通貨が貸し出され、その利息を受け取る場合は、それぞれ異なる税務上の影響が生じます。
Q2: ガス代はどのように処理すべきですか?
ガス代の税務上の扱いは複雑であり、IRSは明確なガイダンスを提供していません。一般的には、売却や交換に関連するガス代は、キャピタルゲインを減少させる取引コストとして計上できます。しかし、単なるウォレット間の送金手数料は、課税対象となるイベントに直接関連しないため、税務上の控除対象とはならない場合があります。専門家と相談し、一貫した処理方法を採用することが重要です。
Q3: NFT取引はどのように課税されますか?
NFT(非代替性トークン)は、IRSによって仮想通貨と同様に「資産」として扱われる可能性が高いです。NFTの購入自体は課税イベントではありませんが、NFTの売却、交換、またはNFTから得られるロイヤリティ収入などは課税イベントとなります。売却や交換はキャピタルゲイン/ロス、ロイヤリティ収入は普通所得として課税されるのが一般的です。アートワークやコレクタブルNFTの場合、米国では「コレクタブルズ」(Collectibles)として扱われ、長期キャピタルゲイン税率が通常の長期キャピタルゲインよりも高くなる可能性があるため、注意が必要です。
Q4: 複数のチェーンのデータをどう統合しますか?
複数のブロックチェーン(Ethereum, Polygon, BNB Chainなど)にまたがる取引データを統合するには、各チェーンのブロックエクスプローラーAPI(Etherscan, PolygonScan, BscScanなど)から個別にデータを取得する必要があります。その後、Pythonのpandasライブラリを使用して、取得したすべてのデータを一つのデータフレームに結合し、ウォレットアドレス、タイムスタンプ、トークン名などを標準化して処理します。このプロセスは複雑ですが、Pythonの強力なデータ処理能力が役立ちます。
まとめ
DeFiとステーキングの税務は、その複雑さゆえに多くの投資家にとって大きな課題となっています。しかし、Pythonを習得し、適切なライブラリとデータ取得戦略を組み合わせることで、これらの複雑な取引履歴を効率的かつ正確に整理し、課税所得を計算することが可能です。このアプローチは、手作業によるエラーのリスクを低減し、時間を節約し、将来の監査にも対応できる透明性を提供します。初期の学習コストと設定の手間はかかるものの、その長期的なメリットは計り知れません。
この記事で解説したPythonによる自動化手法は、仮想通貨税務の管理を劇的に改善する強力なツールです。しかし、税務法の解釈や個別のケースの判断は非常に専門的であるため、最終的な税務申告を行う際には、必ず仮想通貨税務に精通した税理士や専門家と相談することをお勧めします。技術と税務知識の融合が、あなたの仮想通貨投資を次のレベルへと導く鍵となるでしょう。
#DeFi Tax #Staking Tax #Python for Crypto #Cryptocurrency Tax #IRS Guidance #Capital Gains #Income Tax #Blockchain Analytics #Web3 Tax #Tax Software
