Getting Started

Home

Edit on GitHub

Self-hosted crypto wallet auditing and tax reporting CLI tool.

daybook pulls transactions from Coinbase, Kraken, Binance/Binance.US, generic CSV exports, and EVM wallets (Ethereum, Polygon), normalizes them into a single ledger, classifies events, computes cost basis, flags wash-sale candidates, and exports tax-ready CSV, Form 8949, Schedule D, and TXF output.

Current release: v0.2.0. The main branch is preparing v0.3.0 with 464 tests passing across 31 test files.

Quick Links

What's New in v0.3.0

  • Binance and Binance.US CSV adapters — Import Binance ledger exports and Binance.US tax-report style exports as first-class sources.
  • Generic CSV importer — Import common universal/manual crypto ledger files using sent/received/fee/value columns.
  • Stablecoin accounting — USDC and USDT are treated as crypto assets, not USD fiat.
  • NFT cost-basis tracking — Full cost-basis tracking for ERC-721 and ERC-1155 tokens. NFT purchases, mints, airdrops, sales, transfers, and NFT-for-NFT trades are classified and included in tax calculations.
  • NFT classifier rule — New rule 08 detects NFT transaction patterns by grouping events by txHash and pairing NFT legs with fungible counterparts.
  • NftLotBook — Each NFT tracked as a unique, indivisible lot keyed by <contractAddress>:<tokenId>. No pooling or partial consumption.
  • NFT pricing — Cost basis derived from counterpart legs (ETH/ERC-20 in the same transaction) or manual price overrides via daybook overrides set.
  • NFT export integration — NFT disposals appear alongside fungible disposals in all export formats (CSV, Form 8949, Schedule D, TXF).
  • NFT event filteringdaybook events list --type nft_acquisition and --type nft_disposal filters.
  • Unpriced NFT guidance — Export summary shows unpriced NFT count with override instructions.

What's New in v0.2.0

  • LIFO cost-basis method — Last In, First Out joins FIFO and HIFO. daybook compare now shows all three side by side.
  • JSON output--format json on all read commands for scripting and piping
  • Design system — centralized UI component library with themed Ink rendering across all commands
  • Styled help — usage examples on every command, rewritten descriptions following the design system voice
  • Non-TTY degradation — graceful fallback when piped or in CI environments

What's New in v0.1.0

  • Kraken CSV adapter — import Kraken "Export Ledger" CSV files
  • Events list Ink upgrade — structured table output with --type, --source, --account filters
  • Failed transaction gas tracking — capture gas from reverted EVM transactions via Etherscan
  • Classify dry-run — preview classifier changes without writing to the database
  • Interactive unclassified review — override unclassified events inline after classification
  • Incremental sync--from <date|block> to skip already-ingested history
  • Specific ID lot selection — hand-pick lots for tax-loss harvesting with interactive picker or JSON replay
  • Wash sale flagging — informational flags on loss disposals with acquisitions within ±30 days

Supported Sources

SourceMethodStatus
CoinbaseAPI sync✅ v0.3.0
CoinbaseCSV import✅ v0.1.0
KrakenCSV import✅ v0.1.0
BinanceCSV import✅ v0.3.0
Binance.USCSV import✅ v0.3.0
Generic CSVUniversal/manual CSV import✅ v0.3.0
EthereumAlchemy API✅ v0.1.0
PolygonAlchemy API✅ v0.1.0
Etherscan (failed tx)Etherscan API✅ v0.1.0

Cost Basis Methods

MethodDescriptionStatus
FIFOFirst in, first out (IRS default)✅ v0.1.0
HIFOHighest cost, first out (tax minimizer)✅ v0.1.0
LIFOLast in, first out✅ v0.2.0
Specific IDUser picks lots manually✅ v0.1.0

Export Formats

FormatDescriptionStatus
CSVTax-ready CSV with one row per disposal✅ v0.1.0
Form 8949 PDFIRS Form 8949 with continuation sheets✅ v0.2.0
Schedule D PDFIRS Schedule D summary✅ v0.2.0
TXFTurboTax import format (v042)✅ v0.2.0