After three tax seasons of paying Koinly $99/year and uploading my wallet history to their cloud, I wrote 200 lines of Python instead. Free public tool, runs on Hugging Face Spaces.
https://huggingface.co/spaces/Exitvelocitybtc/bitcoin-tax-calculator
What it does:
Paste BTC transactions as CSV (Coinbase, Kraken, Strike, River, generic — most formats work). Get:
- FIFO / LIFO / HIFO cost basis side-by-side
- Long-term vs short-term gain classification (>365 day holding period)
- Estimated federal tax (single filer, 2026 brackets, federal only)
- IRS Form 8949 CSV — both Part I (short-term) and Part II (long-term)
- Shareable summary graphic (1080×1080 PNG, brand-styled)
Privacy first:
Your CSV is processed on HF's compute during the session. Not logged. Not stored. Not transmitted anywhere. Close the tab, data evaporates. No account required.
Why I built it:
Self-custody Bitcoiners hold our own keys for a reason. The existing crypto tax model — upload your entire transaction history to a SaaS forever — is the opposite of why we're here. A 200-line script handles 99% of what those tools do.
- Koinly: $99-499/year, wants your wallet
- CoinTracker: $99/year, wants your wallet
- ZenLedger: $149-999/year, wants your wallet
- This: $0, your data never leaves the session
Stack:
- Pure Python cost basis engine
- Gradio UI on Hugging Face (free hosting)
- All client-state, no database
- Open source MIT (exitvelocitybtc/bitcoin-tax-tools, polishing the repo this week)
Feedback wanted:
- Edge cases I'm missing (mining income with cost basis, hard fork airdrops, exchange-to-self-custody transfer treatment)
- Whether the HIFO output matches what specific-identification advocates would actually use to defend an audit
- UX confusion in the Gradio interface — what's unclear?
Built by Exit Velocity — Bitcoin education brand. Weekly podcast The Receipt on Spotify and Fountain (https://fountain.fm/show/Q48WBr6nT3mrbwMZ8ydY — zaps welcome). Substack: https://exitvelocitybtc.substack.com
Think in Bitcoin.