VintageTax — Crypto CSV Header Guide ==================================== Use this CSV template for clean import/export across exchanges, wallets and tax software. File format: UTF‑8, comma‑separated, one event per row. Timestamps in UTC ISO‑8601. Columns ------- datetime_utc ISO 8601 timestamp in UTC, e.g. 2025-01-15T10:30:00Z type One of: BUY, SELL, TRADE, DEPOSIT, WITHDRAWAL, TRANSFER, FEE, REWARD, STAKING, AIRDROP, INTEREST, MINING base_asset Asset you receive/dispose (BTC, ETH, etc.) base_amount Quantity of base_asset (use decimals with '.', no thousands separators) quote_asset Pricing asset (USDT, GBP, USD, etc.). Optional for deposits/withdrawals/transfers quote_amount Amount of quote asset given/received (for trades or to store fiat valuation on income) price_quote_per_base Unit price in quote per 1 base (e.g., 45000.00 for BTC/USDT) fee_asset Asset used to pay fees (often base or quote) fee_amount Amount of the fee_asset txid Blockchain transaction hash where applicable order_id Exchange order identifier trade_id Exchange trade/fill identifier from_wallet Source wallet/account label (e.g., Binance-Spot, Ledger, MetaMask-1) to_wallet Destination wallet/account label network Blockchain/network (BTC, ETH, SOL, BSC, POLYGON, etc.) memo_tag Destination tag/memo where required (XRP, XLM, some exchanges) exchange_platform Platform or broker name (Binance, Kraken, Coinbase, etc.) notes Free text for reconciliation Conventions ----------- • One row per logical event. Do not combine a transfer and a trade. • Decimals only ('.'), no commas. Prefer up to 8–10 dp for crypto. • Timezone: UTC with 'Z' suffix. If you only have local time, convert to UTC. • Fees: record in the asset they were charged in (fee_asset/fee_amount). • Transfers: type=TRANSFER, set from_wallet/to_wallet; set fee if on-chain. • Deposits/Withdrawals: type=DEPOSIT/WITHDRAWAL; quote fields may be left blank. • Income (REWARD/STAKING/AIRDROP/INTEREST/MINING): set quote_asset and quote_amount to the fiat value at receipt time for tax basis (if known). • If your tool expects positive/negative signs, use positive for receipts (in) and negative for disposals (out). Otherwise leave positive values and rely on 'type'. Validation tips --------------- • Ensure txid is unique per on-chain transaction to avoid duplicates. • Keep consistent wallet labels for accurate transfer matching. • If you have multiple fills per order, keep trade_id unique per fill. • Where price is unknown (e.g., transfers), leave price/quote blank. Deliverables ------------ CSV template: VintageTax_Crypto_CSV_Template.csv This guide: VintageTax_Crypto_CSV_Header_Guide.txt